最新暴力破解漏洞技术详解

news2024/10/1 21:32:22

暴力破解漏洞简介

暴力破解漏洞的产生是由于服务器端没有做限制,导致攻击者可以通过暴力的手段破解所需信息,如用户名、密码、短信验证码等。暴力破解的关键在于字典的大小及字典是否具有针对性,如登录时,需要输入4位数字的短信验证码,那么暴力破解的范围就是0000~9999。

暴力破解漏洞攻击

一般情况下,系统中都存在管理账号——admin。下面尝试破解admin的密码:首先,在用户名处输入账号admin,接着随便输入一个密码,使用Burp Suite抓包,在Intruder中选中密码,导入密码字典并开始爆破,如图4-1所示。
在这里插入图片描述
可以看到,有一个数据包的Length值跟其他的都不一样,这个数据包中的Payload就是爆破成功的密码,如图4-2所示。

在这里插入图片描述

暴力破解漏洞代码分析

服务器端处理用户登录的代码如下所示。程序获取POST参数“username”和参数“password”,然后在数据库中查询输入的用户名和密码是否存在,如果存在,则登录成功。但是这里没有对登录失败的次数做限制,所以只要用户一直尝试登录,就可以进行暴力破解。


<?php
$con=mysqli_connect("localhost","root","123456","test");
// 检测连接
if (mysqli_connect_errno())
{
echo "连接失败: " . mysqli_connect_error();
}
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query($con,"select * from users where `username`='".addslashes($username)."' and `password`='".md5($password)."'");
$row = mysqli_fetch_array($result);
if ($row) {
exit("login success");
}else{
exit("login failed");
}
?>

由于上述代码没对登录失败次数做限制,所以可以进行暴力破解。在现实场景中,会限制登录失败次数。例如,如果登录失败6次,账号就会被锁定,那么这时攻击者可以采用的攻击方式是使用同一个密码对多个账户进行破解,如将密码设置为123456,然后对多个账户进行破解。

验证码识别

在图像识别领域,很多厂家都提供了API接口用于批量识别(多数需要付费),常用的技术有OCR和机器学习。

1.OCR

OCR(Optical Character Recognition,光学字符识别),是指使用设备扫描图片上的字符,然后将字符转换为文本,例如识别身份证上的信息等。Python中有多个OCR识别的模块,例如pytesseract。但是OCR只能用于简单的验证码识别,对干扰多、扭曲度高的验证码识别效果不佳。

图4-3所示为使用最简单的语句识别验证码。

在这里插入图片描述

2.机器学习

使用机器学习进行图像识别是比较有效的方式,但是工作量大,需要标注大量样本进行训练,常用的深度学习工具有TensorFlow等。下面简单介绍使用TensorFlow进行验证码识别的过程。

第一步,如图4-4所示,使用Python随机生成10 000个图片训练集和1 000个图片测试集。

在这里插入图片描述
第二步,使用TensorFlow训练数据,当准确率在90%以上时,保存训练模型。

第三步,重新生成100个图片,使用TensorFlow进行预测。如图4-5所示,可以看到有96个预测结果是正确的。

在这里插入图片描述

GitHub上有多个验证码识别的开源项目,例如ddddocr,该项目可以破解常见的验证码,读者可以自行尝试。

暴力破解漏洞修复建议

针对暴力破解漏洞的修复,笔者给出以下建议。

— 使用复杂的验证码,如滑动验证码等。

— 如果用户登录失败次数超过设置的阈值,则锁定账号。

— 如果某个IP地址登录失败次数超过设置的阈值,则锁定IP地址。这里存在的一个问题是,如果多个用户使用的是同一个IP地址,则会造成其他用户也不能登录。

— 使用多因素认证,例如“密码+短信验证码”,防止账号被暴力破解。

— 更复杂的技术是使用设备指纹:检测来自同一个设备的登录请求次数是否过多。

例如,WordPress的插件Limit Login Attempts就是通过设置允许的登录失败次数和锁定时间来防止暴力破解的,如图4-6所示。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/983544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无涯教程-JavaScript - DEC2BIN函数

描述 DEC2BIN函数将十进制数转换为二进制数。 语法 DEC2BIN (number, [places])争论 Argument描述Required/Optionalnumber 要转换的十进制整数。 如果number为负数,则将忽略有效的位置值,并且DEC2BIN返回10个字符(10位)的二进制数字,其中最高有效位是符号位。其余的9位是幅…

使用多线程或异步技术提高图片抓取效率

导语 图片抓取是爬虫技术中常见的需求&#xff0c;但是图片抓取的效率受到很多因素的影响&#xff0c;比如网速、网站反爬机制、图片数量和大小等。本文将介绍如何使用多线程或异步技术来提高图片抓取的效率&#xff0c;以及如何使用爬虫代理IP来避免被网站封禁。 概述 多线…

【无监督学习之聚类】

聚类 0.简介距离 和 相似度1. K均值聚类(kmeans)模型算法特点 2. 谱聚类(Spectral clustering)算法思想特点谱聚类的具体步骤&#xff1a;算法步骤&#xff1a; 3.小结参考资料 0.简介 聚类&#xff1a;针对给定的样本&#xff0c;依据他们的属性的相似度或距离&#xff0c;将…

spring---第一篇

系列文章目录 文章目录 系列文章目录一、如何实现一个IOC容器二、spring是什么?一、如何实现一个IOC容器 1、配置文件配置包扫描路径 2、递归包扫描获取.class文件 3、反射、确定需要交给IOC管理的类 4、对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些…

【漏洞复现】H3C路由器信息泄露任意用户登录

漏洞描述 通过访问特地址得到密码可进行登录。 免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&#xff0c;遵守公共秩序&#xff0c;尊重社会公德&#xff0c;不得利用网络从事危害国家安全、荣誉和利益&#xff0c;未经授权请勿利用文章中…

【gcc 报错】/usr/bin/ld: this linker was not configured to use sysroots

解决方法&#xff1a;只需把/usr/bin环境变量设置在前面&#xff0c;系统先查找到该目录下的ld即可 vim /etc/profileexport PATH/usr/bin:$PATHsource /etc/profile

【HTML专栏2】VSCode的使用(新建HTML文件)

本文属于HTML/CSS专栏文章&#xff0c;适合WEB前端开发入门学习&#xff0c;详细介绍HTML/CSS如果使用&#xff0c;如果对你有所帮助请一键三连支持&#xff0c;对博主系列文章感兴趣点击下方专栏了解详细。 博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;HTML/CS…

记录获取蓝鲸智云token的过程

一、使用python脚本获取蓝鲸智云token python版本环境&#xff1a;3.11 # -*- coding: utf-8 -*- import requestsdef get_user_token(domain,user,password):模拟用户登录&#xff0c;并返回 bk_token 和 bk_csrftokenBK_PAAS_HOST domainUSERNAME userPASSWORD password…

如何实现小程序与h5页面间的跳转

接到新需求&#xff0c;要在小程序页面内点击按钮实现跳转h5&#xff0c;一开始没接触过&#xff0c;还挺头疼的&#xff0c;但真正做起来&#xff0c;也就那么一回事啦&#xff0c;废话少说&#xff0c;直接上 1. 配置域名 先登录小程序开发平台&#xff0c;将页面需要跳转的…

Java学习笔记---多态

面向对象三大特征之一&#xff08;继承&#xff0c;封装&#xff0c;多态&#xff09; 多态的应用场景&#xff1a;根据传递对象的不同&#xff0c;调用不同的show方法 一、多态的定义 同类型的对象&#xff0c;表现出的不同形态&#xff08;对象的多种形态&#xff09; 二…

Tomcat详解 一:tomcat的部署

文章目录 1. Tomcat的基本介绍1.1 Tomcat是什么1.2 Tomcat的构成组件1.2.1 Web容器1.2.2 Servlet容器1.2.3 JSP容器&#xff08;JAVA Scripts page&#xff09; 1.3 核心功能1.3.1 Container 结构分析 1.4 配置文件1.5 Tomcat常用端口号1.6 启动和关闭Tomcat 2. 部署Tomcat服务…

DockerCompose部署es和kibana

DockerCompose文件 version: 3.1 services:elasticsearch:image: elasticsearch:7.13.3container_name: elasticsearchprivileged: trueports:- "9200:9200"- "9300:9300"environment:- ES_JAVA_OPTS-Xms128m -Xmx1024m #设置使用jvm内存大小- cluster.na…

【unity3D】如何修改相机的默认视角

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的如何修改相机的默认视角 如何修改相机的默认视角 Game窗口运行的话视角是这样的&#xff1a; 此时Scene窗口的视角是这样的&…

申请Tik Tok的菲律宾公会需要什么条件?

近年来的跨境电商出海各个国家&#xff0c;使得跨境电子商务在全球范围内迅猛发展。菲律宾作为东南亚地区的重要经济体之一&#xff0c;其电商市场也呈现出蓬勃的增长势头。本文将介绍菲律宾国内外电商的发展趋势&#xff0c;并分析目前菲律宾的市场团队佳薇cmxyci 神秘代码开启…

论文解读 | 点对照:3D点云理解无监督式预训练

原创 | 文 BFT机器人 《PointContrast: Unsupervised Pre-training for 3D Point Cloud Understanding》是一篇关于三维点云数据理解领域的研究论文&#xff0c;旨在提出一种无监督预训练方法&#xff0c;以改善对三维点云数据的理解。 01 背景 三维点云数据是从传感器&#…

手写Spring:第4章-基于Cglib实现含构造函数的类实例化策略

文章目录 一、目标&#xff1a;含构造函数的类实例化二、设计&#xff1a;含构造函数的类实例化三、实现&#xff1a;含构造函数的类实例化3.1 工程结构3.2 含构造函数的类实例化类图3.3 类实例化策略3.3.1 定义实例化策略接口3.3.2 JDK实例化3.3.3 Cglib实例化 3.4 抽象类定义…

INS惯性导航系统相关技术(概念版)

一、参考资料 组合导航系统生产商 applanix 官网 新手入门系列3——Allan方差分析方法的直观理解 惯性测量单元Allan方差分析详解 IMU标定之—Allan方差 b站视频&#xff1a;武汉大学惯性导航课程合集【2021年秋】 资料下载&#xff1a;PPT&#xff1a;《惯性导航原理与方法》…

nginx-ingress多控制器部署

nginx-ingress直接使用yaml来部署 wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml修改里面的镜像 多控制器部署实现&#xff1a; 在同一个命名空间中只需要新增一个IngressClass跟 ingress-…

EFG-02-10-31、ERBG-06-B-51电液比例控制调速阀放大器

EFCG-02-10-31、EFG-03-60-26、EFCG-03-125-26、EFCG-03-125-51、EFG-06-250-22、EFCG-06-250-22、EFG-06-250-51、EFCG-02-30-31、ERBG-06-B-51、ERBG-10-C-51、ERBG-06-H-51、ERBG-10-B-51、ERBG-06-C-51、ERBG-10-H-51、EFG-02-10-31、EFCG-03-60-26、EFG-03-125-26、EFG-03…

Mysql存储过程与存储函数

文章目录 1. 简介2. 存储过程的特点3. 存储过程操作语法4. 存储过程变量5. 其它语法6. 存储函数 1. 简介 存储过程是事先经过编译并存储在数据库中的一段SQL集合&#xff0c;调用存储过程可以简化应用开发人员的很多工作&#xff0c;减少数据在数据库和应用服务器之间的传输&a…