0x00 项目背景
该系列旨在分享自己和团队在SRC、项目实战漏洞测试过程中的有趣案例,如果读者能从本项目习得一些有用的知识,那么笔者将非常荣幸。
该系列首发github:https://github.com/J0o1ey/BountyHunterInChina
本项目由M78sec维护,未经授权,文章严禁私自修改版权转载。
0x01 起因
朋友给某甲⽅做渗透测试,奈何甲⽅是某知名保险,系统太耐⺾,半天不出货兄弟喊我来⼀块来看,于是有了本⽂
0x02 客户端RCE⼀处
客户端RCE⼀处 朋友把靶标发给我看了下,除了两个下载链接啥也没有
链接下载下来的东⻄如图,看了下⽬录⾥⾯还有JRE,那么很显然,这客户端exe就是个JAVA启动命令执⾏套壳
随后打开program⽂件夹,逆了⼀下⾥⾯的Jar full_path前⾯定义为⽤户更新时输⼊的路径
那么很简单了full_path可控,诱导⽤户安装更新时路径出输⼊注⼊命令即可
0x03 发现Webservice Soap接⼝
光这⼀个⽔来的客户端RCE肯定是不够的,接下来继续挖掘服务端看了看没别的功能点,我就简单FUZZ了⼀下这个系统三级⽬录
后FUZZ出来了⼀个webservice接⼝
http://.xxxxxx.cn/xxxx/service
拼接出其wsdl接⼝
http://.xxxxxx.cn/xxxx/service/BusinessService?wsdl
但导⼊SoapUI或AWVS的调试模块进⾏调试时却发现其导⼊失败
仔细看了下WSDL返回的信息。。。妈的WSDL Import Location和Soap Address Location都是内⽹域名
不过幸运的是,该系统的外⽹域名拼接路径后也可以访问到这个WSDL接⼝
但是⾃动化的Soap接⼝调试⼯具是“看⻅什么就import什么”,这可让⼈犯了难
0x04导⼊SoapUI
思考了⼀会,突然想起来BurpSuite可以把RequestBody和ResponseBody的值进⾏替换,hhh,那我们就有办法导⼊了
在Burpsuite的Porxy Option中增加Match&Replace规则将WSDL Import Location和Soap Address Location处对应的内⽹域名都替换为外⽹域名
随后在SoapUI中设置Proxy
打开代理,再次添加WSDL,ResponseBody的内⽹域名成功被替换,WSDL导⼊成功~
0x05 XXE挖掘
导⼊接⼝后,发现有参数为dataXML,⼼中暗喜XXE估计是送上⻔了
直接BurpSuite中利⽤XXE OOB测试
OOB成功,XXE到⼿,收摊~
0x06 总结
坚持⼀下,守得云开⻅⽉明,漏洞就在眼前
本文作者: J0o1ey