DVWA学习之Burte Force(暴力破解)

Burte Force(暴力破解)

暴力破解所采用的方法一般都是枚举法穷举法,所谓枚举法,简而言之就是把所有的可能性均进行一一列举,并把所有的可能的情况进行验证。若某个情况验证符合题目的所有要求,则该题目存在唯一解,也就是爆破成功;如果所有的可能情况均进行了对比验证后,没有得到符合条件的解,则本题无解。
暴力破解也就是,我们所说的爆破,爆破成功的关键是拥有一个强大的词典文件,生成的词典文件最好能与搜集到的信息相关,比如搜集的生日、手机号、常用的登录名、密码等;此外,爆破的关键是能够拥有高效率的执行算法,提高执行效率。

Burp Suite 之 Intruder模块

0x01 模块功能简介

在这里插入图片描述
1.$[ 变量] $:两个 $符号之间的值为需要爆破的变量,也就是我们需要爆破的字段:
Add $:选择需要爆破的字段,点击该按钮,添加爆破字段;
Clear $:清空所有的变量
Auto $:自动添加变量
Refresh:刷新
2.攻击类型:Attack Type:
Sniper模式:狙击手模式,正如其名称一样,该种攻击模式每次发射一颗子弹,每次攻击仅验证一个预测值,加入添加了一个爆破点,加载了的payload有100个时,那么执行100次;
假设爆破点有两个的话,比如分别为a、b,词典为1、2、3、4、5,共执行5+5=10次,则执行顺序如下
这种攻击类型适合对常见漏洞中的请求参数单独地进行测试。在这里插入图片描述
Batterint ram模式(攻城锤):和狙击手模式差不多,当有一个爆破点时,爆破方式相同;当有两个爆破点时, Batterint ram模式,同时验证两个爆破点,比如分别为a、b,词典为1、2、3、4、5,共执行5次,则执行顺序如下:
这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。在这里插入图片描述
Pitchfork(草叉模式):该模式需要两个爆破点,两个payload,攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。
假设两个爆破点分别为a、b,a对应词典a、b对应词典b,则执行次数为两个词典中payload小的,本例中执行次数为:4,执行顺序如下:
这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。
在这里插入图片描述
Cluster bomb (集束炸弹):同pitchfork类似,至少连个爆破点,但执行次数会计算两个的payload 的笛卡儿积。
假设两个爆破点分别为a、b,a对应词典a、b对应词典b,则执行次数为连个词典的乘积,执行顺序如下:
这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。
在这里插入图片描述
0x02 dvwa 实验
一.low:(没有对密码进行任何处理,存在SQL注入)
方法一:既然存在SQL注入,那就直接注入好了,直接绕过输入密码,注释掉username后面的部分,直接在admin后添加’#

 其中'是为了闭合,查询语句中前面的单引号;#后是注释后面的部分
 原本的查询语句应该为:SELECT * FROM `users` WHERE user = 'adminr' AND password = '[输入的密码]';
 添加'#后:SELECT * FROM `users` WHERE user = 'adminr' #AND password = '[输入的密码]';
 实际查询:SELECT * FROM `users` WHERE user = 'adminr' 

在这里插入图片描述
方法二:burpsuite抓包:
1.首先给浏览器和bp均设置好代理,抓包:

在这里插入图片描述
2.右键Send to Intruder:设置爆破点:1.清空所有;2.选中要爆破的位置;3.添加;4.选择攻击模式,由于爆破一个位置,选择狙击手模式
在这里插入图片描述
3.加载词典,爆破
方式一:payload type选择:simple list简单列表模式手动添加值,或者直接load加载文本文件中的值到列表中,然后点击右上角strat attack开始
在这里插入图片描述
在这里插入图片描述
方式二:payload type选择runtime time,直接运行词典文件,效果相同。

二.medium:在该级别中,添加了对特殊字符的过滤,因此不行使用low级别中的直接注释,此外添加了sleep()函数,延缓了响应时间,除此之外,其他都相同,直接使用bp抓包,爆破即可获取flag。

三.high:在代码中添加了token,可以抵御CSRF攻击,同时也增加了爆破的难度,通过抓包,可以看到,登录验证时提交了四个参数:username、password、Login以及user_token。
每次服务器返回的登陆页面中都会包含一个随机的user_token的值,用户每次登录时都要将user_token一起提交。服务器收到请求后,会优先做token的检查,只有当token检查通过后,才会进行sql查询。在这里插入图片描述
1.右键发送至入侵模块,添加两个变量值,选择攻击类型为:pitchfork
在这里插入图片描述
2.设置payload:
2.1设置payload1:(或者直接选择runtime file直接加载词典文件)
在这里插入图片描述
2.2 设置payload2
2.2.1 选择Recurisive grep模式
在这里插入图片描述
2.2.2线程数设为1
在这里插入图片描述
2.2.3 设置grep-extract
在这里插入图片描述
2.2.4 重定向选择一直
在这里插入图片描述
2.2.5设置token初始值:为2.2.3中的vlaue值
在这里插入图片描述
2.2.6开始攻击
在这里插入图片描述

0x03 impossible防爆破

当输入错误3次,锁定15分钟的可靠方式防止了爆破,同时采用PDO(PHP Data Object,PHP数据对象)机制更为安全,不会在本地对SQL进行拼接。
当调用prepare()时,将SQL模板传给MySQL Server,传过去的是占位符“?”,不包含用户数据,当调用execute()时,用户的变量值才传递到MySQL Server,分开传递,阻止了SQL语句被破坏而执行恶意代码。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值