某次HW发现靶标站点如下(厚码):
登录抓包,返回包未作模糊处理,遍历用户名后未发现正确的用户名,尝试爆破无果。
转变思路,鹰图搜索资产:
在开发商的测试系统发现了Shiro反序列化漏洞:
可惜在靶标站点改了密钥,没有发现漏洞。下载源码进行审计,但是WEB—INF里面并没有发现后端代码:
后续发现接口是写在jar包导入lib进行调用:
反编译jar包,那么如何确定哪个jar包是我们要的后端接口呢,只需要搜索我们已知的接口即可,比如我们的登录接口是login_login,我们搜索该接口字段,最终在xxx-cms的jar包中发现存在login_login路由:
先尝试寻找可以Getshell的接口,发现在PicturesController.java和VideoController.java的save接口存在任意文件上传,但是均未返回上传路径。
PicturesController.java接口的任意文件上传对文件名采取了32位uuid重命名处理,在没有返回上传路径的情况下,很难利用;VideoController.java接口一开始以为和PicturesController接口代码一样,都做了uuid处理,于是找可以读取文件列表的接口看看能不能返回上传路径,后面才发现没有处理文件名,才确定这个后台文件上传可以利用。(审代码还是要细心呀)
因为这个接口也没有进行权限限制,所以现在只差一个任意权限弱口令进入后台进行文件上传:
先读取测试系统数据库看看默认密码,结果发现密码是加密存储的,加密方式为sha-1,以用户名为原文,密码为盐值。
尝试解密xxxxx账号的密码,失败。
那么再尝试用测试系统的用户名爆破靶标,失败。
在离结束攻击还有1个小时的时候,使用工号+工号的形式,终于爆破出来一些弱口令,登录获取token进行发包:
成功获取Shell:
算是一次比较简单的通过供应商的测试系统来发现靶标漏洞最终获取靶标权限的案例了。
原文始发于微信公众号(Sec探索者):【实战案例】记一次通过供应链测试系统拿下靶标的经过
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论