本文主要是介绍Cute老师手摸手带你搞百度旋转验证码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
百度旋转验证码 ⇒ Cute老师手摸手带你搞百度旋转验证码
目标网站如下===> (base64伪加密,Cute老师希望你懂我意思吧!)
aHR0cHM6Ly93YXBwYXNzLmJhaWR1LmNvbS9zdGF0aWMvY2FwdGNoYS90dXhpbmcuaHRtbD9haz1iZDVlZTFlMGJhNWI5NGRiMjYwMzFlYTU5M2Y2NDk1NCZiYWNrdXJsPWh0dHBzJTNBJTJGJTJGYmFpa2UuYmFpZHUuY29tJTJGdmlldyUyRjMwMDAwMDAwLmh0bSZ0aW1lc3RhbXA9MTY5NDU2NzcxNiZzaWduYXR1cmU9NDY4ODg3NDEzNjVhOWMwNTA2NmY0Nzk4M2I1MTQ0MmI
一、请求分析
(过该验证码仅仅只有三次请求,接下来和Cute老师一起来看看吧~~~)
开启无痕模式,输入上面的url、选中XHR档位、直接让客户端向服务端(后端)发送网络请求,通过Chrome抓包工具(devtools)抓到经过HTTP协议的包,可以看到只有两个数据包,接下来慢慢分解。
第一次请求
**url:**https://wappass.baidu.com/viewlog?
请求方式: GET
请求参数:
callback JSONP请求 主要用来回调函数 【技巧】你可以试试置空 然后观察服务器响应结果 一般这种返回jQuery110207436906004682473_1694835931310({}) 正则提取、字符串解析等等方法ak 前后夹击验证、是个固定值、目睹了整个请求流程(后续都要携带它) => 【技巧】常量替换即可 _ 毫秒级别时间戳
请求头:
这个案例没什么特别的,没有需要逆向的参数。
常见请求头: 【关注】 cookie/User-Agent/Referer/Content-Type 常见的这些配角要带上!
Cookie:
这里案例不需要大搞特搞哈!
常见逆向Cookie的方案: Cute老师问你两个问题哈~~~
1、是不是之前其他请求返回的??? 响应体、响应头位置
2、是不是算法生成的??? hook-cookie 很多方案可以追根溯源到为止,然后模拟算法还原即可
响应体:
"tk" "as""ds"
Cute老师暂时不知道这三个哥们是什么意思,我们继续往下面看哈!
第二次请求
参数分析
响应分析
图片下载
def download_data(file_path, bs_data):with open(file_path, mode='wb') as fp:fp.write(bs_data)
第三次请求
拖动按钮滑动,诱导浏览器发送网络请求,抓取分析
我听过用手实践,将按钮滑到底部(底拢,紧紧地挨着的意思) 到底了相当于图片就是旋转了一周 360°顺序:顺时针
参数分析
响应分析
参数有一个fs很长,比Cute老师还是差了点,哈哈!
这种参数我们应该如何寻找他的一个生成位置???
姿势一: 直接搜 可以用正则方案搜索,但是这种Cute老师不是很推荐,【为什么?】 这个fs不够特殊,不尼玛好找!
姿势二:请求调用栈 往回看一步一步来,心情不好的话可以直接跳跃找,心情好可以从深入浅,一个个往下来,点点点(嘻嘻)。
姿势三:乱找 (最稳,最暴力的方法,你一定可以跟上Cute老师的节奏,哈哈哈!!!)
姿势一
姿势二
姿势三
这个我不过多解读,dddd
代码分析
二、算法还原
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=="
)
三、旋转角度
【参考】:==》 aHR0cHM6Ly9naXRodWIuY29tL1N0YXJyeS1Pdk8vcm90YXRlLWNhcHRjaGEtY3JhY2s=
四、复盘总结
Cute老师是一个固执的人,没有给出源码 但是聪明的你们应该知道我会出手!
if needs Can call me by this ==>
57u/5rOh5rOh5pCc57Si44CQ5aSH5rOo5p2l5rqQ44CROiBQeXRob25fQ3V0ZTIwMjM=
绿泡泡(Python_Cute2023)【总结一下】:
这个案例非常简单,一步一步下来,没有什么让人眼花缭乱的东西,主要验证的就是旋转的比例。
接着,后续我会出一下某农网移动端的教程,项目已经开发完毕,每日更新中~~~
感兴趣的同学可以关注一下:
aHR0cHM6Ly9tLmNuaG5iLmNvbS9oYW5ncWluZy9jZGxpc3QtMC0wLTEzLTAtMC01Lw==
五、说在最后
没点关注的兄弟,赶快点下关注、不然就和Cute老师失之交臂了、找不到我你绝对后悔!!!
===> 后面让我会持续肝文 咱们一起交流爬虫、分享逆向工程相关知识、越学越深入、越学越爽,加油兄弟们!!!【安排四联】;关注、点赞、评论、转发!!!
我尼玛直接跟上Cute老师的节奏啊!!!
w==
[外链图片转存中...(img-uOaZHrbv-1694845184523)]### 五、说在最后```txt
没点关注的兄弟,赶快点下关注、不然就和Cute老师失之交臂了、找不到我你绝对后悔!!!
===> 后面让我会持续肝文 咱们一起交流爬虫、分享逆向工程相关知识、越学越深入、越学越爽,加油兄弟们!!!【安排四联】;关注、点赞、评论、转发!!!
我尼玛直接跟上Cute老师的节奏啊!!!
这篇关于Cute老师手摸手带你搞百度旋转验证码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!