背景
某个文档包下载站由于规避 pcdn 用户刷流量原因 上了 waf 防护, 以前能直接下载的文件现在 会报错 error 468 no description。
正确的解法有2种,1是申请白名单,2是浏览器真实访问下载。作为长期习惯下载命令下载文件的我,肯定不太习惯,于是在 AI 的帮助下,有了这篇使用 playwright 工具来对抗 waf 的文档,这里 记录一下。
步骤
先侦查
第一回合,传统方式
改 uA 、上cookies、带 referrer,都无情的被拦截了,于是一点要先搞清 468 报错后面有啥,才能知己知彼, 一番折腾后,查看强行下载的 tar 包文件,发现了这段文字。
"name":"雷池","name_en":"SafeLine","product":"长亭","community":"社区版","link":"https://waf-ce.chaitin.cn/","link_en":"https://waf.chaitin.com/","self":true}
。。。
{en:"Security Detection Powered By",zh:"安全检测能力由"},suffix:{en:"",zh:"驱动"},name:{en:window.product_data?.name_en+" WAF",zh:window.product_data?.name+" WAF"},link:{en:window.product_data?.link_en,zh:window.product_data?.link},decrypting:{en:"Dynamic Decrypting",zh:"网页被保护,正在解密中"},failed:{en:"Decryption Failed",zh:"解密失败"},blocking:{en:"Access Forbidden",zh:"访问已被拦截"},"attack-desc":{en:"Blocked For Attack Detected",zh:"请求存在恶意行为,已被管理员拦截"},
。。。
下载页面确实被 长亭 雷池 waf.chaitin.com社区版保护了。
研究对策
几轮测试 拿到了这张图片,和前面雷池文字相似,说明有一个悄悄的验证。

第二回合:AI 出场
我边搜资料边问 ai 解法,ai给出了 playwright 这个工具。
AI 给的逻辑是使用 Playwright,加上会“演戏”的浏览器chrome ,配合 Xvfb 虚拟 1920×1080 大屏,24 位真彩,显卡号全配齐。
这样来测试下载。
第三回合:伪装学大师
AI 提示下 陆续安装了这些工具
pip install playwright playwright-stealth
playwright install-deps
playwright install chromium
apt-get install -y xvfb libgbm-dev
核心就一句:让浏览器以为自己在“真·有头”模式,实则后台跑在内存里下载。
配合:human_move(),手抖、加速、减速,轨迹,堪比期末考试划重点。
点击方式:9 点矩阵地毯式轰炸,保证“雷池”小按钮无处遁形。
通关
总结,依旧是按照地址列表,走命令行方式完成下载,此处截图一张纪念。
可能问题
当然是 之后 waf 拦截方式升级,上验证码或算法之类,我这套办法就要废弃或继续改造了。因此,先低调的用吧。

文章评论