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

2023-10-10 12:20

本文主要是介绍Cute老师手摸手带你搞百度旋转验证码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

一、请求分析

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

image-20230916135601594

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

image-20230916135620536

**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老师暂时不知道这三个哥们是什么意思,我们继续往下面看哈!
第二次请求

参数分析

image-20230916135719320

响应分析

image-20230916135736042

图片下载

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

image-20230916135754969

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

image-20230916135813935

参数分析

image-20230916141541863

响应分析

image-20230916140027685

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

姿势一

image-20230916135930463

姿势二

image-20230916141601342

姿势三

这个我不过多解读,dddd

代码分析

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=="
)

三、旋转角度

【参考】:==》 aHR0cHM6Ly9naXRodWIuY29tL1N0YXJyeS1Pdk8vcm90YXRlLWNhcHRjaGEtY3JhY2s=

四、复盘总结

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

image-20230916140506464

五、说在最后

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

w==


[外链图片转存中...(img-uOaZHrbv-1694845184523)]### 五、说在最后```txt
没点关注的兄弟,赶快点下关注、不然就和Cute老师失之交臂了、找不到我你绝对后悔!!!
===> 后面让我会持续肝文 咱们一起交流爬虫、分享逆向工程相关知识、越学越深入、越学越爽,加油兄弟们!!!【安排四联】;关注、点赞、评论、转发!!!
我尼玛直接跟上Cute老师的节奏啊!!!

这篇关于Cute老师手摸手带你搞百度旋转验证码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/180412

相关文章

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心