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

DVWA 靶场全通关

爆破

low等级

image-20251206100231318

在burp中选择集群炸弹攻击

image-20251206102504882

给需要爆破的参数添加payload

image-20251206104029714

配置爆破需要的字典

image-20251206102611487

可以看到爆破成功,账号密码为admin password

image-20251206105237038

image-20251206105329411

比较有意思的是,这里爆破的时候在里面插入了万能密码 admin'or''=',不管你密码输入什么都是成功登录的。

image-20251206105431111

medium

将难度调为medium image-20251206105457876

账号密码都是一样的

image-20251206105555534

阅读源码可知

  • 作用:当登录失败时,服务器会强制暂停 2 秒。
  • 影响:这极大地降低了暴力破解的速度。如果攻击者尝试爆破 1000 个密码,原本可能只需要几秒钟,现在至少需要 2000 秒(约 33 分钟)。这使得在线暴力破解变得非常低效。
<?php
else {// Login failedsleep( 2 ); // <--- 关键点$html .= "<pre><br />Username and/or password incorrect.</pre>";
}

high

image-20251206110626001

<?phpif( isset( $_GET[ 'Login' ] ) ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );// Sanitise username input$user = $_GET[ 'username' ];$user = stripslashes( $user );$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 = stripslashes( $pass );$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 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 successful$html .= "<p>Welcome to the password protected area {$user}</p>";$html .= "<img src=\"{$avatar}\" />";}else {// Login failedsleep( rand( 0, 3 ) );$html .= "<pre><br />Username and/or password incorrect.</pre>";}((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}// Generate Anti-CSRF token
generateSessionToken();?>

阅读完源码发现high等级会检查登录用户的token和网站生成的 session-token是不是一样的,且每次登陆服务端都会生成一个新的token以防止csrf攻击。

想要爆破token的话,就得先从上一个请求的响应中提取token(因为验证机制就是先验证token后在响应中更换token)

服务器 Session 里先有 token_A(此时有效)↓
用户提交请求(带 token_A)↓
服务器验证:token_A 是否匹配? → 通过↓
服务器生成 token_B,并放在响应页面里(但暂时不生效)↓
Burp 提取 token_B↓
用户下一次提交请求(带 token_B)↓
服务器“此时”才把 token_B 视为当前有效 token

使用草叉攻击(不同的payload用不同的字典),将passwordanti-token设置payload

image-20251206112852734

给密码配置字典文件

image-20251206113124968

配置anti-token的payload时先勾选检索提取,设置参数提取,即每次都要提取数据包中的token值

image-20251206113107734

image-20251206114103252

一定要选择总是跟随重定向,不跟随重定向的话burp只能看到302页面,无法获取到新的token值

image-20251206114136543

设置第二个payload参数,选择payload类型为递归查找,也就是找每次的token值作为这个payload,然后点开始攻击

image-20251206114323416

找到那个唯一不同的长度点开响应看看发现成功爆破

image-20251206123522063

dvwa 命令执行

low等级

首先学习一下linux命令连接符

& :前面一个命令无论是否执行,后面的命令都能执行,两个命令都执行
&&:前面一个命令执行成功后,才能执行后面一个命令,两个命令都执行
|:前面一个命令无论是否执行,后面的命令都能执行且只执行后面一个
||:前面一个命令不能正常执行后,才能执行后面一个命令
127.0.0.1 && ls

可以看到命令成功执行

image

medium等级

首先看一下源码,可以看到给 &&;置空了,那么就得想办法绕过

<?phpif( isset( $_POST[ 'Submit' ]  ) ) {// Get input$target = $_REQUEST[ 'ip' ];// Set blacklist$substitutions = array('&&' => '',';'  => '',);// Remove any of the characters in the array (blacklist).$target = str_replace( array_keys( $substitutions ), $substitutions, $target );// 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$html .= "<pre>{$cmd}</pre>";
}?>

这里我们就用 |连接符号绕过

127.0.0.1 | ls

image

high

代码审计一下,这次过滤了非常多的东西,但是我们仔细观察就可以发现其实对 |没有过滤的,因为他过滤的是 | 是有空格的,将上一关的命令中 |后面的空格去掉就可以绕过

<?phpif( isset( $_POST[ 'Submit' ]  ) ) {// Get input$target = trim($_REQUEST[ 'ip' ]);// Set blacklist$substitutions = array('||' => '','&'  => '',';'  => '','| ' => '','-'  => '','$'  => '','('  => '',')'  => '','`'  => '',);// Remove any of the characters in the array (blacklist).$target = str_replace( array_keys( $substitutions ), $substitutions, $target );// 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$html .= "<pre>{$cmd}</pre>";
}?>
127.0.0.1 |ls
http://www.zskr.cn/news/74496.html

相关文章:

  • Cisco Secure Firewall Threat Defense Virtual 7.7.11 - 思科下一代防火墙虚拟设备 (FTDv)
  • Cisco Firepower 4100 Series FTD Software 7.7.11 - 思科 Firepower 威胁防御系统软件
  • PbootCMS邮件配置修改发件人信息
  • 2025年12月刀模厂家权威推荐榜:雕刻刀模/蚀刻刀模/激光刀模/圆压圆刀模/夹治具/精密模具,匠心工艺与高效定制解决方案深度解析
  • 从资质、工艺到口碑严格筛选,2025年这份上海装修公司精选榜单请收好
  • PbootCMS模版制作:当天发布的文章显示红色的方法
  • 艺术漆品牌真实排名:5大优质品牌,助你轻松打造理想家居空间
  • PbootCMS登入失败:表单提交校验失败,请刷新后重试!
  • 2025权威推荐:十大艺术涂料品牌推广服务商,形象好服务佳
  • 权威揭秘!进口艺术涂料TOP5品牌,哪个才是投资价值NO.1?
  • 地域为根,协作成魂:HEBE 百年制表背后的汝拉社群智慧
  • 如何修改网站文件的发表日期(如何修改网站文章的发表时间)
  • PbootCms模板中怎么写PHP代码(PbootCMS 模板中嵌入 PHP 代码的方法与注意事项)
  • PbootCMS缩略图上传图片被截取变模糊的解决方法
  • 魔珐星云SDK实战测评:从0到1搭建会“思考+互动”的智能数字人客服应用
  • 2025年12月羽毛粉设备厂家推荐:市场主流品牌综合实力排行榜单深度解析
  • 2025年12月羽毛粉设备厂家推荐:全维度实力排行榜单与精准选购策略指南
  • 帝国cms 升级出现Multiple primary key defined错误
  • 2025年度凸轮式转子泵供应五大商推荐,凸轮式转子泵制造厂哪
  • 后台登录提示“登录失败:数据库目录写入权限不足!”
  • 2025转子泵企业TOP5权威推荐:拉法泵业与同行相比优势在
  • pbootcms模板时间格式调用方法详解(PbootCMS时间格式调用指南:列表页与详情页的灵活应用)
  • HTML动态表格
  • 喵喵喵序言
  • PbootCMS后台登录验证码看不清怎么回事?
  • 2025年广州GEO,广州GEO训练营,广州GEO实战培训厂商推荐:行业盘点与品质红榜发布
  • 2025年12月无害化设备厂家推荐:五大企业综合实力对比排行榜单
  • pbootcms升级提示 执行SQL发生错误!错误:duplicate column name: picstitle
  • 2025年12月深圳GEO工具,深圳GEO软件系统,深圳GEO训练营品牌最新推荐:工具更新频率与优质品牌
  • 2025年12月佛山GEO,佛山GEO软件系统,佛山GEO全案服务厂商推荐:AI算法与区域获客能力深度测评