DVWA之Brute Force(暴力破解)

前言

  • 暴力破解是指使用枚举法,举出所有的可能的结果,然后逐一验证是否正确!是现在较为广泛使用的攻击手法之一
Low
  • 提交username和password(随意填写),同时抓包,然后Send to Intruder,进行爆破操作:
    在这里插入图片描述
    在这里插入图片描述
  • 从数据包中可看到,采用的是GET方式提交的。爆破成功的标志:username和password的同时正确。所以,要定性一个变量猜解另一个变量。
  • 选择爆破类型为Cluster bomb,分别选中爆破变量点击右边的Add
    在这里插入图片描述
  • 在Payloads处加载字典:
    在这里插入图片描述
  • 最后,尝试在爆破结果中找到正确的密码,可以看到password的响应包长度(Length)“与众不同”,可推测password为正确密码,手工验证登陆成功。
    在这里插入图片描述
Medium
  • 查看后端代码,其加入了两个函数:mysql_real_escape_string( )在(第5、8行)和sleep( )在(第25行)。
<?php
if( isset( $_GET[ 'Login' ] ) ) {
	// Sanitise username input
	$user = $_GET[ 'username' ];
	$user = mysql_real_escape_string( $user );
	// Sanitise password input
	$pass = $_GET[ 'password' ];
	$pass = mysql_real_escape_string( $pass );
	$pass = md5( $pass );
	// Check the database
	$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
	$result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );
	if( $result && mysql_num_rows( $result ) == 1 ) {
		// Get users details
		$avatar = mysql_result( $result, 0, "avatar" );
		// Login successful
		$html .= "<p>Welcome to the password protected area {$user}</p>";
		$html .= "<img src=\"{$avatar}\" />";
	}
	else {
		// Login failed
		sleep( 2 );
		$html .= "<pre><br />Username and/or password incorrect.</pre>";
	}
	mysql_close();
}
?>
  • mysql_real_escape_string( )函数会对字符串中的特殊符号:x00、n、r、’、”、x1a进行转义,可以一定程度上规避SQL注入。而sleep(2),每提交一次username和password就会睡眠2秒。爆破时会降低速度。
  • 爆破的方式方法和Low一样,只不过速度慢了很多。
High
  • 通过抓取的数据包发现登录验证时提交了四个参数:username、password、Login以及user_token。其中,token的验证不仅可以抵御CSRF攻击,而且也增加了爆破的难度。
  • 但,办法还是有的。将抓取的数据包Send to Intruder,爆破类型Pitch fork
    在这里插入图片描述
  • 配置Option,线程选为:1 。
    在这里插入图片描述
  • 往下拉滚动条,找到Grep-Extract模块,看图操作:
    在这里插入图片描述
  • 继续下拉滚动条,找到Redirections模块,设置允许重定向,选择Always:
    在这里插入图片描述
    设置密码本,点击Payloads,选择第一项的密码本与低等级的相同,第二项的时候选择Recursive grep 并且把之前得到的token值粘贴到下方的方框中。
    在这里插入图片描述
  • 点击Start attack,发现上一个响应包中的token就加载到下一个请求包作为其中token的payload进行爆破。
    在这里插入图片描述
  • 通过筛选Length,第19个数据包爆破成功:
    在这里插入图片描述

Impossible

  • 在 High 的基础上对用户的登录次数有所限制,当用户登录失败达到3次,将会锁住账号15秒,同时采用了更为安全的PDO(PHP Data Object)机制防御SQL注入,这里因为不能使用PDO扩展本身执行任何数据库操作,而sql注入的关键就是通过破坏SQL语句结构执行恶意的sql命令。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值