DVWA靶场

本文详细介绍了DVWA靶场中包括不安全验证码、SQL注入、XSS攻击、CSP Bypass、JavaScript攻击和弱会话ID等各种安全漏洞。针对每个漏洞,分别阐述了低、中、高三个安全级别的绕过方法,提供了攻击者可能利用的手段,有助于理解网络安全防护的重要性。

Insecure CAPTCHA(不安全的验证码)

验证码验证可以被绕过,一般都是验证码的验证和最终修改的验证分离,导致了中间过程(验证码的验证结果)可以被篡改

看到需要配置,更改配置

 

low

查看源码发现服务器仅仅通过检查Change、step 参数来判断用户是否已经输入了正确的验证码。

 所以通过抓包来更改step的值来绕过,源码发现step值由1变为2

 

  

medium

查看源码增加了对参数passed_captcha的检查

 抓包,更改step参数,增加passed_captcha参数,绕过验证码

 high

查看源码,发现参数g-recaptcha-response不等于hidd3n_valu3(或者http包头的User-Agent参数不等于reCAPTCHA)时,就认为验证码输入错误,反之则认为已经通过了验证码的检查。

 

 

SQL Injection(盲注)

low

输入1,返回成功

输入1 and 1=2,返回成功,说明没有执行后面语句,不是数字型

输入1’ and ‘1’ =‘1,返回成功,1’ and ‘1’ ='2,返回失败判断为

XSS(跨站脚本攻击)

恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

DOM型

low

在url输入选择的语言,查看执行的内容

发现会发生改变,可以往后面写脚本,添加一个脚本运行

<script>alert('123')</script>

<script> 标签用于定义客户端脚本,比如 JavaScript。

script 元素既可以包含脚本语句,也可以通过 src 属性指向外部脚本文件。

必需的 type 属性规定脚本的 MIME 类型。

js标签,alert是弹出一个窗口的意思,如alert(‘123’);就是弹出一个123的弹窗 

medium

查看源码发现限制了script标签

(1)我们使用#的注释后边内容来绕过服务器端直接本地出现、

 (2)使用svg标签执行代码

default=</option></select><svg onload=alert('123')>

 high

查看源码,限制必须选择四个语言中的一个。所以先选择语言在注释内容绕过服务端

 使用img标签执行

default=English#</option></select><img src=1 οnerrοr=alert('123')>

使用svg标签执行

default=English#</option></select><svg οnlοad=alert('789')>

完成

Reflected(反射型)

low

url输入1查看内容:

 查看源码发现没有过滤内容。直接添加script脚本

medium

查看源码发现限制了script标签,使用双写来绕过

 

也可以使用大小写绕过

high

查看源码,过滤了脚本

 使用插入图片来执行脚本

Stored(储存型)

low

查看源码没有过滤,直接在留言处写入脚本(用户名有限制)

 medium

留言板过滤了script标签,抓包在名字修改使用双写绕过或者使用大小写绕过

high

和反射性限制一样,抓包后再名字修改为图片类型,在放包即可

CSP Bypass(内容安全策略)

开发者在开发过程中设置了一个类似于白名单的策略,要信任某个页面,哪些外部资源可以执行,哪些不可以,这可以从根本上防御XSS,如果CSP配置的好,可以从根本上杜绝XSS

low

查看源码和发现网络响应头寻找里边的信任网址查询该网站

 在信任网站中写入alert(1),使用raw方式显示记录下url,输入框中。成功弹窗

 medium

查看源码,合法来源发生了变化,直接输入代码,成功弹窗

high

查看源码发现CSP 头, 只有 script-src ‘self’,只能引用允许self 的脚本执行

include作为参数,注入

JavaScript (js攻击)

low

查看源码,知道post方式phrase和token值相同且token值正确的话为well done

 发现token的值由md5(rot13(parase));之后post提交,将token修改正确

 

medium

 查看源码和js源码

 分析源码发现代码为将phrase的值逆序就是sseccus即token的值为xxsseccusxx,则可成功

Weak Session IDs(弱会话ids)

当用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带Sesion去访问。sessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易获取访问限,无需录直接进入特定用户界面,进而进行其他操作。用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪一个Session,浏览器需要把当前用户持有的SessionID告知服务器。用户拿到session id就会加密后保存到 cookies 上,之后只要cookies随着http请求发送服务器,服务器就知道你是谁了。SessionID一旦在生命周期内被窃取,就等同于账户失窃。

low

查看源码,发现没有过滤,直接使用hackbar的cookie方式提交,然后dvwa既不用账号密码登录


 

medium

查看源码发现是基于时间戳生成dvwaSesion的,关于时间戳转换,直接查找转换器进行转换即可

 

 

 通过hackbar的cookie方式的session改为转换的时间戳,就可以成功

high

查看源码发现使用了PHP setcookie()函数,来设置cookie

 抓包发现,dvwaSesion值很像md5加密,使用md5解密,发现是对从零开始的整数进行加密,构造payload提交

### 关于DVWA靶场的相关信息 #### DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用于学习Web安全漏洞的PHP程序,旨在提供一个易受攻击的应用环境供用户测试和研究各种常见的Web应用漏洞[^1]。 #### DVWA模块与功能 DVWA包含了多个不同类型的漏洞模块,例如SQL注入、命令执行、跨站脚本攻击(XSS)、文件包含等。这些模块可以帮助使用者了解每种漏洞的工作原理以及防御方法[^2]。 #### 安装教程 为了搭建DVWA靶场,可以按照以下流程操作: 1. **下载并安装phpStudy** phpStudy是一款集成化的开发工具包,能够快速部署PHP运行环境。通过它来支持DVWA所需的服务器环境是非常方便的选择之一[^3]。 2. **获取DVWA源码** 可以从官方GitHub仓库下载最新版本的DVWA压缩包,具体地址如下: ```plaintext https://github.com/ethicalhack3r/DVWA/archive/v1.9.zip ``` 将其解压到本地指定路径,比如`D:\phpstudy_pro\WWW`目录下。 3. **数据库初始化** 启动phpMyAdmin界面,在其中创建一个新的MySQL数据库名为`dvwa`,并将下载好的DVWA项目中的SQL文件导入进去完成表结构建立工作[^4]。 4. **配置访问权限** 修改config.inc.php文件里的默认管理员密码以及其他必要的设置项以便顺利登录管理后台页面。 5. **启动服务端口监听** 打开浏览器输入类似这样的URL即可进入初始登陆页: ```plaintext http://localhost/DVWA/ ``` 以下是部分代码片段展示如何调整配置文件参数示例: ```php <?php // config.inc.php example configuration file. $DBMS = 'mysql'; // Database management system to use $db_server = '127.0.0.1'; $db_username = 'root'; $db_password = ''; // Set your own password here if needed $db_database = 'dvwa'; $_DVWA['db_user'] = $db_username; $_DVWA['db_password'] = $db_password; ?> ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值