靶場環境
phpstudy8.1.1.3
Apache2.4.39
FTP0.9.60
MySQL5.7.26
Burpsuite v2.1
LOW
首先看一下原始碼:
這裡沒有任何限制,可以使用萬能破解 (萬能破解還有很多其他的語句)
SELECT * FROM 'users' WHERE user = '$user' AND password = '$pass';";
填進去就是:
SELECT * FROM 'users' WHERE user = 'admin' or '1'='1' AND password = '$pass';";
登入成功!
Medium
這次使用萬能破解已經不管用了,看一下原始碼:
查一下這句語句:mysqli_real_escape_string()
https://www.w3school.com.cn/php/func_mysql_real_escape_string.asp
mysqli_real_escape_string()定義和用法:
mysql_real_escape_string() 函式轉義 SQL 語句中使用的字串中的特殊字元。
下列字元受影響:
- \x00
- \n
- \r
- \
- '
- "
- \x1a
如果成功,則該函式返回被轉義的字串。如果失敗,則返回 false。
由此可見輸入的某些特殊符號被轉義了。
現在用burpsuite進行暴力破解
抓包可見單引號被轉義成了%27
來intruder一下:
(這裡為了節約時間,字典比較少)
password的length跟其他不一樣,它很有可能就是密碼了。點進去看一下:
登陸成功。
High
首先看一下原始碼:
相較於Medium增加了token驗證
假如已經知道了使用者名稱,密碼隨便輸入一個,開啟burp suite:
Ctri+I進入intruder:
模式選Pitchfork,把需要爆破的位置加上記號§
位置1的設定:
位置2的設定:
接著這樣設定選項:
將如下圖複製的token值粘過來:
如果出現如下情況,重新抓包,獲取一下最新token
破解成功: