暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录,即针对单个账号或用户,用密码字典来不断的尝试,直到试出正确的密码。
目录
low
使用的是Burp Suite进行抓包
这里推荐一个代理工具,方便在抓包等过程中设置代理。FoxyProxy Standard
\
如果知道usename的话就添加一个就行了,Attack type:设置Sniper
然后点击:Payloads
set:1是设置usename的字典
找到自己的字典打开就行了
然后set:2一样进行相同的操作,设置完后,点击Start attack开始攻击
你会发现有一个不同的说明爆破成功:
然后返回Proxy里面去把username和password改成爆破成功的账户和密码
然后点击Forward
Medium
与和low差不多,
$user = $_GET[ 'username' ];
$user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
// Sanitise password input
$pass = $_GET[ 'password' ];
$pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass = md5( $pass );
在原来的基础是添加了mysqli_real_escape_string函数
mysqli_real_escape_string()函数根据当前连接的字符集,对于 SQL 语句中的特殊字符进行转义。
定义和用法
所以这里对暴力破解没有起到防范作用和low的操作一样咯
High
正常抓包发现,多了一个user_token
搜了一下Token通常指的是一种用于身份验证和授权的令牌
Token 是在服务端产生的,如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端
发现每次抓包这个Token都是随机的,
第一个从原来正常操作,第二个就不一样了
type:Recursive grop
然后点击Options:
点击add>>Fetch response
搜索:value
然后单线程改成1
虽然添加了token验证机制,但是这个并不能防止暴力破解,因为这个token可以在前端获取,然后进行传参进行爆破。
防范:
其实可以搜索添加一些验证码机制和登录次数限制