当前位置: 移动技术网 > IT编程>开发语言>PHP > XXE白盒审计 PHP

XXE白盒审计 PHP

2020年04月10日  | 移动技术网IT编程  | 我要评论

王元姬无惨图片,小图片,孕妇能不能吃杏子

xxe与xml注入的区别

xxe又分为内部实体和外部实体。我简单区分为内部实体就是自己构造一个功能体,外部实体就是可以引入外部文件。


原理

服务器加载外部实体声明<!entity 实体名称 system "uri">,导致被入侵。如下用php语言举例。

php代码案例:

$xmlfile = file_get_contents("php://input"); // php://input 是个可以访问请求的原始数据的只读流。 获取客户端输入的内容
$dom = new domdocument(); // 初始化xml解析器
$dom->loadxml($xmlfile); // 加载客户端输入的xml内容
$xml = simplexml_import_dom($dom); // 获取xml文档节点,如果成功返回simplexmlelement对象,如果失败返回flase
$xxe = $xml->xxe; //获取simplexmlelement对象中的节点 xxe
$str = "$xxe \n";
echo $str;

防止的xxe,一行代码解决:


检测

黑盒检查:
建议查看

白盒检测:
查看代码里面是否使用了lodxml( )函数。


防护

// 在加载文档代码上面声明
libxml_disable_entity_loader(true);    //禁止使用外部实体

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网