编者注:F12 大法挺有用的,但如果后端校验 session,就没什么用了。
转载自:https://forum.butian.net/share/198
0x00 故事的开始
有人找到我,搞攻防请求支援,当然这种请求那当然要逝世呀
0x01 开始渗透
发了一堆站,有ip有域名
我搞了一晚上啥都没发现,本来想挖挖越权啥的
早上起来用jsFinder扫描,说不定有什么接口泄露呢
结果还真扫到了一堆,一看就看到了一些不得了的东西

getAllUsers,deleteuser等
尝试访问一个接口发现报错

有可能是未授权!,赶紧构造一下参数
分析js后需要两个参数

随便构造了一下出现了所有人的信息但是密码全部md5加密了,尝试解密了一下解不出来,size表示显示的字节

接下来要想办法进入后台进行更多的操作,因为构造参数什么的太麻烦了,他的大部分参数都rsa加密过

尝试修改过登入的返回包也没用

改为0表示成功

发现并没有用

如果换做以前的我,我会放弃,但是!我遇到了龙哥(前端代码审计的神)
0x02开始反转


找到了js判断是否登入后台的地方
1 | while (1) |
使用f12断点进行Dbug调试

发现是走到了0

然后赋值了30,因为是while (1)所以跳到了30后面就直接结束了

注意到了9,感觉就是后台页面,我们只需要想办法进到9里面就可以了

尝试重新调试
只需要在他赋值30的完事后在重新赋值覆盖掉他的值

然后不就会跳转到9了?
确实,成功跳到了9

第一个if没有进,不管他看下面的s.userRole,而s又等于JSON.parse(sessionStorage.getItem(“user”))

直接在这个地方赋值s.userRole=”admin”发现报错,请求了龙哥
0x03白热化阶段



1 | sessionStorage.setItem("user",JSON.stringify({"userRole":"admin"})) |
他这里先构造一个userRole=admin的json然后在进行写入本地的sessionStorage?
前面搞定了只需要把path路径改为bg_userManage就可以查看了

成功进来了这个判断:

查看后台:

尝试添加一个账号

果然,rsa加密了,如果我不进后台,拿头给他构造

登入就完事了

第一次登入需要修改密码:

尝试直接修改别的用户的密码:

结果真的可以修改
登入后的页面就不展示了,全是水印根本码不过来
0x04推荐
推荐浏览器插件reres
可以把网站的js下载到本地进行本地加载(实现修改js的目的,省的dbug修改)

可以直接在0的地方修改

就不用每一次dbug了
0x05结尾
以后渗透要多看看js,接口什么,实现真正的从0到1