Brute Force(暴力(破解))
一、攻击模块1:Brute Force(暴力破解)
暴力破解一般指穷举法,穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕。若某个情况验证符合题目的全部条件,则为本问题的一个解;若全部情况验证后都不符合题目的全部条件,则本题无解。穷举法也称为枚举法。
二、源码分析(文件地址:./DVWA/vulnerabilities/brute/source/low.php)
- <?php
- if( isset( $_GET[ 'Login' ] ) ) {
- // Get username
- $user = $_GET[ 'username' ];
- // Get password
- $pass = $_GET[ 'password' ];
- $pass = md5( $pass );
- // Check the database
- $query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
- $result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
- if( $result && mysqli_num_rows( $result ) == 1 ) {
- // Get users details
- $row = mysqli_fetch_assoc( $result );
- $avatar = $row["avatar"];
- // Login successful
- echo "<p>Welcome to the password protected area {$user}</p>";
- echo "<img src=\"{$avatar}\" />";
- }
- else {
- // Login failed
- echo "<pre><br />Username and/or password incorrect.</pre>";
- }
- ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
- }
- ?>
通过观察这个模块的源代码,可以看到,这是一个典型的万能密码。
三、实战爆破
1.我们首先配置好burpsuite的本地代理。
在Login中输入用户名与密码
然后用burpsuite进行拦截
2.将表单进行提交到intruder模块,并将password设置为我们破解的payload
然后在Position选项中设置需要破解的变量。Burpsuite会自动设置许多变量,单击“Clear”按钮,把默认变量全部清除,然后选中密码123,单击“Add”按钮将之设为需要破解的变量。
3.设置字典文件。
3.1.使用自带的字典
3.2.加载外部字典
点击Load,选择字典文件路径
4.开始枚举,得到密码。
Burp suite攻击类型:
第一种:
Sniper标签 这个是我们最常用的,Sniper是狙击手的意思。这个模式会使用单一的payload【就是导入字典的payload】组。它会针对每个position中$$位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行测试。攻击中的请求总数应该是position数量和payload数量的乘积。
第二种:
Battering ram – 这一模式是使用单一的payload组。它会重复payload并且一次把所有相同的payload放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。请求的总数是payload组中payload的总数。简单说就是一个playload字典同时应用到多个position中
第三种:
Pitchfork – 这一模式是使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。比如:position中A处有a字典,B处有b字典,则a【1】将会对应b【1】进行attack处理,这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量
第四种:
Cluster bomb – 这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。比如:position中A处有a字典,B处有b字典,则两个字典将会循环搭配组合进行attack处理这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。攻击请求的总数是各payload组中payload数量的乘积。
1.第一种Sniper
破解时间的长短就取决于密码字典的大小和CPU的计算能力,破解完成后,可以通过length的不同找到正确的密码。
4.第四种
输入任意用户名和密码看返回的错误提示,记着错误的提示
记下 Username and/or password incorrect.后面配置burpsuite时要用,burpsuite代理设置好,再次任意输入用户名和密码,burpsuite拦截后把数据发到intruder功能下。然后在positions下选择攻击类型 Cluster bomb
在payload sets中,分别设置Payload set 1 和 Payload set 2 对应用户名与密码字典
然后options下,Grep-Match中添加 Username and/or password incorrect
点击intruder下拉栏的start attack即可
Brute Force(暴力(破解))的更多相关文章
- 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御
写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...
- 【DVWA】Brute Force(暴力破解)通关教程
日期:2019-08-01 14:49:47 更新: 作者:Bay0net 介绍:一直以为爆破很简单,直到学习了 Burp 的宏录制和匹配关键词,才发现 burp 能这么玩... 0x01. 漏洞介绍 ...
- DVWA之Brute Force(暴力破解)
目录 Low Medium High Impossible 暴力破解是指使用穷举法,举出所有的可能的结果,然后逐一验证是否正确! Low 源代码: <?php if( isset( $_GET[ ...
- Brute Force暴力破解
Low 服务器只是验证了参数Login是否被设置,没有任何的防爆破机制,且对参数username.password没有做任何过滤,存在明显的sql注入漏洞. 方法一:bp爆破 直接对爆破密码得到pas ...
- DVWA之Brute Force教程
---恢复内容开始--- Brute Force暴力破解模块,是指黑客密码字典,使用穷举的方法猜出用户的口令,是一种广泛的攻击手法. LOW low级别的漏洞利用过程 1.使用burp suite工具 ...
- DVWA靶场练习-暴力破解
一.暴力破解 (Brute Force) 暴力破解是Web安全领域的一个基础技能,破解方法论为:构建常见用户名及弱口令 因此需要好的字典,对应破解场景构建特定的用户名密码,以及还需要具有灵活编写 ...
- DVWA全级别之Brute Force(暴力破解)
Brute Force Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令. 首先我们登录DVWA(admin,password),之后我们看网络是否为无代理,: ...
- DVWA实验之Brute Force(暴力破解)- High
DVWA实验之Brute Force(暴力破解)- High 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2046/p/10928380.ht ...
- DVWA实验之Brute Force(暴力破解)- Medium
DVWA实验之Brute Force(暴力破解)- Medium 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2046/p/10928380. ...
随机推荐
- [CSP-S模拟测试]:attack(支配树+LCA+bitset)
题目传送门(内部题55) 输入格式 第一行,包含两个整数:$n,m,q$,表示敌军城市数.路数和情报数.接下来$m$行,每行包含两个整数:$u,v$,表示从$u$到$v$包含一条单向道路.接下来$q$ ...
- js中打地鼠游戏
<!DOCTYPE html><html lang=""><head> <mata charset = "utf-8" ...
- pytho装饰器参数那些事_inspect.getcallargs
''' Created on Jul 26, 2019 @author: tomcat ''' import inspect def chack_admin(func): def wrapper(*a ...
- java并发编程笔记(十)——HashMap与ConcurrentHashMap
java并发编程笔记(十)--HashMap与ConcurrentHashMap HashMap参数 有两个参数影响他的性能 初始容量(默认为16) 加载因子(默认是0.75) HashMap寻址方式 ...
- 小程序BUTTON点击,去掉背景色
添加hover-class <button form-type="submit" hover-class="btn-hover"></but ...
- java中四种访问修饰符区别及详解全过程
客户端程序员:即在其应用中使用数据类型的类消费者,他的目标是收集各种用来实现快速应用开发的类. 类创建者:即创建新数据类型的程序员,目标是构建类. 访问控制存在的原因:a.让客户端程序员无法触及他们不 ...
- latex 查找缺失的库文件
app-portage/pfl contains a program to search in an online database for a Gentoo package containing a ...
- 【JavaScript性能优化】------理解Script标签的加载和执行
1.script标签是如何加载的?当浏览器遇到一个 < script>标签时,浏览器会停下来,运行JavaScript代码,然后再继续解析.翻译页面.同样的事情发生在使用 src 属性加载 ...
- spring注解开发:bean的作用域与懒加载
1.bean的作用域 1.新建一个maven工程,添加如下依赖 <dependency> <groupId>org.springframework</groupId> ...
- CentOS 7虚拟机下设置固定IP详解
说明 1.笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网: 2.只要笔记本主机可以正常访问外网,启动虚拟机中的CentOS 7系统就可以正常访问外网,无需再进 ...