4-CSRF漏洞渗透与防御
1、什么是CSRF漏洞
Cross-Site Request Forgery
跨站请求伪造
从一个第三方的网站,利用其他网站生效的cookie,直接请求服务器的某一个接口,导致攻击发生!

2、CSRF案例分析
Gmail CSRF漏洞(设置邮件转发)
Weibo CSRF漏洞(自动关注账号)
2.1 CSRF漏洞危害
例如:
- 修改账号信息
- 利用管理员账号,上传木马文件
- 传播蠕虫病毒(点击、扩散、点击......)
- 和利用其它手段配合,实现攻击,比如XSS、SQL注入
2.2 CSRF和XSS区别

2.3 CSRF的payload1
2.3.1 通过图片的img src属性,自动加载,发起GET请求:
<img src="http://xxx/xxx/xx.php?nameid=2002&amount=1000" width="0" height="0">
2.3.2 构建一个超链接,用户点击以后,发起GET请求
<a href="http://xxx/xxx/xx.php?nameid=2002&amount=1000" taget="_blank"> 小姐姐在线视频聊天!! </a>
2.3.3 构建一个隐藏表单,用户访问,自动提交,发起POST请求
<from action="http://xxxx/withdraw" method=POST>
<input type="hidden" name="account" value="xiaoming" />
<input type="hidden" name="amount" value="1000" />
<input type="hidden" name="to" value="jiangang" />
</form>
<script> document.forms[0].submit(); </script>
3、CSRF漏洞挖掘
3.1 怎么确定一个接口地址有没有CSRF漏洞呢?
答:在第三方网站,发起目标网站接口的请求,看是否成功
3.2 具体怎么操作呢?
答:在目标网站,正常输入数据,通过抓包获取调用的接口以及参数
3.3 有没有工具可以使用?
答:BurpSuite、CSRF Tester、https://github.com/s0md3v/Bolt 、云产品
3.4 示例
传递参数,然后BP抓包,右键Engagement tools -> Generate CSRF Poc
把HTML代码复制出来,保存在本地,然后在浏览器中打开
4、CSRF漏洞防御
4.1 防御思路
- 思路一:我们能不能区分一个请求是来自于自己的前端页面,还是第三方的网站?
- 思路二:怎么让自己的前端页面和伪造的请求变得不一样呢?
4.2 思路一:HTTP Request Header请求头
Referer字段:引用页;引荐;来源页面
作用:跟踪来源,比如访问统计、广告效果1
可以知道用户是从哪个搜索引擎过来的,搜索了那些信息
实现:在后端代码中加入拦截器/过滤器,判断Referer值
如:DVWA中的Medium防护
绕过:抓包,修改Referer中的值进行伪造
4.3 思路二:user_token
在请求中加入一些随机的字段(第三方不知道,也猜不出来),让第三方网站无法伪造请求
实现:DVWA中的Hight防护
1、在用户使用用户名密码登录,服务端下发一个随机的token字段给客户端,并且服务端把这个字段保存在session中。
2、客户端把这个token保存起来,放到隐藏字段,不能放在cookie中!
(CSRF的防护,就是即使你有cookie也不能让你访问成功!)
3、用户在登陆状态下,在之后访问的时候,都要携带这个token字段
4、服务器从session中拿出token值进行对比,如果一致,说明请求合法。
5、用户退出,session销毁,token失效
绕过:如果目标网站还存在xss漏洞,可以利用xss漏洞获取某个字段的值
payload = <iframe src="../csrf" onload=alert(frames[0].document.getElementsByName('user_token')[0].value)>
4.4 二次验证
请输入当前密码!
在输入新密码!
短信验证
验证码
ip验证
浏览器的保护措施 -> referrer policy -> strict-origin-when-cross-origin
当你在第三方域名调用另一个域名的接口,他会把参数干掉
4-CSRF漏洞渗透与防御的更多相关文章
- 用代码来细说Csrf漏洞危害以及防御
开头: 废话不多说,直接进主题. 0x01 CSRF介绍:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session ...
- CSRF 漏洞原理详解及防御方法
跨站请求伪造:攻击者可以劫持其他用户进行的一些请求,利用用户身份进行恶意操作. 例如:请求http://x.com/del.php?id=1 是一个删除ID为1的账号,但是只有管理员才可以操作,如果攻 ...
- CSRF攻击原理以及防御
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...
- CSRF 攻击原理和防御方法
1. CSRF攻击原理 CSRF(Cross site request forgery),即跨站请求伪造.我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息 ...
- CSRF的攻击与防御(转)
add by zhj:CSRF之所有发生,是因为http请求中会自动带上cookies,我的解决办法是:前端不要将数据放在cookie中,而是放在其它本地存储 (HTML5中称之为Web Storag ...
- CSRF之攻击与防御
0x01 什么是CSRF攻击 CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/PO ...
- CSRF 漏洞测试
CSRF简介: CSRF中文名:跨站请求伪造,英文译为:Cross-site request forgery,CSRF攻击就是attacker(攻击者)利用victim(受害者)尚未失效的身份认证信息 ...
- 从Java的角度修复CSRF漏洞
漏洞挖掘中,说实话挖过最多的漏洞就属CSRF漏洞了,提交CSRF漏洞很多次,绕过CSRF防御进行攻击也有很多次.CSRF漏洞是一个很容易引发的问题,今天我从Java的角度来说下这个安全漏洞的修复方案. ...
- PHP代码审计笔记--CSRF漏洞
0x01 前言 CSRF(Cross-site request forgery)跨站请求伪造.攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻 ...
- CSRF漏洞原理说明与利用方法
翻译者:Fireweed 原文链接:http://seclab.stanford.edu/websec/ 一 .什么是CSRF Cross-Site Request Forgery(CSRF),中文一 ...
随机推荐
- axis2添加拦截器
项目背景: 2002年的某保险老项目,项目是部署了多个服务器,每个服务器有2到多个服务(每个服务的日志对应一个日志文件),外部对接是通过F5分发到随机服务器上来进行访问,正式出现问题或者看一些问题就需 ...
- Angular 18+ 高级教程 – HttpClient
前言 HttpClient 是 Angular 对 XMLHttpRequest 和 Fetch 的封装. HttpClient 的 DX (Developer Experience) 比 XMLHt ...
- JavaScript – Decimal
前言 之前就写过一篇 decimal, double, float, 但有点杂乱, 这篇把 JS 的部分独立写成一篇整理版. 参考 JavaScript 浮点数运算的精度问题 关于JavaScript ...
- MySQL服务无法启动 服务没有报告任何错误
安装MYSQL后 启动服务 出现错误 在启动MySQL服务时 出现该报错 解决方法: 将原本在MySQL根目录下的my.ini文件移动到bin目录下(my.ini文件参考:这里) 删除根目录下的 ...
- MyBatis——案例——添加
添加 1.编写接口方法:Mapper接口 参数:除了 id 之外的所有数据 结果:void /** * 添加 */ void add(Brand brand); 2.编写SQL ...
- gadget驱动框架(一)
之前在linux移植udc驱动的时候,没有深入的理解整个gadget驱动框架,现在重新再屡屡gadget驱动,以便后期再次学习.本系列的文章以虚拟串口进行分析,相关源码均是基于linux4.19.12 ...
- 2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨
奎钩粲粲光华动,群玉森森气象新.国产数据库行业在经历了2021年的躬行实践之后,产品.服务.生态等取得了蓬勃发展.从2022年1月份的国产数据库流行度排行榜上,我们可以看到,相较于去年12月份,榜单上 ...
- 更强的RAG:向量数据库和知识图谱的结合
传统 RAG 的局限性 经典的 RAG 架构以向量数据库(VectorDB)为核心来检索语义相似性上下文,让大语言模型(LLM)不需要重新训练就能够获取最新的知识,其工作流如下图所示: 这一架构目前广 ...
- KubeSphere 助力提升研发效能的应用实践分享
作者:卢运强,主要从事 Java.Python 和 Golang 相关的开发工作.热爱学习和使用新技术:有着十分强烈的代码洁癖:喜欢重构代码,善于分析和解决问题.原文链接. 我司从 2022 年 6 ...
- KubeSphere 接入外部 Elasticsearch 最佳实践
作者:张坚,科大讯飞开发工程师,云原生爱好者. 大家好,我是张坚.今天来聊聊如何在 KubeSphere 中集成外置的 ES 组件. KubeSphere 在安装完成时候可以启用日志组件,这样会安装 ...