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. 「joisc2016 - D3T2」回転寿司

    题意大概是这样,「每次操作选出区间中的一个 LIS(strictly),满足其开端是极靠近左端点且大于 \(A\) 的位置,答案即这个 LIS 的末尾,做一个轮换后弹出序列末端」. 首先做几个观察. ...

  2. 常用设计模式(Java)

    目录 设计模式引入 1. 什么是设计模式 2. 学习设计模式的意义 3. 设计模式的基本要素 4. OOP七大原则 1.单例模式 1. 饿汉式单例 2. 懒汉式单例 3. 内部类实现单例 4. 反射会 ...

  3. Dubbo3应用开发—Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用)

    Dubbo序列化方案(Kryo.FST.FASTJSON2.ProtoBuf序列化方案的介绍和使用) 序列化简介 序列化是Dubbo在RPC中非常重要的一个组成部分,其核心作用就是把网络传输中的数据, ...

  4. Lab3 存储过程与触发器

    实验三 存储过程与触发器  实验目的: 学习SQL语言进行编程的基本方法与技术,能够编写存储过程.触发器解决数据库需要处理的复杂问题.  实验内容: 1. 设计一个存储过程或者自定义函数,练习存储 ...

  5. LLM在text2sql上的应用

    一.前言: 目前,大模型的一个热门应用方向text2sql它可以帮助用户快速生成想要查询的SQL语句.那对于用户来说,大部分简单的sql都是正确的,但对于一些复杂逻辑来说,需要用户在产出SQL的基础上 ...

  6. 数据库系列:MySQL引擎MyISAM和InnoDB的比较

    1.数据库核心知识点 数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高 ...

  7. Html5学习内容-4

    (一)display与visibility 这里主要控制元素是否显示 例子 visibility:文字消失空间保留 <!DOCTYPE html> <html lang=" ...

  8. Python中的爬虫应用及常用Python库

    Python的爬虫应用非常广泛,以下是一些典型的示例: 数据采集:使用爬虫可以从网页上抓取数据,并将其保存到本地或数据库中.这对于构建大规模数据集.进行市场调研.舆情监测等任务非常有用. 搜索引擎索引 ...

  9. Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

    今天在做练习题的时候,发现几个问题捣鼓了好久,写下这篇来记录 问题一: 有层级的复选框无法定位到二级目录 对于这种拥有二级框的选项无法定位,也不是<select>属性. 我们查看下HTML ...

  10. 2023-12-02:用go语言,如何求模立方根? x^3=a mod p, p是大于等于3的大质数, a是1到p-1范围的整数常数, x也是1到p-1范围的整数,求x。 p过大,x不能从1到p-1遍

    2023-12-02:用go语言,如何求模立方根? x^3=a mod p, p是大于等于3的大质数, a是1到p-1范围的整数常数, x也是1到p-1范围的整数,求x. p过大,x不能从1到p-1遍 ...