文章目录
搭建通关 php_xxeXML声明XML DTD防御办法
搭建
经过半天的搜寻后,发现,使用docker搭建的情况不是很如愿,于是找到了xxe-labs的包,再本地使用phpstudy进行搭建
通关 php_xxe
题目的样子是这样的,这是我们抓包后的结果 通过审计可以知道是post传入,根据xml的性质,我们直接构造XML声明和DTD部分,引用外部实体去尝试读取c:/windows/win.ini文件 再post参数中修改username,使他指向外部实体,从而利用该漏洞 以下为一些xml的固定格式
XML声明
<?xml version="1.0" encoding="utf-8"?>
XML DTD
DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
<!DOCTYPE admin [
<!ENTITY admin SYSTEM "file:///etc/passwd">]>
防御办法
使用开发语言禁用外部实体;过滤SYSTEM、PUBLIC等关键字;