BruteForce
一、low级别
在登录时使用bp进行抓包
将抓到的包发送到Intruder模块。设置需要爆破的参数,和爆破的类型。
这里爆破的类型一共有四种:
- sniper(狙击手):一个字典,可以设置多个爆破点,但是只能按顺序进行爆破。
- Battering ram(攻城锤):一个字典,可以设置多个爆破点,多个爆破点可以同时进行爆破。
- Pitchfork(杈):每一个爆破点对应一个字典,取每个字典的对应项。
- Cluster bomb(集束炸弹):每一个爆破点对应一个字典,交叉匹配所有可能。
一般建议使用第四种类型,可以遍历所有可能。
然后在payload选项中添加字典模板,需要添加两个,也可以使用本地的字典文件。
长度和其他的不同的,大概率就是用户名和密码了。
代码分析
相关函数:
- mysqli_num_rows()函数:返回结果集中行的数目。
- mysqli_fetch_assos()函数:返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
他对用户输入的用户名和密码没有做任何的过滤就会去查询数据库,因此我们在只知道用户名的情况下可以使用万能密码 admin' or '1'='1
来闭合或者说是绕过查询语句它:$query = "SELECT * FROM users WHERE user = '$user' AND password = '$pass';";
,直接进行登录。结果如下图所示。
二、 medium级别
依旧按照和low级别相同的步骤进行暴力破解。
我们依旧可以破解成功,但是我们会发现破解的过程中很慢,我们来看看源代码。
代码分析
相关函数:
- trigger_error()函数:创建用户自定义的错误。
- E_USER_ERROR:用户自定义错误类型。
- mysql_fetch_assoc() 函数:从结果集中取得一行作为关联数组
尝试用admin’ or ‘1’='1登录