红队第3篇:银行Java站SSRF"组合洞"打法造成的严重危害
Part1前言
Part2漏洞挖掘与利用过程
首先对SSRF漏洞做一个简单介绍:
SSRF漏洞,中文名叫做"服务端请求伪造漏洞"。简单来说,就是攻击者可以在未获取任何外网系统权限的情况下,借助SSRF漏洞,对内网的Web应用、Struts2、Thinkphp、Redis数据库、Zabbix、端口开放情况等等进行探测和攻击。很多Web应用都提供了从其他的服务器上获取数据的功能,根据用户指定的URL,Web应用可以获取图片、下载文件、读取文件内容等。这种功能如果被恶意使用,将导致存在缺陷的Web应用被作为代理通道去攻击本地或远程服务器。
1代码审计过程
2SSRF组合其它漏洞
查找S2-016、S2-057等Struts2系列漏洞,如:http://www.xxx.com/index.action?redirect:xxxxxxxxxxxxx,直接可以回显命令执行结果。
查找Thinkphp系列漏洞,需要查找使用PHP的Web应用。
查找银行内网中的未授权访问页面,最好是能够看到用户身份资料、敏感信息、操作敏感功能,只要能找到一个这样的页面,泄露了敏感数据,就可以证明ssrf的危害性了。
查找内网Web应用页面中,可以直接GET请求的SQL注入漏洞,肯定要多翻一翻网页中的Javascript代码。
Web目录扫描(本次案例不采用,因为动静太大,银行内网的很多应用10年都没有关机重启过,扫描目录速度过快容易把服务给扫挂掉)。
查找内网Web应用中存在的ping命令、traceroute命令接口,查看是否存在命令注入漏洞。如ping 127.0.0.1;id等。
其他方法,不一一列举了。
3内网地址泄露起到关键作用
内网泄露ip地址 | 整理成内网IP段 |
---|---|
10.2.1.23 | 10.2.1.1/24 |
192.168.10.121 | 192.168.10.1/24 |
10.0.12.121 | 10.0.12.1/24 |
10.0.253.10 | 10.0.253.1/24 |
10.10.1.34 | 10.10.1.1/24 |
4编写SSRF代理工具方便展示
Part3总结
单看一个只能发GET请求的SSRF等漏洞危害并不大,但是“组合洞”的打法,可以让其发挥巨大威力。所以在平时的渗透测试项目、红队评估项目中,挖到了一个中低危漏洞不要放弃,想办法与其它漏洞组合一下,哪怕组合一个最简单的未授权访问漏洞,也可以变成一个极其严重的高危漏洞。
Java的SSRF漏洞很多只能发送HTTP的GET请求,少部分支持其它协议。这一点和PHP站点不一样。
对于SSRF漏洞,遇到可以直接回显当前页面内容的,记得写一个SSRF代理工具,图形界面展示给客户效果很好。
网络安全abc123
专注于红队、蓝队技术分享,每周一篇
后续还会继续分享几个关于"组合洞"打法的经典案例。