本系列文集:DVWA學(xué)習(xí)筆記
Low:
分析:
isset函數(shù)
在php中用來檢測(cè)變量是否設(shè)置(該函數(shù)返回的是布爾類型的值,即true/false)
可以看到,服務(wù)器只是驗(yàn)證了參數(shù)Login是否被設(shè)置拨扶,沒有任何的防爆破機(jī)制凳鬓,且對(duì)參數(shù)username、password沒有做任何過濾患民,存在明顯的sql注入漏洞缩举。
方法一利用burpsuite爆破
1.抓包
3.根據(jù)在爆破結(jié)果中找到正確的密碼酒奶,可以看到password的響應(yīng)包長(zhǎng)度(length)“與眾不同”,可推測(cè)password為正確密碼奶赔,手工驗(yàn)證登陸成功惋嚎。
方法二手工sql注入
Username:admin’ or ’1′=’1
Password:(空)Username :admin’ #
Password :(空)
Medium:
分析:
Medium級(jí)別的代碼主要增加了mysql_real_escape_string函數(shù)
,這個(gè)函數(shù)會(huì)對(duì)字符串中的特殊符號(hào)(x00站刑,n另伍,r,绞旅,’摆尝,”,x1a)進(jìn)行轉(zhuǎn)義因悲,基本上能夠抵御sql注入攻擊堕汞,同時(shí)$pass做了MD5校驗(yàn),杜絕了通過參數(shù)password進(jìn)行sql注入的可能性晃琳。但是讯检,依然沒有加入有效的防爆破機(jī)制.
方法:
雖然sql注入不再有效,但依然可以使用Burpsuite進(jìn)行爆破卫旱,與Low級(jí)別的爆破方法基本一樣人灼。
High:
分析:
High級(jí)別的代碼加入了checkToken,可以抵御CSRF攻擊顾翼,同時(shí)也增加了爆破的難度投放,通過抓包,可以看到适贸,登錄驗(yàn)證時(shí)提交了四個(gè)參數(shù):username灸芳、password、Login以及user_token拜姿。
每次服務(wù)器返回的登陸頁面中都會(huì)包含一個(gè)隨機(jī)的user_token的值耗绿,用戶每次登錄時(shí)都要將user_token一起提交。服務(wù)器收到請(qǐng)求后砾隅,會(huì)優(yōu)先做token的檢查误阻,再進(jìn)行sql查詢。同時(shí),High級(jí)別的代碼中究反,使用了stripslashes(去除字符串中的反斜線字符,如果有兩個(gè)連續(xù)的反斜線,則只去掉一個(gè))寻定、 mysql_real_escape_string對(duì)參數(shù)username、password進(jìn)行過濾精耐、轉(zhuǎn)義狼速,進(jìn)一步抵御sql注入。