• Cute老师手摸手带你搞百度旋转验证码


    百度旋转验证码 ⇒ Cute老师手摸手带你搞百度旋转验证码

    目标网站如下===> (base64伪加密,Cute老师希望你懂我意思吧!)
    aHR0cHM6Ly93YXBwYXNzLmJhaWR1LmNvbS9zdGF0aWMvY2FwdGNoYS90dXhpbmcuaHRtbD9haz1iZDVlZTFlMGJhNWI5NGRiMjYwMzFlYTU5M2Y2NDk1NCZiYWNrdXJsPWh0dHBzJTNBJTJGJTJGYmFpa2UuYmFpZHUuY29tJTJGdmlldyUyRjMwMDAwMDAwLmh0bSZ0aW1lc3RhbXA9MTY5NDU2NzcxNiZzaWduYXR1cmU9NDY4ODg3NDEzNjVhOWMwNTA2NmY0Nzk4M2I1MTQ0MmI
    
    • 1

    一、请求分析

    (过该验证码仅仅只有三次请求,接下来和Cute老师一起来看看吧~~~)

    image-20230916135601594

    开启无痕模式,输入上面的url、选中XHR档位、直接让客户端向服务端(后端)发送网络请求,通过Chrome抓包工具(devtools)抓到经过HTTP协议的包,可以看到只有两个数据包,接下来慢慢分解。
    
    • 1
    第一次请求

    image-20230916135620536

    **url:**https://wappass.baidu.com/viewlog?

    请求方式: GET

    请求参数:

    callback JSONP请求 主要用来回调函数 【技巧】你可以试试置空 然后观察服务器响应结果 
    				一般这种返回jQuery110207436906004682473_1694835931310({}) 正则提取、字符串解析等等方法
    				
    ak  前后夹击验证、是个固定值、目睹了整个请求流程(后续都要携带它) => 【技巧】常量替换即可 
    
    _  毫秒级别时间戳
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    请求头:

    这个案例没什么特别的,没有需要逆向的参数。
    常见请求头: 【关注】 cookie/User-Agent/Referer/Content-Type 常见的这些配角要带上!
    
    • 1
    • 2

    Cookie:

    这里案例不需要大搞特搞哈!
    常见逆向Cookie的方案: Cute老师问你两个问题哈~~~
    1、是不是之前其他请求返回的??? 响应体、响应头位置
    2、是不是算法生成的??? hook-cookie 很多方案可以追根溯源到为止,然后模拟算法还原即可
    
    • 1
    • 2
    • 3
    • 4
    响应体:
     "tk" 
     "as"
     "ds"
    Cute老师暂时不知道这三个哥们是什么意思,我们继续往下面看哈!
    
    • 1
    • 2
    • 3
    • 4
    第二次请求

    参数分析

    image-20230916135719320

    响应分析

    image-20230916135736042

    图片下载

    def download_data(file_path, bs_data):
        with open(file_path, mode='wb') as fp:
            fp.write(bs_data)
    
    • 1
    • 2
    • 3

    image-20230916135754969

    第三次请求
    拖动按钮滑动,诱导浏览器发送网络请求,抓取分析
    我听过用手实践,将按钮滑到底部(底拢,紧紧地挨着的意思) 到底了相当于图片就是旋转了一周 360°顺序:顺时针
    
    • 1
    • 2

    image-20230916135813935

    参数分析

    image-20230916141541863

    响应分析

    image-20230916140027685

    参数有一个fs很长,比Cute老师还是差了点,哈哈!
    这种参数我们应该如何寻找他的一个生成位置???
    姿势一: 直接搜 可以用正则方案搜索,但是这种Cute老师不是很推荐,【为什么?】 这个fs不够特殊,不尼玛好找!
    姿势二:请求调用栈 往回看一步一步来,心情不好的话可以直接跳跃找,心情好可以从深入浅,一个个往下来,点点点(嘻嘻)。
    姿势三:乱找 (最稳,最暴力的方法,你一定可以跟上Cute老师的节奏,哈哈哈!!!)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    姿势一

    image-20230916135930463

    姿势二

    image-20230916141601342

    姿势三

    这个我不过多解读,dddd
    
    • 1

    代码分析

    image-20230916140141456

    image-20230916140215723

    image-20230916140231929

    image-20230916140244667

    image-20230916140309142

    image-20230916140401156

    image-20230916141447292

    image-20230916141428811

    image-20230916141334624

    image-20230916141346773

    image-20230916141403208

    image-20230916140928495

    image-20230916140637505

    image-20230916140620938

    image-20230916140601710

    image-20230916140543493

    二、算法还原

    from utiles.tools import *
    def my_aes(data, key):
        key = key.encode("utf-8")
        aes = AES.new(key=key, mode=AES.MODE_ECB)
        data = pad(data.encode("utf-8"), 16)
        return base64.b64encode(aes.encrypt(data)).decode("utf-8")
    
    
    as2 = "4635741b"
    rs = my_aes(data="""{"cl":[{"x":663,"y":277,"t":1694838894606}],"mv":[{"fx":667,"fy":341,"t":1694838893853,"bf":2},{"fx":673,"fy":289,"t":1694838894118,"bf":2},{"fx":688,"fy":281,"t":1694838894294,"bf":2},{"fx":664,"fy":277,"t":1694838894663,"bf":1},{"fx":847,"fy":279,"t":1694838894814,"bf":1}],"sc":[],"kb":[],"sb":[],"sd":[],"sm":[],"cr":{"screenTop":0,"screenLeft":0,"clientWidth":1536,"clientHeight":342,"screenWidth":1536,"screenHeight":864,"availWidth":1536,"availHeight":824,"outerWidth":1536,"outerHeight":824,"scrollWidth":1536,"scrollHeight":1536},"simu":0,"ac_c":0.9,"backstr":"6600-XcFkCdpWU/gcrrwsC8D1YdmwwOQQjLdIvxQ/JoMteMz1HV+F6O5BupPkofJXd6apozJloyvU33jjn0SLwCArDC6fD6HSQvzdKb9TSF0IHlcyxd4t8y9gJ5t9QmREJ+IqDH8n6JzRlkkZQj15luYJ4IZvV5qjax2rULlenB06ncYmXAzcZxsvTGtGDy19cbtcK2FfHPaZLLqQF7tE37uRD4gw0XWJ0OEeHvgni9fGxQatd++Cp2F34gmjajiIzYcyyoVhpNw19ptC2wWCEd0TLkQezVsTVQKbN/xTPf61xLUuxEprYv0cVOcoUYpwlJGoObzBo3tc47MZlpyJDoW+Ew=="}""",key=f"{as2}appsapi0")
    
    
    logger.info(
        rs=="aIM03GugRslj1p21hScJsoC04yuXU+/q8SCjTBpGCtJqkJp9KTfa3LnvBfrlV5Lxj6VVYTQGO++jMQCQw0rRBreDRJkCJTylpN2q60yVUARggq6ORCt8+F+iEad6ayJjxlpNKYMFso38X8HSwe1AP5Vb+ZFiQEXbs6m6pRHZPrE0DyUchOfgC216IFQrk+R3G/q6q7fckusnmbrpa2HXkM/qD1ySoQk8YiRomArlBd8Aco0/5M52bP9FSbW/7D9hv97tIrvGtni7aI7f8LL3BDwTbTinb6STWL74W5PqJ2/JZ3JD/Bg7Ve5od6lCpvstdBbW/jAu90TUd7NpC7/uSkUhbFxANDWZNizzHgR1H3Rpf5LWQdoc7uRviTMRhO6rE8a2WxdRo6QVX3cRpshi1QfNQcq+APQTl6lXaxBUVv0hWh6i9tn2UFfPcRZ1oyciT7sQi1oGO4bE+5T69ZD1312MEAZ2W8DiZCwc8z/g9BQUomd7yWkQ3WKJoL5N+zOMGnH35zA9vfw3kt7+EyBZ1wn90PfbCuB+KJrukA4ri+gIEyTPhmVGEjkxSebQTjcYCG5uBCIKkPU40errF7P5AsyQPQbFyF8Va/6hhX6UGVq3Qt90h8x38ZPZ1LQBM7VPzRQKKM+UTLE2GkvW+2nh8G660HE8zyjLKaOVfAt//V8M/bgF594sak8gyPjv9yDz89SONjLbtFFpkblULRqW2k9csVO5sbtOoCUnfb8ZeIV41gDlkgSdJJO07RDjJYtXPf1sBgeJoMOwK09pjO7t5gwd8I927oK2fUss1hPrH0qsO0zY3b9+C9DeBpNn6x84HPXddF+gLAJmzUdJz7ERM7Pqb6tdfQjIYBq/WAO6daFgPbuAZRbzRBXj2Y0P7xcCiqGWHILKZc6UomYTC0U9tNSFycFWx2rHot3e/MbVON5XrIYpcpYiBJBx7FacACJjFgg3G+FbkFWh4CunJUpb1FqnB9mMETs7she5A00A32nPEqPugXP0qweuTJlkoUpDAiWVDPbvNWzALAwfiap8NHNv3jDs8FhGcug6/vPutmYNhyo3awNWN4T/8ai1nJM3pJMVOGGrKRujFoqK3KfqFz/7N8vseT/82m3DKGmC0Vr/est9aYA8b3FdeBOOwYqlrdpdR7FA/WfCZBwfhPzwDIBqTdrrXEe3v83+sgu0YdPC9plNoZ9TKOWVl9oO6sR68uFD3TgyJ3yNEB4hlwmvTQ=="
    )
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    三、旋转角度

    【参考】:==》 aHR0cHM6Ly9naXRodWIuY29tL1N0YXJyeS1Pdk8vcm90YXRlLWNhcHRjaGEtY3JhY2s=
    
    • 1

    四、复盘总结

    Cute老师是一个固执的人,没有给出源码 但是聪明的你们应该知道我会出手!
    if needs Can call me by this ==> 
    57u/5rOh5rOh5pCc57Si44CQ5aSH5rOo5p2l5rqQ44CROiBQeXRob25fQ3V0ZTIwMjM=
    绿泡泡(Python_Cute2023)
    
    【总结一下】:
    这个案例非常简单,一步一步下来,没有什么让人眼花缭乱的东西,主要验证的就是旋转的比例。
    接着,后续我会出一下某农网移动端的教程,项目已经开发完毕,每日更新中~~~
    感兴趣的同学可以关注一下:
    aHR0cHM6Ly9tLmNuaG5iLmNvbS9oYW5ncWluZy9jZGxpc3QtMC0wLTEzLTAtMC01Lw==
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    image-20230916140506464

    五、说在最后

    没点关注的兄弟,赶快点下关注、不然就和Cute老师失之交臂了、找不到我你绝对后悔!!!
    ===> 后面让我会持续肝文 咱们一起交流爬虫、分享逆向工程相关知识、越学越深入、越学越爽,加油兄弟们!!!
    
    【安排四联】;关注、点赞、评论、转发!!!
    我尼玛直接跟上Cute老师的节奏啊!!!
    
    • 1
    • 2
    • 3
    • 4
    • 5

    w==

    
    [外链图片转存中...(img-uOaZHrbv-1694845184523)]
    
    ### 五、说在最后
    
    ```txt
    没点关注的兄弟,赶快点下关注、不然就和Cute老师失之交臂了、找不到我你绝对后悔!!!
    ===> 后面让我会持续肝文 咱们一起交流爬虫、分享逆向工程相关知识、越学越深入、越学越爽,加油兄弟们!!!
    
    【安排四联】;关注、点赞、评论、转发!!!
    我尼玛直接跟上Cute老师的节奏啊!!!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    Spring Security笔记
    B+ 树的简单认识
    数据结构开门篇
    Java项目:JSP药店药品商城管理系统
    CSS:text-decoration文本装饰
    apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】
    米联客FDMA3.1数据缓存方案全网最细讲解,自创升级版,送3套视频和音频缓存工程源码
    Python第二章 基础语法
    配置XP虚拟机和Win 10宿主机互相ping通
    11.10~11.15置信区间,均值、方差假设检验,正态,t,卡方,F分布,第一第二类错误
  • 原文地址:https://blog.csdn.net/m0_58618019/article/details/132918404