CSRF(Cross-Site Request Forgery)跨站点请求伪造,这种攻击方式的特点是:攻击者盗用你的身份,以你的名义进行某些非法操作。CSRF能够使用你的帐户发送邮件,获取你的敏感信息,甚至盗走你的财产。

当我们打开或登录某个网站后,在浏览器与网站之间将会产生一个会话,在这个会话没有结束时,你就可以利用你的权限对网站进行某些操作,如:发表文章、发送邮件、删除文章等。当这个会话结束后,你再进行某些操作的时候,Web应用程序可能会提示“您的会话已过期”、“请重新登录”等提示。

比如当我们登录网上银行后,浏览器就已经与可信的站点建立了一个经过认证的会话。之后,所有通过这个经过认证的会话发送请求,都被视为可信的动作,例如转账、汇款等操作。当我们在一段时间内不进行操作后,经过认证的会话可能会断开,再次进行转账、汇款操作时,这个站点可能会提示你:您的身份已过期,请重新登录、会话已结束等信息。

CSRF攻击正是建立在会话之上的,比如当你登录了网上银行,正在进行转账业务,这时你的某个QQ好友(攻击者)发来一条消息(URL),这条消息是攻击者精心构造的转账业务代码,而且与你所登录的是同一家网络银行,你可能认为这个网站是安全的,然而当你打开了这条URL后,你帐户中的余额可能会全部丢失。

下面我们就来实施一次CSRF攻击。进入DVWA,选择low级别,可以看到这里的CSRF测试是要进行更改管理员密码的操作。默认的管理员密码是password,为了能够直观地查看管理员密码,我们在开始菜单中找到AppServ,执行其中的“MySQL Command Line Client”,进入MySQl操作界面。执行“use dvwa;”命令打开dvwa数据库,执行“select user,password from users where user = ‘admin’;”命令,可以查看到目前的admin用户密码的md5值。

wKiom1Z7ObLylRavAAAtLNBkEVQ023.jpg

下面我们在CSRF的页面中将管理员密码改为123,可以查看到md5值随之改变。

wKioL1Z7OdHjPH63AAA3TzwWA0w443.jpg

此时我们仔细观察浏览器地址栏中的URL:

http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change#

如果黑客获知了这个URL,那么是否就可以随意更改管理员密码呢?比如构造下面这个URL,是否就可以将管理员密码修改为abc?

http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=abc&password_conf=abc&Change=Change#

如果黑客是在自己的电脑上直接执行这个URL,那么肯定是无效的。原因是必须要具有管理员的权限,才可以修改密码。也就是前面所介绍的,必须要先以管理员身份与网站之间建立好一个会话之后,才可以执行修改密码的操作。

那么黑客就可以构造一个网页,将上面这段代码放入网页中,然后诱骗管理员打开这个页面,如果此时管理员恰好正在对网站进行操作,在管理员的浏览器与网站之间建立好了会话,那么上面这段代码就会生效。

比如我们在一台已经搭建好Web环境的虚拟机(IP地址192.168.80.132)中编写一个名为csrf.html的网页,代码如下:

<img src=mm.jpg>

<iframe src="http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=abc&password_conf=abc&Change=Change#" frameborder="0" ;0" />

然后在已经登录进入DVWA的状态下,在本地的浏览器中打开这个网页http://192.168.80.132/csrf.html:

wKioL1Z7OfnCI9DyAAFJY4qQiAA923.jpg

此时就会发现管理员密码已经被自动修改为了abc:

wKioL1Z7OgnRoRgIAAA1Qif9xfc463.jpg

这就是一次典型的CSRF攻击,由此可见CSRF的两个主要特点:

  • CSRF攻击建立在浏览器与Web服务器的会话中;

  • 欺骗用户访问URL。

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1727756

DVWA系列之17 CSRF攻击介绍与实施相关推荐

  1. 前端安全系列(二):如何防止CSRF攻击?

    背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,又时常遭遇网络劫持 ...

  2. 「安全系列之CSRF」如何防范csrf攻击

    背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,又时常遭遇网络劫持 ...

  3. 前端安全系列:如何防止CSRF攻击?

    背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,又时常遭遇网络劫持 ...

  4. 所有表单对象_Laravel 表单方法伪造与 CSRF 攻击防护

    1.表单方法伪造 有时候,我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式,而 HTML 表单仅支持 GET 和 POST 两种方式,如果要使用其他的方式,则需要自己来定义实现. HTTP ...

  5. PHP开发中csrf攻击的简单演示和防范

    CSRF的全名为Cross-site request forgery,它的中文名为 跨站请求伪造(伪造跨站请求[这样读顺口一点])CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻 ...

  6. SpringBoot 如何防御 CSRF 攻击?

    作者 | 江南一点雨      责编 | 欧阳姝黎 CSRF 就是跨域请求伪造,英文全称是 Cross Site Request Forgery. 这是一种非常常见的 Web 攻击方式,其实是很好防御 ...

  7. CSRF攻击实验 ——合天网安实验室学习笔记

    实验链接 本实验以PHP和Mysql为环境,展示了CSRF攻击的原理和攻击过程.通过实验结果结合对攻击代码的分析,可更直观清晰地认识到Web安全里这种常见的攻击方式. 链接:http://www.he ...

  8. 【应用安全之xss二】xss攻击介绍和防范(前端)

    本文我们会讲解 XSS ,主要包括: XSS 攻击的介绍 XSS 攻击的分类 XSS 攻击的预防和检测 XSS 攻击的总结 XSS 攻击案例 XSS 攻击的介绍 在开始本文之前,我们先提出一个问题,请 ...

  9. 前端安全之CSRF攻击

    个人博客 文章目录 注意点 几种常见的 CSRF 攻击: 1. GET 类型的 CSRF 攻击 2. POST 类型的 CSRF 攻击 3. 链接类型的 CSRF CSRF 特点 防护策略 同源检测 ...

最新文章

  1. Centos7设置Tomat开机自启
  2. Js取float型小数点后两位数的方法
  3. 微信小程序实现点击不同view标签,移动到一行
  4. OpenMP之双重for循环并行计算改进
  5. SSM-水果商城-导入项目-学习-2
  6. Kubernetes Jobs - 运行处理任务指南
  7. 合并出错:svn Working copy and merge source not ready for reintegration
  8. IDEA maven库里 添加自定义jar包
  9. SVN安装和使用详细教程
  10. 典型相关分析(CCA)原理及例子
  11. 软件项目经理应具备的素质和条件_软件项目经理的素质能力要求
  12. mysql 加锁 索引_MySQL 加锁处理分析
  13. 各型号iPhone的屏幕参数 逻辑分辨率 物理分辨率 - iOS Device Display Summary - 更新到iPhone 13系列
  14. 微信怎样设置聊天显示的字体大小?简单技巧!微信如何调整字体的大小?
  15. 链游的趋势和前景:团队开始专注于建设 进入 6-12 个月重新整合期
  16. 除了高额房贷,美国购房者仍面临其他“财政危机”
  17. 虚拟机创作ubuntu18的ISO镜像
  18. FP-Tree频繁模式树算法
  19. java交换kv的值_以.kv语言描述OSC
  20. 2022必撸八股!198道K8s/Docker/DevOps面试真题大汇总

热门文章

  1. Linux文本界面设置网络,fedora17下通过文本界面配置网络
  2. 栈判断字符串是否为中心对称_数据结构和算法入门之判断括号字符串的合法性(valid parentheses)...
  3. 子元素是字典列表转成字典
  4. 通过正则表达式分句提取中文内容
  5. mysql中sql命令大小写吗_sql语句大小写有关系吗?
  6. openvino与cv2不兼容怎么办_焓湿图软件电脑不兼容怎么办
  7. 四层负载均衡与七层负载均衡
  8. Json格式的netconf转成NormalizedNode
  9. 【面向对象】基本概念
  10. 2021下半年软考分数线会有变动吗?