DVWS靶场全总结(详细)--主要用来复习(暂未完善,累了大体框架已成)

news2024/11/20 14:41:29

目录

一、环境安装

二、开始闯关

2.1暴力破解

2.1.1 low:

2.1.2 medium:

2.2命令注入

2.2.1 low:

​编辑​编辑 2.2.2 medium:

2.3跨站请求伪造(CSRF)

2.3.1 low:

2.3.2 medium:

2.4文件包含漏洞

2.4.1 low:

2.4.2 medium:

2.5文件上传漏洞

2.5.1 low:

2.5.2 medium:

2.6不安全的验证码

2.6.1 low:

2.6.sql注入

2.6.1 low:

2.6.2 medium

2.7.sql盲注

2.7.1 low:

​编辑

2.7.2medium

2.8.弱会话IDS

 2.8.1 low:

2.8.2 medium:

2.9.跨站脚本攻击(XSS(DOM型))

2.9.1 low:

2.9.2 medium:

2.10.跨站脚本攻击(XSS(反射型))

2.10.1 low:

2.10.2 medium:

2.11.跨站脚本攻击(XSS(存储型))

2.11.1 low:

2.11.2 medium:

2.12.内容安全策略(CSP)

2.12.1 low:

2.12.2 medium:

2.13.JS攻击

2.13.1 low:

2.13.2 medium:

2.14.Authorisation Bypass(未授权访问)

2.14.1 low

2.14.2 medium:

2.15.Open HTTP Redirect(HTTP重定向)

2.15.1 low

2.11.2 medium:


一、环境安装

可以Windows也可以linux建议linux,博主linux搭建(网上搜这个搭建很多自己搭)

二、开始闯关

2.1暴力破解

2.1.1 low:

不多说直接暴力破解,很明显第一个4596跟其他的都不太一样

自然暴力破解成功

2.1.2 medium:

第二个难度只是对于我们爆破的一个速度进行了限制,没有一开始那么快而已,跟low一个水平,直接爆破即可

2.1.3

2.2命令注入

2.2.1 low:

这里我们要说一下命令连接符
& :前面一个命令无论是否执行,后面的命令都能执行,两个命令都执行
&&:前面一个命令执行成功后,才能执行后面一个命令,两个命令都执行
|:前面一个命令无论是否执行,后面的命令都能执行且只执行后面一个
||:前面一个命令不能正常执行后,才能执行后面一个命令

我们使用“|”符号作为连接符让计算机做出除ping以外的操作实现命令注入
结果显示注入成功!
命令:

127.0.0.1 | dir

 2.2.2 medium:

这关我没看到难度增加有什么区别,正常命令注入一样过

2.3跨站请求伪造(CSRF)

2.3.1 low:

网站本意是让我们更改密码,并且是在站内

当我们更改url上面参数后可以在网站外部进行更改密码并直接跳转在站外修改

总的来说,网站的本意是在网站内更改密码,而通过控制url的传参就能使我能在网站之外执行更改密码的操作,那么当知道一个网站有csrf漏洞后也可以通过构造url的方式让别人点击执行他意想之外的行为

2.3.2 medium:

这关跟low一样正常修改的话并不能更改,因此我查看源码

第一个函数stripos()会查找字符串在另一字符串中出现的位置

第二个函数会链接到当前页面的前一页面的url地址

第三个函数是服务器主机的名称,当我们跟low一样的话就会导致我刚才的修改不成功,这个时候就需要用到我们的BP了

只要保证referer字段是本机名字就可以实现 

2.4文件包含漏洞

2.4.1 low:

把php的配置文件ini文件中allow_url_include这个参数打开

通过访问1.php,2.php, 3.php会返回不通的内容,同时会将文件名传参给page参数

可以看到成功解析包含外部文件

2.4.2 medium:

跟low一样的没什么区别

2.5文件上传漏洞

2.5.1 low:

我们准备一个一句话木马,之后去上传

可以看到成功解析

2.5.2 medium:

加了前段上传限制但是不影响,我们直接用BP去进行抓包,之后修改后缀上传

我现在修改php为一张图片

修改后

2.6不安全的验证码

2.6.1 low:

看源码可以看到,开发人员将该密码修改操作分成了两步,第一步通过验证码验证是否机器人且验证两次密码输入是否一样,验证通过后,服务器返回表单,第二步,要求用户确认修改密码,客户端提交post请求,服务器完成更改密码的操作。但是,这其中存在明显的逻辑漏洞,服务器仅仅通过检查Change、step 参数来判断用户是否已经输入了正确的验证码。
启动burp抓包,将step参数改为2,修改密码为123456,点击change

源码分析:

2.6.2 medium

DVWA Security设置为Medium,开发人员在session设置状态变量,跟踪用户在提交数据之前是否成功完成了验证码。因为状态变量在客户端,它也可以被攻击者修改。
代码审计

通过源码知道,medium相比low就是在第二步多了passed_captcha验证。把这个参数改为如下就好passed_captcha=true然后send,修改密码成功,绕过验证码。但是好像是我在ubentu安装版本原因并没有显示出passed_captcha这个参数,代码审计的时候应该是有的,不过知识点就是如上

2.6.sql注入

2.6.1 low:

先测试闭合点很明显有报错必有注入点

判断出注入点之后,我们用burpsuite去进行抓包

抓包之后保存为1.txt去进行联动sqlmap

python sqlmap.py -r 1.txt --dbs -D dvwa -T users --dump

最终自然可以跑出来

2.6.2 medium

我们可以看到这次不让我们进行手动输入查询了而是固定的选择,这样的情况下直接使用BP去进行抓包处理

更改id语句为1' and '1'='1查看是否是单引号闭合,很明显报错了,有报错必有注入点

这次我们用超级sql注入工具或者sqlmap就可以直接跑出来了,但是为了更好的学习,我这里采用手工注入

先判断列,很明显是两列

合并查询,发现回显位置在2

查库

查看表名,发现我们的单引号被转译

尝试一下16进制转译吧

可以回显200,证明可以成功,但是我这里靶场在ubentu中安装sql的有问题,因此没有回显,正常的情况下表中的列名就已经回显成功了

成功出表中的数据

2.7.sql盲注

2.7.1 low:

正常输入ID

输入超级大的ID

很明显满足布尔盲注的条件,那就开始吧bp联动sqlmap

python sqlmap.py -r 2.txt --dbs -D dvwa -T users --dump -p id

可以见得成功 

2.7.2medium

2.8.弱会话IDS

cookie

位于用户的计算机上,用来维护用户计算机中的信息,直到用户删除。比如我们在网页上登录某个软件时输入用户名及密码时如果保存为cookie,则每次我们访问的时候就不需要登录网站了。我们可以在浏览器上保存任何文本,而且我们还可以随时随地的去阻止它或者删除。我们同样也可以禁用或者编辑cookie,但是有一点需要注意不要使用cookie来存储一些隐私数据,以防隐私泄露。

session

session称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求http地址时,将传递到web服务器上并与访问信息进行匹配, 当关闭网站时就表示会话已经结束,网站无法访问该信息了,所以它无法保存永久数据,我们无法访问以及禁用网站。

session与cookie的区别

(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。它只允许4kb它没有在cookie中保存多个变量。

(2)cookie的存储限制了数据量,只允许4KB,而session是无限量的

(3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全

(4)设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。

总结:如果我们需要经常登录一个站点时,最好用cookie来保存信息,如果对于需要安全性高的站点以及控制数据的能力时需要用会话效果更佳,也可以结合两者,使网站按照我们的想法进行运行。

 2.8.1 low:

当我们在firfox的时侯是有一个Cookie的,当我们复制链接重新访问的时候就需要登录,但当我们在谷歌浏览器替换抓包的Cookie后就可以直接绕过登录了

2.8.2 medium:

2.9.跨站脚本攻击(XSS(DOM型))

2.9.1 low:

选择不同的标签,后面这个会变化

那我们直接更改标签元素

2.9.2 medium:

2.10.跨站脚本攻击(XSS(反射型))

2.10.1 low:

单标签直接反射攻击用户

2.10.2 medium:

2.11.跨站脚本攻击(XSS(存储型))

2.11.1 low:

单标签直接过,这种存储型多存在于评论区,可联动kill中的beef去进行盗取用户Cookie

2.11.2 medium:

2.12.内容安全策略(CSP)

2.12.1 low:

Content-Security-Policy:允许站点管理者控制用户代理能够为指定的页面加载哪些资源。

从名字都可以知道这个攻击是直接攻击用户的,当用户输入之后,进行抓包替换csp字段,即可实现

比如我在我本地搭建了一个服务器

2.12.2 medium:

2.13.JS攻击

2.13.1 low:

提交success但是自动跳转是ChangeMe

去看看源码吧

我们会看到这个 token,不是后台生成的,而是前台生成的,而前台生成的 token,是用 md5("ChangeMe"),而后台期待的 md5 是 md5("success")。 

那只是前段验证那就好办多了,我们直接去前段改就行了,抓包更改token值,自然成功

2.13.2 medium:

2.14.Authorisation Bypass(未授权访问)

2.14.1 low

登录他给的账号

没有这个关卡页面了

 直接访问,没有选项也访问到了,未授权访问,限制不严格

2.14.2 medium:

2.15.Open HTTP Redirect(HTTP重定向)

2.15.1 low

打开题目出现了两个按钮

选择quote 1,发现了url中使用id传递参数,可以构造:

192.168.9.129:8081/DVWA/vulnerabilities/open_redirect/source/low.php?redirect=http://127.0.0.1/1.html

直接跳转

2.11.2 medium:

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

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

相关文章

暴力数据结构之栈与队列(队列详解)

1.队列的定义 队列是一种特殊的线性表,它遵循先进先出(FIFO)的原则。在队列中,只允许在表的一端进行插入操作(队尾),而在另一端进行删除操作(队头)。这种数据结构确保了最…

【栈】Leetcode 比较含退格的字符串

题目讲解 844. 比较含退格的字符串 算法讲解 使用栈模拟,但遇到#字符就让栈顶元素出栈,但是在写的过程中有两点需要注意:当#出现在第一个位置,需要特殊处理一下;当栈为空的时候,还出现#字符需要特殊处理…

普通人可以抓住黄金价格大涨的投资机会吗?

黄金价格的波动对于投资者来说,总是充满了诱惑和挑战。近期,全球经济形势变化多端,地缘政治冲突频发,这些因素无不对黄金市场造成影响,使得黄金价格出现大幅波动。那么,作为普通人,能否抓住黄金…

会赚钱的人都在做这件事:你了解吗?

在我们日常生活的点滴中,以及在各种场合的交互中,利他思维始终扮演着不可或缺的角色。当我们追求合作与共赢时,单方面的自我立场显然是不够的,真正的关键在于换位思考,寻找并满足对方的需求。 互利互赢的核心理念正是利…

centos安装mysql-client

直接安装: yum install mysql-community-client报了错误No package mysql-community-client available. 原因:CentOS/RHEL系统默认的软件源中并不包含MySQL软件包,需要通过添加第三方存储库来获取MySQL相关软件 添加源 安装MySQL官方的Yum…

【智能优化算法】白鲨智能优化算法(White Shark Optimizer,WSO)

白鲨智能优化算法(White Shark Optimizer,WSO)是期刊“KNOWLEDGE-BASED SYSTEMS”(中科院一区期刊 IF8.6)的2022年智能优化算法 01.引言 白鲨智能优化算法(White Shark Optimizer,WSO)的核心理念和基础灵感来自大白鲨的行为,包括它们在导航和…

关于Ardupilot的固定翼(plane)的控制

起因 由于项目原来是使用的四旋翼,并且是PX4版本的四旋翼; 如今需要对无人机固定翼进行控制,并要求使用Ardupilot的固件进行研究。 特定在此记录对固定翼的学习,以和大家分享观点和交流学习。 PX4和Ardupilot关系 PX4和Ardupilot都是固件,固件就是软件的意思。两者都是…

Amesim基础篇-热仿真常用模型库-Air Conditioning-Pipes

前言 基于上文对空调库各个元件的介绍,本文进一步将其中的管路展开。 管路介绍 1 摩擦阻力管(R): 具有阻力特性的管路,通过管长以及管截面计算阻力。 2 可调节阻力管(R): 只具有…

进一步解读英伟达 Blackwell 架构、NVlink及GB200 超级芯片

2024年3月19日,英伟达CEO黄仁勋在GTC大会上公布了新一代AI芯片架构BLACKWELL,并推出基于该架构的超级芯片GB200,将助推数据处理、工程模拟、电子设计自动化、计算机辅助药物设计、量子计算和生成式 AI 等领域。 为了纪念杰出的数学家David H…

设计合理的IT运维服务目录:打造高效运维的蓝图

在数字化转型的浪潮中,一个设计合理、内容详尽的IT运维服务目录是连接服务提供者与消费者之间的桥梁,它不仅体现了服务设计的专业性,还直接影响着运维效率和服务质量。如何设计出既合理又高效的IT运维服务目录?让我们结合ITIL 4框…

赣红孵联合卫东街道未保站开展未成年人保护法散落在每个角落活动

为进一步提高家长的法治意识,依法保障未成年人的合法权益,全力构建安全和谐文明家庭,5月8日,赣红孵社会组织培育中心联合卫东街道未成年人保护站在在南师附小红谷滩校区实验小学开展“未成年人保护法散落在每个角落”未成年人普法…

浅谈云计算资源和服务

目录 前言 正文 专有名词及其首字母缩写 轻量级应用服务器 云服务器ECS 专有网络VPC 其他类服务 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University o…

上海晋名室外危废暂存间助力科教产业危废品安全储存

本周又有两台SAVEST室外危废暂存间项目成功验收交付使用,此次项目主要用于用户园区内固废、废液等危废品室外暂存安全。 用户单位在日常工作运营中涉及到园区内固废、废液等危废品的室外安全储存问题,用户在寻找解决方案的过程中搜索到上海晋名的室外暂…

Java入门基础学习笔记11——关键字和标识符

1、关键字 关键字是java中已经被赋予特定意义的,有特殊作用的一些单词,不可以把这些单词作为标识符来使用。 注意:关键字是java用了的,我们就不能用来作为:类名、变量名、否则会报错。 标识符: 标识符就是…

2024C题生物质和煤共热解问题的研究 详细思路

背景 随着全球能源需求的不断增长和对可再生能源的追求,生物质和煤共热解作为一种潜在的能源转化技术备受关注。生物质是指可再生能源,源自植物和动物的有机物质,而煤则是一种化石燃料。** 在共热解过程中,生物质和煤在高温和缺氧…

【C++】-类模板-002

1创建类模板 (1)新建工程 (2) (3) (4) (5)模板运行结果 2【UI】设计器 (1)跳转到【UI】设计器 (2)添加…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.4讲 GPIO中断实验-IRQ中断服务函数详解

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

weblogic 反序列化 [CVE-2017-10271]

一、漏洞描述 这个漏洞是wls-wsat这个接口出了问题,Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的…

C++|二叉搜索树

一、二叉搜索树的概念 二叉搜索树又称为二叉排序树,它或者是一颗空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根结…

c++高级篇(一) —— 初识Linux下的进程控制

linux的信号 信号的概念 在Linux中,信号是一种用于进程间通信和处理异步事件的机制,用于进程之间相互传递消息和通知进程发生了事件,但是,它不能给进程传递任何数据。 信号产生的原因有很多种,在shell中&#xff0c…