Web安全原理剖析(二十六)——暴力破解漏洞


九、暴力破解

9.1 介绍暴力破解漏洞

  暴力破解的产生是由于服务端没有做限制,导致攻击者可以通过暴力破解的手段破解所需信息,如用户名、密码、验证码等。暴力破解需要一个庞大的字典,如4位数字的验证码,那么暴力破解的范围就是0000~9999,暴力破解的关键在于字典的大小。


9.2 暴力破漏洞攻击

  暴力破解攻击的测试地址为http://127.0.0.1/bp.html。

  一般情况下,系统中都存在管理账号:admin,下面我们就尝试破解admin的密码,首先在用户名处输入账号admin,接着随便输入一个密码,使用Burp Suite抓包,在Intruder中玄宗密码处爆破,导入密码字典并开始爆破,如图103所示。

图103 Burp的Intruder模块

  可以看到,有一个数据包的Length值跟其他的都不一样,这个数据包中Payload就是爆破成功的密码,如图104所示。

图104 暴力破解的结果

9.3 暴力破解漏洞代码分析

  服务端处理用登录的代码如下所示,程序获取POST参数username和参数password,然后在数据库中查询输入的用户名可密码是否存在,如果存在,则登录成功。但是这里没有对登录的次数做限制,所以只要用户一直尝试登陆,就可以进行暴力破解。

<?php
$con=mysqli_connect("localhost","root","root","test");
// 检测连接
if (mysqli_connect_errno())
{
    echo "连接失败: " . mysqli_connect_error();
}

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "select * from users where username='$username' and password='$password'";

$result = mysqli_query($con,$sql);

$row = mysqli_fetch_array($result);

if ($row)
{
    exit("login success");
}
else
{
    exit("login failed");
}
?>

9.4 暴力破解漏洞修复建议

  针对暴力破解漏洞的修复,笔者给出以下两点建议。

  • 如果用户登录次数超过设置的阈值,则锁定账号。

  • 如果某个IP登录次数超过设置的阈值,则锁定IP。

  锁定IP存在一个问题是:如果多个用户使用同一个IP,则会造成其他用户也不能登录。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phanton03167

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值