第51天 WEB攻防-通用漏洞&验证码识别&复用&调用&找回密码重定向&状态值
知识点:
1、找回密码逻辑机制-回显&验证码&指向
2、验证码验证安全机制-爆破&复用&识别
3、找回密码客户端回显&Response状态值&修改重定向
4、验证码技术验证码爆破,验证码复用,验证码识别等
详细点:
找回密码流程安全:
1、用回显状态判断-res前端判断不安全
2、用用户名重定向-修改标示绕过验证
3、验证码回显显示验证码泄漏验证虚设
4、验证码简单机制验证码过于简单爆破
验证码绕过安全:
1、验证码简单机制-验证码过于简单爆破
2、验证码重复使用验证码验证机制绕过
3、验证码智能识别-验证码图形码被识别
4、验证码接口调用-验证码触发机制枚举
#安全修复方案:
找回机制要进行每一步验证-防绕过重定向
找回机制要进行服务端验证-防s数据修改
找回机制要控制验证码安全防验证码攻击
验证码接口需验证后被调用-防接口被乱调用
验证码弱引用智能化人工判断-防验证码被识别
验证码采用时间段生效失效-防验证码被复用
演示案例:
phpun-res值修改&验证码回显&爆破
某APP-res值修改&验证码接口调用&复用
seacms-验证码识别&找回机制对应值修改
#phpun-res值修改&验证码回显&爆破
1、验证码回显绑定手机号时验证码前端泄漏被获取
在提交验证码时,请求包中含有正确的验证码,
此时只需要把提交表单中的验证码改为正确的即可绕过。
2、res修改-绑定手机号时修改返回状态值判定通过
将浏览器返回给浏览器的数据抓包(通过burp response this request)发现验证正确的数据包返回值为1,验证错误的数据包返回值为3,所以修改返回值为1即可绕过
验证码爆破知道验证码规矩进行无次数限制爆破(建立在验证码没错误次数限制的基础上)
使用brup自带的爆破模块(不实用)
#某APP-rs值修改&验证码接☐调用&复用
res修改-找回密码修改返回状态值判定验证通过
验证码接口调用抓当前发送验证码数据包后调用
思路:先尝试发送验证码验证请求包–抓包并未看到正确验证码存在–尝试抓取验证正确返回包和验证错误返回包,然后将错误返回包内容替换为正确表单值–成功绕过
验证码复用抓第一次验证通过的验证码进行复用(重复发包,可造成短信轰炸)
#seacms-验证码识别&找回机制对应值修改
找回机制对应值修改:
注册两个帐号,尝试找回密码,重置连接重定向绕过
代码审计后分析P0C:
member.php?mod=repsw3&repswcode=y&repswname=targetUser
思路:白盒审计发现找回密码返回的链接中包含的repswocode是带入判断数据库中进行判断,
默认账户的这个值为y,所以可以使用其他账号尝试构造修改密码链接进行绕过
验证码识别:xp_CAPTCHA
https://github.com/cony1/captcha-killer
https://github.com/smxiazi/NEW_xp_CAPTCHA
使用环境:windows10 python3.6.5
安装使用:具体看直播操作
1、burp安装ypython后导入py文件
2、安装所需库后pythoni运行server…py
3、抓操作数据包后设置参数设置引用
参考案例:https://www.cnblogs.com/punished./p/14746970.html
应用:爆破密码时,接口调用时,测试其他时等
验证码识别详见本人文章:Brup+Captcha-killer+ddddocr实现验证码识别