5、Vulnerability: Insecure CAPTCHA
以上代碼的作用爲判斷新的代碼和驗證的代碼是否相同,相同則更改成功,否則報錯。
具體函數可參考暴力破解:
主要用處之一有:mysqli_real_escape_string()會將轉義特殊字符,一定程度上防止SQL注入。
Low
這裏我們還是直接來看代碼
1、服務器通過調用recaptcha_check_answer函數檢查用戶輸入的正確性。
recaptcha_check_answer(remoteip, response)
參數remoteip是用戶的ip,response是recaptcha_response_field字段的值。函數返回ReCaptchaResponse class的實例,ReCaptchaResponse類有2個屬性 :
$is_valid是布爾型的,表示校驗是否有效,
$error是返回的錯誤代碼。
2、它主要有兩個if函數,將整體分成了兩部分,大概就是第一部分檢查驗證碼返回表單,第二部分接受用戶的表單再來進行修改
這裏很明顯我們直接跳過一個if判斷就能繞過驗證碼了
此處可以看見step=1;故把其改爲2(要留意要把&password_new=123&password_conf=123;改爲相同)
Medium
服務器端核心代碼:
可以看到,Medium級別的代碼在第二步驗證時,參加了對參數passed_captcha的檢查,如果參數值爲true,則認爲用戶已經通過了驗證碼檢查,然而用戶依然可以通過僞造參數繞過驗證,本質上來說,這與Low級別的驗證沒有任何區別。
漏洞利用
1.可以通過抓包,更改step參數,增加passed_captcha參數,繞過驗證碼。
抓到的包:
step=2&password_new=123&password_conf=123&Change=Change&passed_captcha=ture
5、DVWA、Vulnerability: Insecure CAPTCHA
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.