实战8-滑块验证,点击验证

目标网站(滑块验证)

aHR0cHM6Ly93LmR6d3d3LmNvbS8/Y2lkPTEx

1.分析

进入网站搜索一个关键词,例如:'金矿',然后手动过滑块验证,找到响应数据的请求

在测试过程得知数据请求中需要用到cookies

但是即使携带cookies请求还是获取不到数据,此时就需要校验验证码
分析校验验证码的请求,多次测试这个数字是变化的


这段滑动距离就是请求中携带的数字

2.获取cookies

搜索cookies值得知cookie是set-cookie

代码

url = "https://w.dzwww.com/?act=dzwcode&t=0.8949014516774578"
response = requests.get(url, headers=session.headers,)
cook = {}
for k, v in response.cookies.items():
     cook[k] = v
print(cook)

全程请求需要会话维持

3.校验验证码

3.1先获取滑块验证需要的背景图与缺口图的二进制 这边获取到的是一整三合一图片所以需要将图一,图二用代码切割出,目前我没有什么好的方法只能讲图片保存然后再用crop方式切割

代码

with open('all.png','wb+') as f:
f.write(background_bytes)
img = Image.open("all.png")
cropped = img.crop((0, 0, 240, 150))  # (left, upper, right, lower)
cropped.save("background_bytes.png")

3.2获取距离值
使用ddddocr的方式
target_bytes:缺口二进制
background_bytes:背景图二进制

det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)
target = det.slide_match(target_bytes, background_bytes, simple_target=True)
print(target)
offset = target['target'][0]
print(offset)

获取距离值后通过请求,如果返回response.text与浏览器中相同便是校验成功,随后请求想要的数据便可得到

4.总结

1.通过请求获取set-cookie,并会话维持

2.获取滑块需要的两个图片二进制

3.通过ddddocr得到距离值,校验验证码

4.验证码校验成功后,便可以请求得到想要数据

这个是我觉得比较简单的方法,也还有可以使用reb来找出缺口,以及样本图片左右裁剪拼接等方法

目标网站(点击验证)

aHR0cDovL3d3dy55bmdwLmNvbS9wYWdlL3Byb2N1cmVtZW50L3Byb2N1cmVtZW50TGlzdC5odG1s

1.分析

验证码请求中clientUid貌似事uuid的格式,可以先用uuid试试

校验验证码中
clientUid:uuid
token:验证码请求的响应中
pointJson:需要js逆向

数据请求
captchaCheckFlag:js逆向

2.获取js

搜索pointJson,并打上断点

进入aesEncrypt,固定格式,直接调用aes模块,进入断点分析,需要传入两个参数
pointJson:这个是需要点击的文字的坐标位置,和secretKey也是验证码请求中响应的一个值

captchaCheckFlag:第一个参数需要组成(是token+坐标),第二个参数同上

3.获取坐标

在验证码请求的响应结果中获取图片的数据和需要点击的文字

通过ddddocr得到坐标,将坐标传入到所需要的参数中

posted @ 2024-05-24 11:11  导弹*  阅读(350)  评论(0)    收藏  举报