SRC实战:改个返回包就严峻了?

[复制链接]
发表于 2026-1-30 21:48:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
生存就像自行车,要想保持均衡,必须不绝进步。—— 爱因斯坦
  周一仿佛就是谁人提示你“不能停”的日子,哪怕你的心灵还没预备好继承进步。
  0x00

颠末长达一天的周末事后,又要开始上班啦。大周一的,照旧老样子,来点技能向的文章,给各人伙提提神咯~
好久没有更新 SRC 实战系列了,刚好前段时间碰到个比力故意思的洞,和各人分享一下吧。
   撤消信息网络的时间,这个毛病大概花了1个多小时,末了是给的是严峻。
    告诫:文章较长,全文无图。假如对毛病发掘大概技能类不感爱好的朋侪看到这里就可以了,不要再继承往下滑动折磨自己了。
    阐明:重要讲思绪和过程。由于截图涉及到大量的敏感数据,这篇文章又是在仅有一个周日写的,不想花时间去打码了。我只想苏息~~~~
  0x01

碰到的这个站点是一个主站的管理配景,拿到这个站点的时间,简单地看了一下,没有注册功能,也没有找回暗码,就一个简单的登录,然后还带有滑动验证。 以是登录干系的功能都可以直接放弃了,没有短信轰炸,不能爆破,怎么办?
假如有看过我之前文章的朋侪们应该知道,这种站进不进得去再说,起首我肯定是要来一波未授权测试的,分析 JS 拿到全部的接口路径,直接扔到 BP 内里跑一波。
   具体怎么获取接口路径,不管是熊猫头照旧 BP 插件都可以,看个人风俗。
  在跑了一遍接口之后,发现有部分接口确实有大概存在未授权!为什么这么以为呢?由于部分接口跑出来的HTTP 相应码是 400 或 500。那下一步应该做什么?没错,去 JS 代码内里找对应接口的参数咯,如许才气正常调用。
   为什么 400 和 500 的 HTTP 相应码大概存在未授权?这部分可以看我之前的文章:【HTTP状态码很简单,但你在毛病发掘的时间真的有关注过这些吗?】
  0x02

上面流程都挺正常的,但是我万万没想到的是,这个站的参数加密和代码肴杂做得太好了,真不是给人看的!
起首是加密,全部参数全部利用了RSA + AES的方式举行加密,不光云云,还对参数举行了复杂的署名验证。
其次是代码肴杂,我可以说从没见过肴杂得云云紊乱的代码!要找一个调用链的难度太大了。
我实行了大概半小时,公布放弃,我正式认可是个 JS 小弱鸡。
0x03

原来我已经预备放弃这个站点了,登录又登录不进不去,接口参数也处置惩罚不了,那还能怎么办?
等一下,登录不进去?那我假如可以伪装成登录进去了呢? 是不是就可以不消思量参数加密这部分了?由于按正常流程的话,这部分活动网站自己会完成的啊。
这时间我决定举行末了一次实行,假如这个思绪还不可的话,就只能放弃这个站点了。
0x04

起首照旧得去翻 JS(我要吐了),须要找到网站是怎么处置惩罚登录乐成的哀求的,如许我们才气知道在修改登录相应包时,须要返回什么样的数据,我一样寻常会通过以下几种方式去找:

  • 1. 直接通过登录接口搜刮,检察登录乐成的接口回调是怎么处置惩罚的。但是假如代码肴杂很锋利,大概找不到。
  • 2. 全局查询设置 LocalStorage 的地方,现在的很多网站,一样寻常在登录乐成后,会把部分用户信息,好比 ID 之类的,放到欣赏器当地存储,也就是 LocalStorage 中,以是可以实行直接全局查询设置当地存储的方法。
  • 3. 搜刮常见用户属性,由于代码再怎么肴杂都可以,但是相应的对象属性是不会变的。一样寻常登录相应都会返回用户信息,好比:userId、accountId、role、user_type等,通过这些属性去搜刮。
很荣幸,我在查询 localStorage 的设置方法时找到了对应的登录相应结构,别的不多说,重要有两个焦点的属性,一个是 user_id,另一个是 role_type。很显着,一个是用户的 ID,另一个是脚色范例,很大概决定前端展示哪些功能的。
role_type的范例是整数范例,很利益置惩罚,一样寻常来说就是 0、1、2、3 这种,多试反复就行了。但是user_id就不好搞了,我去那里找一个正当的用户 ID 呢?而且它照旧一个字符串范例, fuzz 不太实际。
   固然嘴里说着不太实际,这里我照旧实行简单的 fuzz 了一下各种长度的整型,发现果然不可。
  0x05

在卡了一段时间后,我决定换一个思绪。既然 fuzz 不出来,那我可以去找网站自己走漏的,由于 ID 一样寻常不属于敏感信息,很有大概会通过各种接口袒暴露来。我决定去这个管理配景对应的前端主站点探求。
   一样寻常来说,既然管理配景,那肯定有对应的寻常用户的入口大概网站。
  在找到对应的网站后,怎么来找管理员的 ID 呢?我的话,起首要找的就是各种公告、关照,由于这些一样寻常都是由管理员发布的。干过开辟的都知道,一样寻常这种文章范例,肯定会有一个创建人 / 发布人 / 修改人 之类的字段,内里存的就是对应用户的 ID,这种非敏感字段,很大概会在获取文章信息的时间,一并返回。
果不其然,在 BP 中检察获取公告列表的返回包时,内里包罗了一个创建人 ID 的字段,很长的一个字符串。在拿到了这个用户 ID,我们的末了一块拼图就集齐啦。
0x06

再次回到管理配景,拦截登录哀求包,将我们自己构造的用户信息返归去,发现乐成进入了配景!固然大部分功能照旧无法访问,但是照旧有一小部分功能是可以利用的,且这些功能走漏了大量的敏感数据。
0x07

末了,整个过程就是如许啦,固然说到底照旧逻辑毛病,照旧未授权,说得简单点,不外就是改了一个返回包而已,但是我以为整个过程照旧有点意思的。渴望可以给各位师傅们一点新思绪吧~(关注有嘛?要不点个赞和在看也可以嘛)
更多原创文章第一时间推送
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表