一、什么是不安全的设计
设计语句或者业务流程的时候,只想着把业务快速的设计出来,没有对业务线进行严谨的处理,业务逻辑存在重大可以利用的漏洞:
- 支付逻辑
- 密码找回
- 验证码暴力破解
- 验证码重复使用
- 验证码客户端回显
- 验证码自动识别
二、DVWA靶场实现
打开DVWA Insecure CAPTCHA(不安全的验证码)
把虚拟机中的config
$_DVWA[ 'recaptcha_public_key' ] = ' ';
$_DVWA[ 'recaptcha_private_key' ] = ' ';
修改开启此功能
$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
点此学习安装Burpsuite
Burpsuite是一个专门用于安全渗透测试的集成平台,本文靶场中用此抓包修改数据实现绕过密码验证。
1.打开Burpsuite使用代理功能,设置火狐浏览器代理,Burpsuite代理,并安装好CA证书。
2.打开靶场,点击inscure CAPTCHA
3.打开Burpsuite拦截,靶场中随便输入修改密码
4.点击change,然后抓包分析
我们发现,请求参数有四个,分别是step=1&password_new=1234567&password_conf=1234567&Change=Change。
中间两个应该是输入的密码和确认密码,最有一个CHANGE应该是修改密码的命令,那么,可以做绕过的是第一个step,试着把它改成2后点击放行。
5.密码竟然已经修改成功了
6.我的登录密码被我改成了1234567,然后这样的步骤竟然不需要输入原密码。
这样造成的结果就是,如果你拿到了某个账户临时登录的cookie,你能够通过绕过原密码输入的环接,直接进行修改永久密码。
7.源码分析
从源码分析,step"1"此处是需要你输入一个密钥,把你输入的密钥和服务器的密钥进行比对。比对成功后再进入step2修改密码环接,但是你直接修改了step’1’,直接绕过了此步骤。
这就是存在的逻辑漏洞,只用一个参数step进行逻辑顺序验证,那如果别人抓包直接修改step,岂不是直接绕过验证。