2026-06-07 20:15:35
【Pikachu 靶场精讲】验证码绕过(on server)
验证码生成原理:
在Pikachu靶场中,我们可以通过以下步骤来分析并绕过服务端的验证码:
验证码请求逻辑:
点击验证码刷新按钮,浏览器会向/inc/showvcode.php路径请求验证码。
每次刷新都会生成一个新的验证码图片,并显示在网页上。
无论是登录成功还是失败,都会请求新的验证码。
最优解法——验证码复用漏洞:
发现漏洞:通过抓包工具(如Burp Suite)对登录页面进行抓包,填写正确的验证码后,将请求包发送到重放器(Ctrl+R)多次发送。若HTTP响应码始终返回200,且验证码未失效,则可判断存在验证码复用漏洞。
利用漏洞:将存在复用漏洞的验证码保持不变,将用户名和密码区域作为Payload,使用Intruder模块进行爆破。
通用解法——OCR识别验证码:
工具选择:使用ddddocr或captcha-killer-modified等工具进行验证码识别。
环境配置:
下载captcha-killer-modified.jar包并导入Burp Suite(需JDK 8环境)。
安装Python pip库,并安装Pillow、aiohttp、argparse等依赖。
搭建验证码识别服务ddddocr(Python版本不能高于3.11)。
运行codereg.py脚本,成功配置后出现======== Running on
Pikachu靶场实践:
打开Burp Suite开始抓包,将用户登录页面的数据包发送到captcha-killer-modified插件。
将POST请求的URL地址改为验证码的请求路径/inc/showvcode.php,以便正确请求到验证码图片。
配置接口URL为
根据实际情况调整验证码识别位数(如Pikachu靶场默认为6位)。
将数据包发送到Intruder模块进行爆破,使用Pitchfork(交叉)功能,并设置Payload-3为Extension-generated Payload类型,使用captcha-killer-modified作为生成器。
设置资源池中最大并发数为1,请求间隔建议设定为1000毫秒。
确保Intruder模块和captcha-killer-modified中的Cookie保持一致。
进行攻击,查看结果。
总结:
通过以上步骤,我们可以有效地绕过服务端的验证码,进行进一步的渗透测试或安全评估。但请注意,这些技术仅应用于合法的安全测试和评估,未经授权的渗透测试是违法的。