CSRF : Cross-site request forgery  跨站请求伪造
 
所用到的工具:
Firefox浏览器及其插件     HackBar(快速构造URL)     和     Tamper Data(抓包改包)  温馨提示Tamper Data安装好后位于火狐浏览器的菜单栏-工具内。菜单栏需在浏览器窗体顶部右键选中后展示,最新版默认为隐藏状态。
 
 
 
初始信息:
DVWA默认账户     admin     密码     password
登录后先通过DVWA Security页面设置DVWA的安全等级,Low最低。若发生安全等级设置失败的情况可清理浏览器的历时记录、选中并删除cookie信息。重启浏览器后再进行尝试。
图1
正常业务流程效果及发包信息
 
LOW
使用Tamper Data抓包
图2
所发送的数据包URL
?password_new=password
&password_conf=password
&Change=Change#
 
在Tamper Data响应数据包上单击右键点击reply in  browser 重放
图3
弹出如图所示窗体  把password相关两处字段修改为test后提交。网页显示成功修改密码结果。
退出账户重新登录测试新修改的密码test可用。证明存在CSRF漏洞,可以伪造用户修改密码的请求。
 
构造CSRF页面
<html>
<head>
<meta charset="utf-8">
<title>CSRF测试</title>
</head>
<body>
<input type="hidden" name="password_new" value="password" />
<input type="hidden" name="password_conf" value="password" />
<input type="hidden" name="Change" value="Change" />
<input type="submit" value="下载美女图片" />
</form>
</body>
</html>
 
利用下载美女图片按钮引诱受害者点击^_^!  不过真实情况一般使用frame嵌套静默执行让受害者察觉不到页面跳转
点击下载图片按钮后即发送修改密码请求包并跳转至密码修改成功页面。
 
图4
 
medium.
 
图5
尝试使用low等级所构造的页面已无效。抓包对比发现正常报文和CSRF页面报文区别在于referer参数。
使用Tamper Data的改包功能拦截修改CSRF测试页面所生产的请求包,发现referer参数中包含被攻击站点的域名(此处为IP地址)即可。
我们在用于攻击的站点127.0.0.1下新建一个目录192.168.3.88使得受害者浏览我们构造的CSRF页面时发出的请求包所包含的referer信息内包含192.168.3.88字段,以使得被攻击服务器接受我们的密码修改请求。
 
图6
 
 
high.
发现low等级和medium等级构造的页面都失效了,使用Tamper Data抓包发现正常的请求包中出现了token字段。
我们构造的页面无法获取到token字段信息。当同一网站存在XSS漏洞是存在利用XSS漏洞来伪造请求的可能。后续将进行补充。
 
impossible.
安全的等级,这一等级修改密码需要填写当前用户正在使用的密码。彻底堵住了漏洞。
另外可以使用验证码,不过会降低用户体验。
 
 
参考资料:邪恶的CSRF
 

CSRF-DVWA_1.9-笔记的更多相关文章

  1. CSRF漏洞实战靶场笔记

    记录下自己写的CSRF漏洞靶场的write up,包括了大部分的CSRF实战场景,做个笔记. 0x01 无防护GET类型csrf(伪造添加成员请求) 这一关没有任何csrf访问措施 首先我们登录tes ...

  2. DVWA笔记之三:CSRF

    CSRF与XSS不同,它称为跨站请求伪造,它是利用其他页面的恶意脚本来加载访问或操作存在CSRF的漏洞的可信网站. 1.Low级别 核心代码如下: <?php  if( isset( $_GET ...

  3. csrf学习笔记

    CSRF全称Cross Site Request Forgery,即跨站点请求伪造.我们知道,攻击时常常伴随着各种各样的请求,而攻击的发生也是由各种请求造成的. CSRF攻击能够达到的目的是使受害者发 ...

  4. 学习笔记之csrf

    CBV 添加 csrf 第一种: 指定方法方面添加 装饰器 @memethod_decorator(xxx) 第二种 全部添加: 注意 在类名前: @method_decorator(xxx,name ...

  5. Python Django框架笔记(四):数据分页和CSRF跨站点请求伪造

    (一)数据分页  可以参考  https://docs.djangoproject.com/en/2.0/topics/pagination/ 模板:如果只要显示 1.2.3.4.5.6....的话, ...

  6. PHP代码审计笔记--CSRF漏洞

    0x01 前言 CSRF(Cross-site request forgery)跨站请求伪造.攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻 ...

  7. 信息安全学习笔记--CSRF

      一.CSRF简介   CSRF(Cross-site request forgery)跨站请求伪造,也被称为“one click attack”或者“session riding”,通常缩写为CS ...

  8. CSRF学习笔记之CSRF的防御【00x4】

    referer 验证 根据HTTP协议,在http请求头中包含一个referer的字段,这个字段记录了该http请求的原地址.通常情况下,执行转账操作的post请求www.bank.com/trans ...

  9. CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】

    Hight.php完整代码如下: <?php if (isset($_GET['Change'])) { // Turn requests into variables $pass_curr = ...

  10. CSRF学习笔记之CSRF的攻击与防御以及审计【00x1 】

    +++++++++++++++++++++++++++ + 00x1 实现简单的攻击 + 00x2 代码审计漏洞的源头 +++++++++++++++++++++++++++ 00x1 简单的csrf ...

随机推荐

  1. 赋值语句C++(面宝P29)

    ; void main(){ int i=i; } 解析:main里面的i从声明的那一刻就是可见的了,所以main里的i不是1,而是一个未定义的值. 这段代码ctrl+F7编译能通过(有警告如下) c ...

  2. Linux 开启相关端口及查看已开启端口

    防火墙层面:   /sbin/iptables -I INPUT -p tcp --dport 8011 -j ACCEPT #开启8011端口  /etc/rc.d/init.d/iptables ...

  3. OpenCV笔记(3)(Canny边缘检测、高斯金字塔、拉普拉斯金字塔、图像轮廓、模板匹配)

    一.Canny边缘检测 Canny边缘检测是一系列方法综合的结果.其中主要包含以下步骤: 1.使用高斯滤波器,平滑图像,滤除噪声. 2.计算图像中每个像素点的梯度强度和方向. 3.应用非极大值抑制(N ...

  4. CF 680D 堆塔

    D. Bear and Tower of Cubes time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  5. unittest详解(六) 断言

    我们在执行测试用例时,怎么来判断这条用例是否通过呢?唯一的办法就是拿实际结果和预期结果进行比较,如果一致用例就是通过的,否则用例就是失败的.在python中这种比较的方法就叫做断言,unittest框 ...

  6. 堤堤云海外IDC

    http://www.ddyidc.com 堤堤云网络全球互联 堤堤云网络致力为客户提供优质的海外服务器租用服务,各种专线解决方案. 产品分类:服务器租用.IP租用.托管.专线传输.防御.优质回国CN ...

  7. [CSP-S模拟测试]:五子棋(模拟)

    题目传送门(内部题122) 输入格式 输入文件第一行为一个正整数$n$,表示双方总共下了多少步棋. 接下来$n$行,输入文件每行两个正整数.第$i$行的两个数$x,y$表示第$i$步的棋子下在了第$x ...

  8. 网页中JS函数自动执行常用三种方法

    (1)最简单的调用方式,直接写到html的body标签里面:        <body onload="myFunction()"></body>      ...

  9. JS 类和继承

    function User(name, pass) { this.name = name this.pass = pass } User.prototype.showName = function ( ...

  10. TCP定时器 之 FIN_WAIT_2定时器

    当TCP主动关闭一端调用了close()来执行连接的完全关闭时会执行以下流程,本端发送FIN给对端,对端回复ACK,本端进入FIN_WAIT_2状态,此时只有对端发送了FIN,本端才会进入TIME_W ...