注:本次测试均有相关测试授权!!!
前言
算是xx厂商的安全产品,通过搜索引擎并没有找到很多资产,怎么说也是个0或1day,因此记录一下。
漏洞挖掘
Shiro 反序列化
打开网站,还是熟悉的登录界面
尝试弱口令,可惜没能登录进去
辗转反侧,返回包中看到rememberMe
打算掏出工具一把梭,可惜没有key,无奈暂时先搁置
SpringBoot heapdump文件泄露
这时Burp被动插件搞到一个heapdump
文件,可惜没有直接命令执行的接口
下载解密,不出意外搞到一个ShiroKey
但是工具利用时,跑不了利用链
所以丢Burp中看下是什么原因
Burp只有一大坨请求包,没有返回包,猜测可能是被拦截了
Bypass GetShell
这里可以参考下这篇文章
https://mp.weixin.qq.com/s/N4wF28mCWprD2edSd91L0Q
修改请求方法发现有返回了,说明成功绕过
这里有个小技巧,可以利用Burp的功能并将利用工具代理到Burp,实现批量替换请求方法,步骤如下,可以看到请求方法被批量替换,并且成功跑出利用链
后台任意文件上传
与甲方沟通要到一个测试账号但测试不允许传木马文件,所以这里用txt替代
找到添加连接的位置->图片上传
常见一个txt并修改后缀为.jpg
,内容为123
上传,利用burp拦截重放,发现文件名被替换且没有返回路径,感觉可能要寄
但是这时发现路径上传了很多值,随即利用Burp搜索功能全局搜索相关参数出现位置
第一个包为刚才上传内容没有变得包
第二个则为上传后利用fileId查询上传位置的包
第三个为上传文件名并返回fileId的包,看到这,只能说实在是tql,一个上传竟然要分三部分来进行
但是这里直接拼接路径却访问不到,一时之间有些尴尬
利用前面的反序列化执行命令查找一下到底有没有上传上去,执行ls
看到当前目录下有个和返回路径一致的文件夹,顿时凉了一截,这家伙原来是不在web目录,随即查看web目录位置,尝试跨目录上传
这里查找web目录可用ps -aex
查看进程,看到run.sh
以及目录名字,大致猜到应该是web目录
ls web目录
,查看目录下有哪些东西,看到webapp-xxxxxxx.jar当时就打算放弃,因为是jar包起的,所以应该是jar自带的web服务,直接传jsp,也不解析,只能打内存马
但是还是要验证下可不可以跨目录
修改上传文件名的数据包,name处改为../../../../../../123.txt
,如果可以将会在根目录写入一个123.txt
提取第一个返回包中的fileId,接着修改上传文件内容包的fileId值
最后在第三个包中填入fileId值查看
反序列化执行命令查看系统根目录下是否已生成上传的文件
至此编写测试报告提交,收获两中一高,美滋滋。