前端提交登陆表单时数据包加密了, 而且有个 sign 字符串每次都不一样用于校验, 应该是用 js 加密
注入的地方是获取验证码时的手机号, 刚开始想着先找到 js 加密的函数, 然后生成 sign 再组数据包发送。
就像 记一次SQL Server报错注入 中一样, 用 selenium 或者 PhantomJS 执行 js 代码生成sign
一番查找发现了加密的 js 文件函数, 但是用的是 angular 这个前端框架, 没用过这个东西。。。。
能看懂一般的 js 代码, 但是这个没得搞, 不懂。。。
本来昨天我已经放弃了的, 结果今天上午小伙伴又找我了, 说还没有整好, 又看了一通 js, 仍然无解, 看不懂。。。
想起昨天有个大佬说用 PhantomJS + flask 这样、那样、再这样, 中转数据就可以用 sqlmap 跑了, emmmmm。。。
虽然很早以前用过 asp 的 Cookie 注入中转 , 但是那个是软件, 一直没有搞懂原理, 现在正好趁机学下
经过各种百度, 大概明白了, 应是本地起个 server, sqlmap 就扫描这个 server, server 接收到 payload 后将 payload 加到表单中, 然后模拟提交表单
没有接触过 PhantomJS, 但是 selenium 以前用过, 可以尝试下
大概看了下, 我们需要注意动态的消息提示框, 需要处理 input 的长度
大概代码就是下面这样了:
启动 flask 服务
使用 sqlmap 尝试扫描
flask 接收到了payload
sqlmap 执行结果
转自:黑白之道
微信扫一扫分享