注:本篇博客仅供学习使用,请勿用作其他商业用途,如有侵权,请联系本菜鸟
这段时间因为业务需求本菜鸟又遇到了除了某验之外又一个非常常见的验证码,经过我两天的不懈努力,终于把某验的点选验证拿捏了,事实证明这类验证码还是挺简单的(哈哈哈哈 凡尔赛了^_^)
话不多说 直接进入正题
1.抓包分析
1.1.请求获取到gt和challenge值
1.2.用gt值请求gettype.php接口
1.3.用gt和challenge参数请求验证码类型,这里的w值可以设置为空
1.4.用gt和challenge值请求验证码图片信息
2.w值分析 直接搜索"\u0077"
2.1 处理u值
断点进u值
发现此时的u值就是new K()[Yqil(390)](t[ZTT_(752)](e));这行代码生成的,那么就扣这个K,其中
t[ZTT_(752)](e)为一个随机的字符串,所以直接将K整体扣下来
部分代码:
u值运行截图:
2.2 o值!!! 这个值很重要,ep这个值不检测,pic值:图片的地址,passtime不检测,rp值:md5加密(gt+challenge+passtime),a值:点击的坐标计算得到的值,tt鼠标的轨迹
2.2.1 a值处理:x,y值分别进行int((x/306)*100*100)
计算拼接得到
2.2.2 tt值处理,进入s
进入s这个函数过后看到e[XOjt(653)](e[XOjt(613)](t));
将e[XOjt(613)](t)
函数和e[XOjt(653)]()
函数扣下来即可,其中t为鼠标的轨迹,在点选验证码中不验证,固定即可
最后把pe函数扣下来组成tt的值
最后将Q和h直接扣出来,这里的r[uiVG(752)]()
为前面扣u值一样的随机值
3.程序运行截图:
好了,某验的点选验证js逆向就这样完成了,总体来说难度适中,很适合js逆向进阶过后的码农们研究。
再次申明:本博客只用作学习教学使用,不能用作商业用途!!!
谢谢,本菜鸟会更努力的!