专栏名称: 安全祖师爷
国内领先的互联网安全媒体,WEB安全爱好者们交流与分享安全技术的最佳平台!这里聚集了XSS牛、SQL牛、提权牛、WEB牛、开发牛、运维牛,公众号定期分享安全教程及相关工具。与其在别处仰望 不如在这里并肩!
目录
相关文章推荐
华商报  ·  龙抬头吹响集结号,健步跑等你火速来报名! ·  16 小时前  
华商报  ·  龙抬头吹响集结号,健步跑等你火速来报名! ·  16 小时前  
51好读  ›  专栏  ›  安全祖师爷

漏洞笔记|记一次与XXE漏洞的爱恨纠缠

安全祖师爷  · 公众号  ·  · 2020-01-28 10:36

正文

0x01 背景:

kaiputenku 大佬最近在挖洞的时候偶遇一枚XXE漏洞,身经百战的他经过一番爱恨纠缠,终将她顺利拿下~

0x02 纠缠一番只为她 -Blind OOB XXE

在测试某系统的某 查询 功能模块如下:


  • 查询模块 .jpg( 请各位大佬自行脑补 )

  • 下面即将开始 kaiputenku 的表演

首先使用 burp 抓包,发现提交 xml 形式的数据包,很容易想到可能存在 XML 外部实体注入

尝试构造以下 payload 读取 /etc/shadow 文件:

]><root>&file;root>

HTTP 回显报错 Permission denied ,说明 payload 成功执行,证明确实存在 XML 外部实体注入,只是用户权限不足读取失败

尝试构造以下 payload 读取 /etc/passwd 文件

]><root>&file;root>

发现 HTTP 回显正常,但是没有我们想要的 passwd 文件信息,说明是 Blind XXE 漏洞

Blind XXE 漏洞有两种常见的利用方式, ftp 读回显和 http 读回显

  • 尝试 ftp 读回显

测试主机 ip 10.xx.xx.31

1 )在测试主机上开启 Web 服务,并创建 eval.dtd 文件,内容如下

2 )在测试主机上下载并运行 xxe-ftp-server.rb ,运行后会在 2121 端口开启 ftp 服务,脚本下载地址: https://github.com/ONsec-Lab/scripts

3 )构造如下 payload 并发起请求

%asd;%c;]><a>&rrr;a>

发现 HTTP 回显 Connection refused

在测试主机 Web 日志中发现目标主机已经成功下载了 evil.dtd 文件,但是 HTTP 又回显 Connection refused ,猜测是 ftp 服务的问题

直接在浏览器中访问 http://10.xx.xx.31:2121/ ,发现连接被拒绝,这里没搞不明白为什么已经开启了 ftp 服务并且正在监听 [::]:2121 还是拒绝连接,换了台测试主机出现同样的问题,花了很长时间没有解决,猜测是内部网络策略的问题,遂放弃,准备尝试 HTTP 读回显的方式。

  • 尝试 http 读回显

测试主机 ip 10.xx.xx.31

1 )在测试主机上开启 Web 服务,并创建 eval.dtd 文件,内容如下

2 )使用 nc 进行监听,执行 necat.exe -lvvp 8081 ,监听 8081 端口

3 )构造如下 payload 并发起请求

%remote;%int;%send;]>






请到「今天看啥」查看全文