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. GridView设置右键菜单

    一.控件设定: 1.页面添加ContextMenuStrip控件: 2.ContextMenuStrip添加菜单项: 3.gridControl找到ContextMenuStrip属性,设置成刚添加C ...

  2. Coding 账户与 本地 Git 客户端的配置

    1.先创建cooding账户 ,注册地址:https://coding.net/ 2.创建好账户后登陆,在个人设置中  验证邮箱 和 验证手机 (邮箱很重要配置需要用到) 3.安装git 客户端 (在 ...

  3. java设置Cookie

    public static void setCookie(HttpServletResponse response, String key, String value){ Cookie cookie ...

  4. jquery isDefaultPrevented()方法 语法

    jquery isDefaultPrevented()方法 语法 作用:isDefaultPrevented() 方法返回指定的 event 对象上是否调用了 preventDefault() 方法. ...

  5. Nowcoder Two Graphs ( 图的同构 )

    题目链接 题意 : 给出两幅顶点数一样的图 G1.G2 ,现在要求在 G2 中选出一些边集.使之构成一幅新的图 G ,要求 G 要与 G1 同构,现在要你统计合法的 G 有多少种 分析 :  图的同构 ...

  6. [HG]小G坐电梯 题解

    C 小G坐电梯 题目描述 小G来到了著名的某大厦.大厦一共有n层,初始的时候小G在第 A 层. 小G特别想去B层小 M 的办公室看一看,然而因为安保原因,B层已经被封锁无法进入. 但是小G既然来了,就 ...

  7. 在vue项目中添加一个html页面,开启本地服务器

    在vue项目里新增一个不需要登录的页面,那么我只能新增一个html页面了,不经过路由,直接在浏览器输入路径打开,那么就需要用到本地服务器, 1.vue里面的html页面最好放过在public文件夹里面 ...

  8. Unity3D_(插件)使用Camera渲染制作Minimap小地图

    制作小地图:使用Camera渲染出来Render Texture 原理:使用摄像机从上到下获得场景游戏物体,摄像机Culling Mask渲染层级可设置是否需要在小地图上展示游戏物体,将摄像机获得的场 ...

  9. localhost与127.0.0.1的区别是什么?

    localhost与127.0.0.1的区别是什么?都代表本地服务器 相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析. 看来这个问题还有人不清楚,其实这 ...

  10. 高效的js原生代码

    1.遍历元素 //不推荐 var element = document.getElementsByTagName('div'); for(var i=0; i<element.length; i ...