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整合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 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

poj 2187 凸包or旋转qia壳法

题意: 给n(50000)个点,求这些点与点之间距离最大的距离。 解析: 先求凸包然后暴力。 或者旋转卡壳大法。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <s

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring 验证码(kaptcha)

首先引入需要的jar包: <dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version></dependency> 配置验证码相关设置: <bean id="captchaProducer" class="com.

二维旋转公式

二维旋转公式 ros的tf工具包可以很方便的实现任意坐标系之间的坐标转换。但是,如果只是想简单的测试想法,而又不想编写过于庞杂的代码,考虑自己写二维旋转的函数。而与二维旋转问题对偶的另一个问题便是二维坐标系旋转变换。这两个问题的形式基本一样,只是旋转的角度相差一个负号。就是这个容易搞混,所以做个笔记,以备查用。 1. 二维旋转公式(算法) 而(此文只针对二维)旋转则是表示某一坐标点 ( x

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu