安全矩阵

 找回密码
 立即注册
搜索
查看: 863|回复: 0

0洞BC渗透经历

[复制链接]

102

主题

102

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
发表于 2024-3-24 20:21:42 | 显示全部楼层 |阅读模式
本帖最后由 jiangmingzi 于 2024-3-24 20:21 编辑

信安404 2024-02-28 23:07 天津

[color=rgba(0, 0, 0, 0.9)]这篇投了奇安信社区,不给我过就算了还打水印,过分


其实不是bc,是小黄网,反正差不多一个类型,都是涉案网站。老板要求打,那就得打- -。虽然最后没有找到比较大的漏洞,但还是找到了后台并获得后台超管权限,由于路径奇特,简单记录一下吧。
开始之前
先介绍一个打小黄网不被辣眼睛的小技巧。chrome设置->隐私与安全->网站设置->图片 这里可以设置哪些网站不能显示图片,设置为目标网站的主域名即可,不被辣眼睛渗透过程会舒服很多^ ^。
徒劳无用的前台挖掘01 进入网站
类似的网站千篇一律,都有几板斧:打包器、thinkphp、请求响应加密、sign等其他头校验。
这次的网站虽然不是thinkphp,但是杯具的是仍然有全文的加密和sign校验。
并且,此网站挂bp代理访问会报403,猜测是云WAF或其他页面js对bp的指纹进行判断了:

不过由于此网站前后端分离(后端API请求的是另一个站),所以我们只需要不挂代理打开网站然后挂上代理测试API即可(也不是很建议,这次是时间有限)。
后面我又对此网站进行了一次测试,发现勾选这两项即可绕过bp指纹检测,这也是非常常用的bp指纹识别方法:
02 包校验
进入网站,先随便点点产生API请求包,然后使用bp对API进行以下测试:
1.是否可重放
2.校验字段是哪些
3.校验字段中,哪些会根据请求参数修改动态变化,哪些根据请求路由的修改动态变化...

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

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

铩羽而归。不过很多响应包中带有的参数错误响应还是提示这些路由是可使用的,只是需要参数。那么我们就需要找到参数的加密和sign方法,改包测试了。
03 加密与sign
遇见的加密站多了,自然而然都会有自己的一套应对方式。
我个人的应对方式是js页面搜索AES/BEGIN PUBLIC KEY/encrypt/enc/iv:(iv有奇效)一把梭,然后下断点寻找密钥。
先搜encrypt,还好只有五个:

打打断点发包:

则加密方式为CBC PKCS7 密钥与偏移量分别为字符串s的前十六位和后十六位。
而sign,由于一般API都会使用md5作为sign,所以一般全局查找md5、.sign、"sign",找不到就只好在请求过程中打断点然后调下来了。不过合理利用进入跳出,一般也不会特别痛苦。
经过一番定位,找到sign的位置:

则sign为api=路由&caller=固定值&imei=固定值¶m=加密后的请求体&platform=固定值&requestId=随机生成&time=随机生成&然后替换掉最后的&再MD5:

这下我们已经能伪造前台数据包了。接下来就是对网站的前台API逐个进行测试。
曲径通幽处
正如我标题说的。。。。经过一番绞尽脑汁,苦思冥想,辛勤耕耘,得到的漏洞仍然是0- -。主站就这点功能,这下只能换个方向,去找其他资产的漏洞了。
01 寻找后台
BC站一般都会使用CDN并且没有备案,所以当前IP/域名的利用价值实际不大。域名的子域名倒是能找找,可以找到的子域名为0^ ^。又由于时间有限(主要是想下班),就先从加载看起。
类似这样直接引用其他资产的脚本,对比一下脚本内容即可知道其间互相关联度。由于当时忘记截图,现在只记得排除了一个第三方服务商和一个流量记录js,找到了多个疑似相关域名。
找到域名,直接扔测绘,扔到鹰图找子域名,翻了一堆域名终于找到一个有其他子域的,且带有与目标相同的资产和数个后台,如:
啪的一下点进来啊,就是一个朴素的登陆页面,连验证码都没有:
02 普通用户登陆
没有验证码且明文包,直接一波弱口令走起。

响应500?先爆了再说,谁知道诡计多端的开发到底在写什么- -。
由于返回包很慢,顺便跑了一波前端的API,基本全是403,看来是必须要找到一个账号。功夫不负有心人,还是搞到一个弱口令:
可惜的是进去一共就俩功能,一看权限就不高:
03 超管登陆
这下只能继续重操旧业,搞点API用用咯。
前台的API还是一堆401,用后台的API试一试,还是有一些200的。
逐个查看返回包。
这里泄露了编辑人的名字:

把所有泄露的名字作为用户名重跑一遍弱口令:
管理员登陆成功,从后台找到交易记录,下班- -。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-27 20:31 , Processed in 0.012976 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表