DVWA-CSRF学习笔记
DVWA-CSRF学习笔记
一、CSRF(跨站请求伪造)
CSRF(跨站请求伪造),是指利用受害者尚未失效的身份认证信息(cookie、session会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害人的身份向服务器发送请求,从而完成非法操作(如转账、改密等)。
二、CSRF攻击原理图
三、CSRF与CSS的区别
CSRF属于业务逻辑漏洞,服务器信任经过身份认证的用户
XSS属于技术漏洞,客户信任服务器
四、CSRF漏洞分析
1、漏洞利用前提:用户必须登录、黑客懂得一些发包的请求,服务器端是不会有二次认证的,被害者是不知情的
将DVWA的级别设置为low
1.1查看源代码,首先获取输入的两个密码然后判断两个值是否相等,如果相等则对$pass_new变量进行调用mysql_real_escape_string函数来进行字符串的过滤(防御SQL注入),再调用md5()函数对输入的密码进行MD5加密,最后再将新密码更新到数据库中。分析源码可以看到只对SQL注入进行了过滤,没有防御CSRF
1.2本地尝试简单的CSRF攻击
1.2.1首先登录DVWA,产生cookie信息,然后点击CSRF栏,在burp开启拦截数据包,然后再DVWA CSRF栏中输入密码以及确认密码
1.2.2此时burp 已经拦截到数据包
1.2.3我们可以修改数据包,构造一个带有修改密码的url发送给目标用户(目标用户需要已经登录DVWA,产生cookie信息),当目标用户点击url时,密码就被修改了。
现在本地测试,burp抓到数据包之后,把数据包丢弃掉(Drop),然后在浏览器打开另一个窗口,输入构造的url,可以看到成功修改密码
1.2.4测试用DVWA的默认密码登录,发现登录不进去,然后用修改过的密码登录,发现登录成功,说明存在CSRF漏洞
1.3尝试构成一个带有修改密码的url,发送给远端的用户(在xp 系统中打开浏览器,然后访问登录DVWA)
1.3.1把构造的带有修改密码的url发送给目标用户,目标用户访问之后,密码就会被修改
1.4构造攻击页面
1.4.1通过img标签中的src属性来加载CSRF攻击利用的URL,并进行布局隐藏,实现了受害者点击链接则会将密码修改。
将test.html文件放在攻击者自己准备的网站上
1.4.2当受害者正在使用自己的网站(浏览器中还保存着session值)时,访问攻击者诱惑点击test.html 误认为是自己点击的是一个失效的url,但实际上已经遭受了CSRF攻击,密码已经被修改为123
1.5抓包利用burp创建poc
1.5.1点击copy HTML 然后在web站点中创建一个文件,把poc的内容复制进去
1.5.2在另一个浏览器登录DVWA,产生session会话,然后访问http://192.168.10.144/2.html #站点,可以看到如下内容,点击“Submit,request”,运行了2.html文件中的内容,成功修改密码
1.6结合存储型xss来进行重定向
1.6.1在存储型xss漏洞栏输入<script>window.location=’http://192.168.10.144/test.html’</script>
1.6.2当用户访问了带有存储型xss漏洞的页面,就会运行test.html文件,test.html文件内容是修改密码并进行简单的伪装,此时成功修改密码
将DVWA的级别设置为Medium
1.分析源码,可以看到Medium级别在Low级别的基础上了加了HTTP_REFERER验证,判断127.0.0.1是否在 referer中,只能本地登录,此时可以把之前的test.html文件重命名为127.0.0.1.html来达到绕过的目的
2.把test文件重名为127.0.0.1.html
3.此时在登陆过DVWA并保持有session会话的的浏览器中,打开另一个窗口,输入http://192.168.10.144/127.0.0.1.html 访问位于远端服务器的html文件,然后密码就会被修改
4.通过burp分析
将DVWA的级别设置为High
分析源码,可以看到对密码修改有二次验证,彻底杜绝了利用CSRF漏洞修改密码
DVWA-CSRF学习笔记的更多相关文章
- CSRF学习笔记之CSRF的攻击与防御以及审计【00x1 】
+++++++++++++++++++++++++++ + 00x1 实现简单的攻击 + 00x2 代码审计漏洞的源头 +++++++++++++++++++++++++++ 00x1 简单的csrf ...
- 初探csrf学习笔记
以下是学习了对CSRF的理解,大家切勿作为标准,如有出错请告之! 严禁转载.不想拿自己刚学到的知识去[误人子弟]之所以写出来是让自己巩固和增加理解,他日对此文有不当之处自会修改. [00x1]csrf ...
- CSRF 学习笔记
1:什么是CSRF: 假设有一个支付网站:www.xx.com 向小明同学付款1000元数据包: www.xx.com/pay.php?name=xiaoming&account=xxxx@q ...
- csrf学习笔记
CSRF全称Cross Site Request Forgery,即跨站点请求伪造.我们知道,攻击时常常伴随着各种各样的请求,而攻击的发生也是由各种请求造成的. CSRF攻击能够达到的目的是使受害者发 ...
- CSRF学习笔记之CSRF的防御【00x4】
referer 验证 根据HTTP协议,在http请求头中包含一个referer的字段,这个字段记录了该http请求的原地址.通常情况下,执行转账操作的post请求www.bank.com/trans ...
- CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】
Hight.php完整代码如下: <?php if (isset($_GET['Change'])) { // Turn requests into variables $pass_curr = ...
- CSRF学习笔记之CSRF的攻击与防御以及审计【00x2 】
Medium完整代码: <?php if (isset($_GET['Change'])) { // Checks the http referer header if ( eregi ( &q ...
- Web 学习笔记 - 网络安全
前言 作为 前端开发者,了解一点 Web 安全方面的基本知识是有很必要的,未必就要深入理解.本文主要介绍常见的网络攻击类型,不作深入探讨. 正文 网络攻击的形式种类繁多,从简单的网站敏感文件扫描.弱口 ...
- SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能
在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...
随机推荐
- Flask 教程 第二章:模板
本文翻译自 The Flask Mega-Tutorial Part II: Templates 在Flask Mega-Tutorial系列的第二部分中,我将讨论如何使用模板. 学习完第一章之后,你 ...
- java核心技术第二篇之数据库SQL语法
#查询products表记录SELECT * FROM products WHERE price > 2000;-- 单行注释/* 多行注释*/#创建数据库CREATE DATABASE hei ...
- 关于spring,IOC和AOP的解析原理和举例
引用自:https://blog.csdn.net/paincupid/article/details/43152397 IOC:就是DAO接口的实现不再是业务逻辑层调用工厂类去获取,而是通过容器(比 ...
- Vuex基本使用的总结--转载
在 Vue 的单页面应用中使用,需要使用Vue.use(Vuex)调用插件.使用非常简单,只需要将其注入到Vue根实例中. import Vuex from 'vuex' Vue.use(Vuex) ...
- Windows下Python 3.6 安装BeautifulSoup库
- - 下载安装 安装方法如下: 到 - PIP安装 如果上一种方法安装不成功,可以用第二种方法,记住,Python3.6下是pip3. 安装方法如下: pip3 install beautifuls ...
- Python—编码与解码(encode()和decode())
编码与解码 decode英文意思是解码,encode英文原意是编码. Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化.编码是 unicode -> str ...
- CodeForces - 1253D(并查集)
题意 https://vjudge.net/problem/CodeForces-1253D 一个无向图,对于任意l,r,如果l到r有路径,那么l到m也有路径(l<m<r),问最少加多少条 ...
- IAR运行程序警告:undefined behavior: the order of volatile accesses is undefined in this statement
运算符两边都是volatile变量的警告,将IAR设置如下即可:
- python的gRPC示例
参考URL: https://segmentfault.com/a/1190000015220713?utm_source=channel-hottest gRPC 是一个高性能.开源和通用的 RPC ...
- c# WF 第9节 button控件
本节内容: 1:实现实例 1:实现实例 每当点击一个确定就出现一个窗口,当点击最后的确定时,关闭所有的窗口. 实现: 步骤1:对Form 1 -Form3 依次进行如下设置: 步骤2 : 当每点击一个 ...