逆向百例——某备案号官网反爬
某备案号官网数据采集声明一、加速乐反爬二、请求头Token参数三、验证码反爬1、滑块识别整体流程目标网站aHR0cHM6Ly9iZWlhbi5taWl0Lmdvdi5jbi8jL0ludGVncmF0ZWQvaW5kZXg实战我们结合claude code提高我们的破解和爬虫脚本生成效率文章我们主讲大致的流程和粗略的实战过程。破解流程大致如下1、解决Cookies反爬加速乐反爬加速乐相关的讲解可以看我之前写过的文章。2、请求头相关参数反爬解决 Token 参数即可。3、载荷参数加密反爬获取 Token 接口的载荷 authKey 加密一个标准的md5加密就可以获取请求头Token了请求图片的载荷反爬这个相对简单直接用通用的uuid生成就可以用 uuid4省心、随机、安全这个载荷加密可以忽略 —— 主要是之前验证码反爬还是文字点选的时候他的轨迹生成需要用一个标准的AES加密生成。现在是更新成新的验证码反爬了所以可以忽略4、验证码反爬滑块验证码这里也是比较麻烦的一个难点文章会简单讲解如何过这个比较特殊的滑块验证码反爬。上面这四个解决完后你就可以采到网站对应的接口数据了。声明本文章中所有内容仅供学习交流抓包内容、敏感网址、数据接口均已做脱敏处理严禁用于商业用途和非法用途否则由此产生的一切后果均与作者无关若有侵权请联系我立即删除以下内容仅供学习交流使用一、加速乐反爬在第二次请求的时候我们直接把它返回的整段代码拿下来放到文件中然后用claude code 分析并用 python 纯算还原便捷是便捷就是有点烧tokens 分析这段混淆代码纯算得出的python代码如下可以得出对应的加密情况其实跟一下流程然后手写你也可以写出来的后悔分析这个了importhashlib HASHERS{md5:hashlib.md5,sha1:hashlib.sha1,sha256:hashlib.sha256,}defsolve(params):btsparams[bts]charsparams[chars]ctparams[ct]hasherHASHERS[params.get(ha,sha256)]prefix,suffixbts[0],bts[1]nlen(chars)foriinrange(n):forjinrange(n):candidateprefixchars[i]chars[j]suffixifhasher(candidate.encode(utf-8)).hexdigest()ct:returncandidatereturnNonedefbuild_cookie(params,clearance):cookief{params[tn]}{clearance};max-age{params[vt]};path/ifparams.get(is):cookie;secure;SameSiteNonereturncookieif__name____main__:params{bts:[1776759952.391|0|AAM,QPhyJ1Gv8oYvo%2F0ORrZaDs%3D],chars:BHnQegpfVjzdggDbVroIFb,ct:4e93f61dd7195d914a11704858054f507b767a8d66341492926b46d81b4497a9,ha:sha256,is:True,tn:__jsl_clearance_s,vt:3600,wt:1500,}clearancesolve(params)ifclearanceisNone:raiseRuntimeError(no clearance match)print(clearance:,clearance)print(cookie :,build_cookie(params,clearance))原理就是在 chars 里取两个字符 c1、c2拼成 bts[0]c1c2bts[1]命中 sha256(x) ct 即为 clearance也就是加速乐第二次请求生成的 Cookies 参数__jsl_clearance_s。上面我们的加速乐反爬就结束了。二、请求头Token参数这里要先解决authKey请求载荷的加密直接全局搜索一下打个断点就行了然后接口返回的数据就有一个是 token存入请求头这里也解决了三、验证码反爬该网站之前主要是 文字点选 的验证码反爬最近更新验证码反爬变成了滑块刚开始我还以为怎么变简单了呢结果这个滑块验证码并不简单花的处理时间比上面其他的反爬操作还要久。用ddddocr去识别获取的缺口位置得不到一个准确的位置识别不了那就解决不了。所以我们更改成把图片的Base64通过 npcv2 解码成 BGR基于局部方差的滑块缺口检测识别出背景图的缺口位置核心思路滑块缺口区是一块被压暗/平滑处理的均匀色块在整张图里方差最小。脚本通过滑窗方差找这个极小值位置。1、滑块识别整体流程Base64图片 → 解码为图像 → 灰度化 → 计算局部方差 → 找方差最小区域 → 返回缺口坐标识别结果如下对应的滑块验证码脚本可以私信我获取非免费提供也可直接在我的资源上下载。最终脚本实现