靶场环境
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
破解成功: