DVWA大通关详解(持续更新)

本文详细解析了DVWA(Damn Vulnerable Web Application)中的多种安全漏洞,包括BRUTE Force爆库、Command Injection命令注入、CSRF跨站请求伪造、File Inclusion文件包含、File Upload文件上传、SQL Injection SQL注入(包括Blind盲注)以及XSS(Reflected反射型和Stored存储型)漏洞。针对每个漏洞,文章分析了漏洞原理,展示了利用方法,如使用burpsuite工具进行爆破、构造恶意命令等,并提供了漏洞利用示例,揭示了这些常见Web漏洞的危害及防范措施的重要性。
摘要由CSDN通过智能技术生成


LOW
**

DVWA之BRUTE Force(爆库)

**

<?php
if( 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 = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );

    if( $result && mysql_num_rows( $result ) == 1 ) {
   
        // Get users details
        $avatar = mysql_result( $result, 0, "avatar" );

        // Login successful
        echo "<p>Welcome to the password protected area {
     $user}</p>";
        echo "<img src=\"{
     $avatar}\" />";
    }
    else {
   
        // Login failed
        echo "<pre><br />Username and/or password incorrect.</pre>";
    }

    mysql_close();
}
?>

分析代码,服务器只是验证了参数Login是否被设置(isset函数在php中用来检测变量是否设置,该函数返回的是布尔类型的值,即true/false),没有任何的防爆破机制,且对参数username,password,没有做任何过滤就直接带入数据库查询,并没有做相关的处理,所以可以尝试万能密码登录
随便输入密码
在这里插入图片描述然后使用burpsuite工具进行暴力破解
在这里插入图片描述尝试在爆破结果中找到正确的密码,可以看到password的响应包长度(length)“与众不同”,可推测password为正确密码,手工验证登陆成功。

Command Injection(命令注入)

命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一,国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。

<?php 
if( isset( $_POST[ 'Submit' ]  ) ) {
    
    // Get input 
    $target = $_REQUEST[ 'ip' ]; 
    // Determine OS and execute the ping command. 
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
    
        // Windows 
        $cmd = shell_exec( 'ping  ' . $target ); 
    } 
    else {
    
        // *nix 
        $cmd = shell_exec( 'ping  -c 4 ' . $target ); 
    } 
    // Feedback for the end user 
    echo "<pre>{
     $cmd}</pre>"; 
} 
?> 

相关函数介绍

stristr(string,search,before_search)

stristr函数搜索字符串在另一字符串中的第一次出现,返回字符串的剩余部分(从匹配点),如果未找到所搜索的字符串,则返回FALSE。参数string规定被搜索的字符串,参数search规定要搜索的字符串(如果该参数是数字,则搜索匹配该数字对应的ASCII值的字符),可选参数before_true为布尔型,默认为“false”,如果设置为“true”,函数将返回search参数第一次出现之前的字符串部分。

php_uname(mode)

这个函数会返回运行php的操作系统的相关描述,参数mode可取值”a” (此为默认,包含序列”s n r v m”里的所有模式),”s ”(返回操作系统名称),”n”(返回主机名),” r”(返回版本名称),”v”(返回版本信息), ”m”(返回机器类型)。

可以看到,服务器通过判断操作系统执行不同ping命令,但是对ip参数并未做任何的过滤,导致了严重的命令注入漏洞

漏洞利用

window和linux系统都可以用&&来执行多条命令

  • 127.0.0.1&&net user

  • 127.0.0.1&&cat /etc/shadow

  • 127.0.0.1&& whoami
    在这里插入图片描述

CSRF(跨站请求伪造漏洞)

CSRF,全称Cross-site request forgery,跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)

<?php

if( isset( $_GET[ 'Change' ] ) ) {
   
    // Get input
    $pass_new  = $_GET[ 
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA(Damn Vulnerable Web Application)是一个专门用于测试和学习Web应用安全的漏洞实验平台。CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的Web安全漏洞。下面是一个简单的DVWA CSRF通关教程: 1. 下载和安装DVWA:首先,你需要从DVWA官方网站下载DVWA实验平台,并将其部署到你的本地服务器或虚拟机。 2. 启动DVWA:在你的服务器上启动DVWA,并确保它可以通过浏览器访问。 3. 注册并登录:使用你的浏览器访问DVWA,并注册一个新用户。然后,使用你的新用户登录到DVWA。 4. 寻找CSRF漏洞:在DVWA的主界面上,点击"CSRF"标签,进入CSRF页面。 5. 查看源代码:在CSRF页面上,查看页面的HTML源代码。寻找包含表单提交功能的表单。 6. 构造恶意请求:根据HTML源代码,构造一个恶意请求,该请求可能会执行一些不安全的操作,例如更改用户密码或删除帐户。 7. 利用CSRF漏洞:使用构造的恶意请求,通过其他方式引导用户访问你构建的恶意请求链接。当用户访问这个链接时,他们的操作将被执行,而他们可能并不知情。 8. 验证漏洞:通过在DVWA检查相关操作是否被执行,来验证是否成功利用了CSRF漏洞。 请注意,在进行漏洞测试时,确保只在授权范围内操作,并遵循合法的道德规范。漏洞测试应该仅用于学习和安全研究目的,不应用于非法活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值