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(暴力破解)全等级的更多相关文章

  1. 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御

    写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...

  2. 【DVWA】Brute Force(暴力破解)通关教程

    日期:2019-08-01 14:49:47 更新: 作者:Bay0net 介绍:一直以为爆破很简单,直到学习了 Burp 的宏录制和匹配关键词,才发现 burp 能这么玩... 0x01. 漏洞介绍 ...

  3. DVWA之Brute Force(暴力破解)

    目录 Low Medium High Impossible 暴力破解是指使用穷举法,举出所有的可能的结果,然后逐一验证是否正确! Low 源代码: <?php if( isset( $_GET[ ...

  4. Brute Force(暴力(破解))

    一.攻击模块1:Brute Force(暴力破解) 暴力破解一般指穷举法,穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况 ...

  5. Brute Force暴力破解

    Low 服务器只是验证了参数Login是否被设置,没有任何的防爆破机制,且对参数username.password没有做任何过滤,存在明显的sql注入漏洞. 方法一:bp爆破 直接对爆破密码得到pas ...

  6. DVWA靶场练习-暴力破解

    一.暴力破解 (Brute Force)    暴力破解是Web安全领域的一个基础技能,破解方法论为:构建常见用户名及弱口令 因此需要好的字典,对应破解场景构建特定的用户名密码,以及还需要具有灵活编写 ...

  7. DVWA Brute Force:暴力破解篇

    DVWA Brute Force:暴力破解篇 前言 暴力破解是破解用户名密码的常用手段,主要是利用信息搜集得到有用信息来构造有针对性的弱口令字典,对网站进行爆破,以获取到用户的账号信息,有可能利用其权 ...

  8. 4. DVWA亲测暴力破解

    LOW等级 我们先用burpsuite抓包,因为burpsuite提供了暴力破解模块   我们先创建一个1.txt文件夹,把正确的账号密码写进去   我们输入 Username:1 Password: ...

  9. DVWA Brute Force 解析

    LOW 源代码如下: <?php if( isset( $_GET['Login'] ) ) { $user = $_GET['username']; $pass = $_GET['passwo ...

  10. DVWA-Brute Force(暴力破解)

    暴力破解漏洞,没有对登录框做登录限制,攻击者可以不断的尝试暴力枚举用户名和密码 LOW 审计源码 <?php // 通过GET请求获取Login传参, // isset判断一个变量是否已设置,判 ...

随机推荐

  1. Solution -「洛谷 P5048」「YunoOI 2019 模拟赛」Yuno loves sqrt technology III

    Description Link. 区间众数出现次数强制在线. Solution 三个 YLST 中比较清新的一个分块. 比较重点的地方在于询问散块的处理. 先离散化一下序列. 我们首先预处理出来一个 ...

  2. Oracle查询--增加--删除--修改主键

    对Oracle表主键的操作,有四类:查询,增加,修改,删除 1.查询主键 /*查询某个表中存在的约束*/ select * from user_constraints where table_name ...

  3. 洛谷题解 | AT_abc321_c Primes on Interval

    目录 题目翻译 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 样例 #3 样例输入 #3 样例输出 #3 题目简化 题目思路 A ...

  4. Python基础——字符编码、文件处理

    文章目录 字符编码 一 引入 二 知识储备 2.1 三大核心硬件 2.2 文本编辑器读取文件内容的流程 2.3 python解释器执行文件的流程 2.4 总结 三.字符编码介绍 3.1 什么是字符编码 ...

  5. MSFvenom恶意程序生成与利用

    MSFvenom 1.1 MSFvenom介绍 MSFvenom是Msfpayload和Msfencode的组合,可以生成各种攻击载荷,并且可以对载荷进行编码.做渗透测试时往往需要将有效负载部署在目标 ...

  6. 畅捷通T+任意文件上传(CNVD-2022-60632 )漏洞复现

    一.漏洞描述 022年8月29日和8月30日,畅捷通公司紧急发布安全补丁修复了畅捷通T+软件任意文件上传漏洞.未经身份认证的攻击者利用该漏洞,通过绕过系统鉴权,在特定配置环境下实现任意文件的上传,从而 ...

  7. 揭秘计算机奇迹:探索I/O设备的神秘世界!

    引言 在之前的章节中,我们详细讲解了计算机系统中一些核心组成部分,如中央处理器(CPU).内存.硬盘等.这些组件负责处理和存储数据,使得计算机能够有效地运行.然而,除了这些核心组件,计算机系统还包含许 ...

  8. Vue源码学习(十三):实现watch(一):方法,对象

    好家伙,  代码出了点bug,暂时只能实现这两种形式 完整代码已开源https://github.com/Fattiger4399/analytic-vue.git Vue:watch的多种使用方法 ...

  9. k8s-1.23.6 安装部署文档(超详细)

    一.文档简介 作者:lanjiaxuan 邮箱:lanheader@163.com 博客地址:https://www.cnblogs.com/lanheader/ 更新时间:2022-09-09 二. ...

  10. Dapper.Lite 扩展

    最近重构并精简了Dapper.Lite,然后把不依赖Dapper的版本LiteSql也重构了一下,和Dapper.Lite保持一致.感觉这两款ORM基本完工,自荐一下. .NET的ORM虽多,堪用的不 ...