Ethical HackersWeb安全信息安全

暴力破解原理与过程详解

2017-08-23  本文已影响177人  Jewel591

一、爆破原理

顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!

但实际发送的数据并不像想象中的那样简单——“ 每次只向服务器发送用户名和密码字段即可!”,实际情况是每次发送的数据都必须要封装成完整的 HTTP 数据包才能被服务器接收。但是你不可能一个一个去手动构造数据包,所以在实施暴力破解之前,我们只需要先去获取构造HTTP包所需要的参数,然后扔给暴力破解软件构造工具数据包,然后实施攻击就可以了。
Web暴力破解通常用在,已知部分信息,尝试爆破网站后台,为下一步的渗透测试做准备。

Http 中的 responserequest 是相对浏览器来说的。浏览器发送request,服务器返回response。
GetPost:get放在url中,而post放在http的body中。
http_referer:是http中header的一部分,向浏览器发送请求时,一般会带上referer,告诉服务器我是从哪个页面链接而来,为服务器处理提供一些信息。

二、爆破实例

2.1 必要的信息收集

这里我们使用dvwa渗透测试平台中的暴力破解模块来进行演示。

先使用任意账号密码尝试登录,并同时使用firefox F12进行抓包分析。


这一步的作用是,收集构造HTTP数据包所需要的参数,比如cookie、get/post、referer、提交得字段名等。

可以看到cookie里面除了 username 和 password 字段之外还有一个 token,这个通常是用来防止CSRF攻击的。
收集到以上信息之后,我们就可以构造用于攻击的数据包。

2.2 实施攻击

需要用到的参数收集完毕之后,接下来就需要使用到爆破软件,这里我们先讲一个专用与爆破的软件——Bruter,之后会再介绍一款综合的Web类安全软件 :
如下图所示,这款软件支持包括FTP、SSH在内的十多种不同应用场景的暴力破解。我们这里是Web登录的爆破,所以选择Web Form:

Paste_Image.png

点击协议右侧的选项,将我们之前获得的信息输入进去。
其实我们也可以直接在网址一栏中输入我们要攻击的URL,点击载入,它会自动将构造攻击数据包所需要的信息识别出来并填好,如果我们发现有问题或者有遗漏,也可以手动修改。

有些朋友可能要说,既然可以自动获取相关参数,那为什么我们还要花时间精力去手动收集信息呢?其实之前的手动收集主要是帮助我们理解暴力破解的原理,正所谓知其然不够,还要知其所以然。并且软件自动获取的参数也可能会出错,我们可以再验证一次。

接下来设置用户名和密码。用户名可以使用字典,如果你知道用户名是什么,你也可以直接输入字符串,比如:admin。
密码则有多种选择,如果选择字典选项,则需要加载我们自己事先准备好的字典(比如自己收集的弱口令字典),右侧还可以设置大小写、字符长度等:

Paste_Image.png

ps:注意bruter字典路径似乎不支持中文路径,笔者这里使用中文路径会报错。

如果选择暴力破解选项,就是软件使用自动生成字符串进行攻击,我们可以自定义使用到的字符种类、长度等:

Paste_Image.png

至于右侧的选项,大家可以根据自己的需要进行选择,设置完毕之后点击开始,就可以开始暴力破解:

![Uploading github.pages_3_brutard7_653421.png . . .]

Paste_Image.png

接下来我们介绍另一款软件WebCruiser Web Vulnerability Scanner ,这是一款相对综合的软件,包括常见的Sql注入、XSS检测等功能,其中的暴力破解模块也非常强大!
这款软件自带web界面,我们可以直接在url一栏中输入攻击网址,并做一次任意用户名密码的登录提交,之手点击Resend按钮,可以看到已经自动对之前操作进行抓包:


之后在点击右侧的Bruter按钮,会直接跳转到Bruter界面,同样需要的参数都已经自动填好,设置好字典就可以开始破解了:


暴力破解就暂时讲到这里,之后有时间会对这篇文章进行修改和优化,如果有什么问题欢迎留言!

上一篇下一篇

猜你喜欢

热点阅读