当前位置: 首页 > news >正文

基于DVWA-Brute Force(LowMedium)的渗透测试

Brute force主要是通过爆破达到渗透目的:

Low

 查看源代码:

<?phpif( isset( $_GET[ 'Login' ] ) ) {// Get username$user = $_GET[ 'username' ];// Get password$pass = $_GET[ 'password' ];$pass = md5( $pass );// Check the database$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";$result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );if( $result && mysqli_num_rows( $result ) == 1 ) {// Get users details$row    = mysqli_fetch_assoc( $result );$avatar = $row["avatar"];// Login successfulecho "<p>Welcome to the password protected area {$user}</p>";echo "<img src=\"{$avatar}\" />";}else {// Login failedecho "<pre><br />Username and/or password incorrect.</pre>";}((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}?>


以上代码的含义是:
这段 PHP 代码是一个处理登录请求的脚本,
if (isset($_GET['Login'])):判断是否通过 GET 方法传递了名为 Login 的参数,如果有,则执行后续的登录逻辑。
从 $_GET 中获取用户名 $user 和密码 $pass,并对密码使用 md5 进行哈希处理。
构建一个 SQL 查询语句 $query,从 users 表中查找用户名和密码匹配的记录。
使用 mysqli_query 执行查询,如果查询失败则输出错误信息并终止脚本。
如果查询结果存在且只有一行匹配,说明登录成功:
获取用户的头像信息 $avatar。
输出欢迎信息和显示头像。
如果查询结果不存在或匹配行数不为 1,则登录失败,输出错误提示。
最后使用 mysqli_close 关闭数据库连接。

接下来使用BP抓包:

 空白处右键选择:发送给intruder

测试器-标签-位置,选择右侧清除

 清除变量引用后,双击username跟password的变量值,并分别添加变量引用符号。

 攻击类型选择:

集束炸弹(clusterbomb),可以对多个选定参数,这样我们可以同时对用户名跟密码互相组合发动爆破。

(拓展:狙击手(Sniper):仅指定单个爆破参数,定点爆破;

攻城锤/冲击夯(Battering Ram):指定一个文件对多个位置参数实施爆破,所有参数位置都一样;

音叉/鱼叉(Pitchfork):加入两个变量值)

 选择“有效载荷-有效载荷集”,选择1,有效载荷类型:“简单清单”。用户名爆破用例随意输入

 “有效载荷-有效载荷集”,选择2,有效载荷类型:“简单清单”。密码爆破用例同样随意输入:

 点击右上角:发动攻击

我们发现,其中有一个长度比较异常(最长),尝试登录,

 登录成功,结论:用户名:admin,密码:password

 low通关。

Medium

调整靶场难度为:Medium,选择提交:

调整之后查看对应源代码:

<?phpif( isset( $_GET[ 'Login' ] ) ) {// Sanitise username input$user = $_GET[ 'username' ];$user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));// Sanitise password input$pass = $_GET[ 'password' ];$pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$pass = md5( $pass );// Check the database$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";$result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );if( $result && mysqli_num_rows( $result ) == 1 ) {// Get users details$row    = mysqli_fetch_assoc( $result );$avatar = $row["avatar"];// Login successfulecho "<p>Welcome to the password protected area {$user}</p>";echo "<img src=\"{$avatar}\" />";}else {// Login failedsleep( 2 );echo "<pre><br />Username and/or password incorrect.</pre>";}((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}?>

代码含义:

首先,通过 isset($_GET['Login']) 判断是否接收到了登录请求。然后对用户名 $user 和密码 $pass 进行了一些处理和净化:

  • 使用 mysqli_real_escape_string 函数来处理可能存在的特殊字符,以防止 SQL 注入。
  • 对密码进行了 md5 哈希处理。

接着执行一个 SQL 查询从 users 表中查找匹配的用户和密码。如果查询成功并且返回的行数为 1,表示登录成功:

  • 获取用户的头像信息 $avatar 。
  • 输出欢迎信息和头像。

如果查询结果为空或者行数不为 1,表示登录失败:

  • 程序会暂停 2 秒。
  • 输出登录失败的提示信息。

最后,关闭了与数据库的连接。

Medium级别比上一个级别多了一个sleep(),即登录失败后会有两秒的静默延迟。但我们同样可以使用LOW级的爆破方式做测试,但是时间会长一点。(参考low方法)

相关文章:

基于DVWA-Brute Force(LowMedium)的渗透测试

Brute force主要是通过爆破达到渗透目的&#xff1a; Low 查看源代码&#xff1a; <?phpif( isset( $_GET[ Login ] ) ) {// Get username$user $_GET[ username ];// Get password$pass $_GET[ password ];$pass md5( $pass );// Check the database$query "SE…...

水库大坝安全预警系统的作用

“汛情就是命令&#xff0c;防汛就是责任”&#xff0c;为了防治和减轻洪涝带来的危害&#xff0c;需要一种以预警为先导的临灾位移监测系统--水库大坝安全预警系统&#xff0c;对可能会出现的灾害进行实时远程监控&#xff0c;尽可能做到隐患早发现、早决策、早治理&#xff0…...

容器化部署ES集群

文章目录 一、ElasticSearch基本概念1、索引(Index)2、文档(Document)3、分片和副本4、映射(Mapping) 二、容器部署ElasticSearch集群三、容器部署ElasticSearch伪集群 一、ElasticSearch基本概念 1、索引(Index) 在ElasticSearch中&#xff0c;索引是文档的集合&#xff0c;类…...

使用排名前三的华为解锁工具来绕过忘记的华为锁屏密码

如果您在未使用“设置”应用的情况下将华为手机恢复出厂设置&#xff0c;同时启用了出厂重置保护 (FRP) 安全功能&#xff0c;您的华为设备将卡在帐户验证界面。您可以使用帐户凭据轻松绕过此锁定。但是&#xff0c;假设您无法回忆起旧的帐户信息。在这种情况下&#xff0c;您应…...

战神之父和前暴雪总裁都很期待《黑神话》:太酷想玩

近日《战神》之父David Jaffe在油管上发布视频&#xff0c;分享了他对《黑神话&#xff1a;悟空》的看法。他表示自己一直很关注这款游戏&#xff0c;该作的最终预告画面让他惊讶。而战斗部分更是让他大呼&#xff1a;“OMG”。 David Jaffe表示&#xff1a;“我必须要购买《黑…...

用户体验的优化:观测云在用户行为分析中的应用

在数字化商业环境中&#xff0c;用户体验的质量直接影响到品牌形象和客户忠诚度。观测云平台&#xff0c;作为一款专业的数据监控和分析工具&#xff0c;为企业提供了一个全面的解决方案&#xff0c;以深入分析用户行为并优化用户体验。 观测云的核心优势在于其能够实时处理和…...

ModelScope 部署 Flux 模型

Flux 文生图模型&#xff0c;是 Black Forest Labs 最近发布的模型&#xff0c;图片生成清晰度很高&#xff0c;模型可以在 ModelScope 上进行下载&#xff0c;本文将在本地环境中部署 Flex。使用环境如下 2080 TI 22GUbuntu 22Amd R7 2700 / 128G 启动 Model Scope 容器 Mo…...

ArkTs基础语法-声明式UI-基本概念

声明式UI语法 基本概念声明式UI描述创建组件无参数有参数 配置属性配置事件 配置子组件 基本概念 装饰器&#xff1a;用于装饰类、结构、方法及变量&#xff0c;并赋予其特殊的含义。 例如&#xff1a; Entry 有该装饰器的自定义组件&#xff0c;可以在UIAbility中使用&#xf…...

Day26 线程学习

线程相关知识总结 在多线程编程中&#xff0c;线程的管理和控制是非常重要的部分。本文将对线程的创建、取消、资源回收、竞争及顺序等方面进行详细总结。 一、线程的基本操作 pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*…...

eNSP 华为三层交换机实现VLAN间通信

华为三层交换机实现VLAN间通信 三层交换机&#xff1a; <Huawei>sys [Huawei]sys SW-3 [SW-3]vlan batch 10 20 [SW-3]int vlan 10 [SW-3-Vlanif10]ip address 192.168.10.254 24 [SW-3-Vlanif10]int vlan 20 [SW-3-Vlanif20]ip add 192.168.20.254 24 [SW-3-Vlanif20]in…...

【多模态大模型】LLaMA in arXiv 2023

一、引言 论文&#xff1a; LLaMA: Open and Efficient Foundation Language Models 作者&#xff1a; Meta AI 代码&#xff1a; LLaMA 特点&#xff1a; 该方法在Transformer的基础上增加了Pre-normalization (RMSNorm)、SwiGLU activation function (SwiGLU)、Rotary Embed…...

(转)java中restful接口和普通接口的区别

RESTful接口是一种遵循REST(Representational State Transfer)架构风格的网络接口&#xff0c;设计上更倾向于资源的表述&#xff0c;通过HTTP方法&#xff08;如GET、POST、PUT、DELETE&#xff09;直接操作资源&#xff0c;使得接口更简洁、易于理解和维护。 与普通接口相比…...

灵办AI免费ChatGPT4人工智能浏览器插件快速便捷(多功能)

灵办AI就是您所需的最佳助手&#xff01;我们为您带来了一款多功能AI工具&#xff0c;不仅能为您提供精准翻译&#xff0c;还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI&#xff0c;真正让工作和学习变得轻松高效&#xff01; 推荐使…...

VulnHub:BlueMoon

准备工作 靶机下载地址&#xff0c;下载完成后使用virtualbox打开虚拟机&#xff0c;网络设置修改为桥接。 信息收集 主机发现 攻击机ip&#xff1a;192.168.31.218&#xff0c;nmap扫描攻击机同网段存活主机。 nmap 192.168.31.0/24 -Pn -T4 目标靶机ip为&#xff1a;192…...

处理filter里抛出的异常

Filter 的异常是在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()这里扔出来的。Filter是tomcat负责调用执行的&#xff0c;所以会比 servlet&#xff08;尤其是SpringMVC 的dispatcherServlet &#xff09;先执行&#xff0c;所以 Filter 里的错误&…...

IndexedDB深度解析:JavaScript的客户端数据库

IndexedDB是一个在用户浏览器中运行的低等级API&#xff0c;用于存储大量结构化数据。作为NoSQL数据库&#xff0c;IndexedDB为Web应用程序提供了丰富的数据存储能力&#xff0c;支持键值对存储、索引、事务和复杂查询等功能。本文将详细介绍IndexedDB的基本概念、工作原理、使…...

C语言中的函数指针和返回值为数组的函数指针对比

函数指针 //定义一个函数指针&#xff0c;函数的参数是int型&#xff0c;返回值为int typedef int &#xff08;*func)(int);//定义一个函数指针&#xff0c;函数的参数是int*型&#xff0c;返回值为int* typedef int* (*func)(int *);定义一个返回值为数组指针的函数 //定义…...

根据字符串的长度和字符值的大小来对字符串切片进行排序

在 Go 语言中&#xff0c;根据字符串的长度和字符值的大小来对字符串切片进行排序。示例如下: package mainimport ("fmt""sort" )// 自定义类型&#xff0c;以实现排序接口 type byLengthAndValue []string// 实现 sort.Interface 的 Len 方法 func (s b…...

RabbitMQ 的工作原理

下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器&#xff0c;打开一个channel。 2、客户端声明一个exchange&#xff0c;并设置相关属性。 3、客户端声明一个queue&#xff0c;并设置相关属性。 4、客户端使用routing key&#xff0c; 在exchange和queue 之间…...

WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定

资源 对象级别独立文件 静态资源使用(StaticResource)指的是在程序载入内存时对资源的一次性使用&#xff0c;之后就不再去访问这个资源了。 动态资源使用&#xff08;DynamicResource&#xff09;使用指的是在程序运行过程中仍然会去访问资源。 显然&#xff0c;如果你确定…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...