不安全的验证流程
一、Low等级
1、漏洞分析
if( isset( $_POST[ 'Change' ] ) && ( $_POST[ 'step' ] == '1' ) ) {
// Check CAPTCHA from 3rd party
$resp = recaptcha_check_answer(
$_DVWA[ 'recaptcha_private_key'],
$_POST['g-recaptcha-response']
);
if( isset( $_POST[ 'Change' ] ) && ( $_POST[ 'step' ] == '2' ) ) {
// Check to see if both password match
if( $pass_new == $pass_conf ) {
// They do!
- 服务器将改密操作分成两步
第一步是验证验证码是否正确
第二步是提交post请求,修改密码
2、修改step绕过验证码认证
- 拦截请求,将step的参数改为2
- 成功绕过