0洞BC渗透经历

admin 2024年2月29日00:54:59评论34 views字数 2052阅读6分50秒阅读模式

这篇投了奇安信社区,不给我过就算了还打水印,过分


其实不是bc,是小黄网,反正差不多一个类型,都是涉案网站。老板要求打,那就得打- -。虽然最后没有找到比较大的漏洞,但还是找到了后台并获得后台超管权限,由于路径奇特,简单记录一下吧。

开始之前

先介绍一个打小黄网不被辣眼睛的小技巧。chrome设置->隐私与安全->网站设置->图片 这里可以设置哪些网站不能显示图片,设置为目标网站的主域名即可,不被辣眼睛渗透过程会舒服很多^ ^。

0洞BC渗透经历

徒劳无用的前台挖掘

01 进入网站

类似的网站千篇一律,都有几板斧:打包器、thinkphp、请求响应加密、sign等其他头校验。
这次的网站虽然不是thinkphp,但是杯具的是仍然有全文的加密和sign校验。
并且,此网站挂bp代理访问会报403,猜测是云WAF或其他页面js对bp的指纹进行判断了:

0洞BC渗透经历

不过由于此网站前后端分离(后端API请求的是另一个站),所以我们只需要不挂代理打开网站然后挂上代理测试API即可(也不是很建议,这次是时间有限)。
后面我又对此网站进行了一次测试,发现勾选这两项即可绕过bp指纹检测,这也是非常常用的bp指纹识别方法:

0洞BC渗透经历

02 包校验

进入网站,先随便点点产生API请求包,然后使用bp对API进行以下测试:
1.是否可重放
2.校验字段是哪些
3.校验字段中,哪些会根据请求参数修改动态变化,哪些根据请求路由的修改动态变化...

0洞BC渗透经历

可以看到校验值是挺多的。依次测试,发现imei、requestId、api、sign这四个值是必要的。其中api跟随用户请求路由的变化而变化、imei是固定值、requestId根据请求变化但不影响重放和包的修改,推测和sign有关、sign顾名思义,我们后面讲。
这样说来其中影响api模糊测试的只有api这个头,并且是明文可枚举值,那么就可以尝试将打包器中的API提出来全部跑一遍,看看有没有什么接口有利用价值。
分析前端的打包器js,可以看到接口的写法大多如下(定位接口的方法也很简单,肉眼看或者简单搜一下"/、get("、post("、request("、method: GET、method: POST即可,其中post("一般比get("方便定位一些):

0洞BC渗透经历

依照此类型书写正则表达式,直接提取接口:

0洞BC渗透经历

0洞BC渗透经历

铩羽而归。不过很多响应包中带有的参数错误响应还是提示这些路由是可使用的,只是需要参数。那么我们就需要找到参数的加密和sign方法,改包测试了。

03 加密与sign

遇见的加密站多了,自然而然都会有自己的一套应对方式。
我个人的应对方式是js页面搜索AES/BEGIN PUBLIC KEY/encrypt/enc/iv:(iv有奇效)一把梭,然后下断点寻找密钥。
先搜encrypt,还好只有五个:

0洞BC渗透经历

打打断点发包:

0洞BC渗透经历

0洞BC渗透经历

则加密方式为CBC PKCS7 密钥与偏移量分别为字符串s的前十六位和后十六位。

而sign,由于一般API都会使用md5作为sign,所以一般全局查找md5、.sign、"sign",找不到就只好在请求过程中打断点然后调下来了。不过合理利用进入跳出,一般也不会特别痛苦。
经过一番定位,找到sign的位置:

0洞BC渗透经历

0洞BC渗透经历

则sign为api=路由&caller=固定值&imei=固定值&param=加密后的请求体&platform=固定值&requestId=随机生成&time=随机生成&然后替换掉最后的&再MD5:0洞BC渗透经历

这下我们已经能伪造前台数据包了。接下来就是对网站的前台API逐个进行测试。

曲径通幽处

正如我标题说的。。。。经过一番绞尽脑汁,苦思冥想,辛勤耕耘,得到的漏洞仍然是0- -。主站就这点功能,这下只能换个方向,去找其他资产的漏洞了。

01 寻找后台

BC站一般都会使用CDN并且没有备案,所以当前IP/域名的利用价值实际不大。域名的子域名倒是能找找,可以找到的子域名为0^ ^。又由于时间有限(主要是想下班),就先从加载看起。

0洞BC渗透经历

类似这样直接引用其他资产的脚本,对比一下脚本内容即可知道其间互相关联度。由于当时忘记截图,现在只记得排除了一个第三方服务商和一个流量记录js,找到了多个疑似相关域名。
找到域名,直接扔测绘,扔到鹰图找子域名,翻了一堆域名终于找到一个有其他子域的,且带有与目标相同的资产和数个后台,如:

0洞BC渗透经历

啪的一下点进来啊,就是一个朴素的登陆页面,连验证码都没有:

0洞BC渗透经历

02 普通用户登陆

没有验证码且明文包,直接一波弱口令走起。0洞BC渗透经历

响应500?先爆了再说,谁知道诡计多端的开发到底在写什么- -。
由于返回包很慢,顺便跑了一波前端的API,基本全是403,看来是必须要找到一个账号。功夫不负有心人,还是搞到一个弱口令:

0洞BC渗透经历

可惜的是进去一共就俩功能,一看权限就不高:0洞BC渗透经历

03 超管登陆

这下只能继续重操旧业,搞点API用用咯。
前台的API还是一堆401,用后台的API试一试,还是有一些200的。
逐个查看返回包。
这里泄露了编辑人的名字:0洞BC渗透经历

把所有泄露的名字作为用户名重跑一遍弱口令:0洞BC渗透经历

管理员登陆成功,从后台找到交易记录,下班- -。

Tips

原文始发于微信公众号(信安404):0洞BC渗透经历

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月29日00:54:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   0洞BC渗透经历https://cn-sec.com/archives/2535319.html

发表评论

匿名网友 填写信息