网络安全-跨站请求伪造(CSRF)的原理、攻击及防御
目录
简介
原理
举例
漏洞发现
链接及请求伪造
CSRF攻击
不同浏览器
未登录状态
登录状态
代码查看
工具
防御
用户
程序员
简介
跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
原理
构造链接,黑客在自己的网站或邮箱等引诱已登录用户点击按钮等,来请求想要攻击的网站,浏览器会携带已登录用户的Cookie去访问黑客想要攻击的网站。CSRF攻击利用网站对于用户网页浏览器的信任。
举例
漏洞发现
使用靶机:pikachu
使用vince 123456登录
点击修改个人信息
http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=13098763456&add=beijing&email=vince@qq.com&submit=submit
抓包发现链接如上,存在CSRF漏洞。
链接及请求伪造
click.html
<html><head><title>澳门皇家赌场上线啦!!!</title></head><body><a href="requestforgery.html">美女荷官免费送100万,点击领取!!!</a></body>
</html>
requestforgery.html
<html><head><title>领奖平台!!!</title></head><body><p>请邮箱查收</p><iframe/ src="http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=13098763456&add=shanghai&email=vince@qq.com&submit=submit" frameborder="0" width="0px"></body>
</html>
修改地址即add参数为shanghai。
CSRF攻击
不同浏览器
pikachu登录是使用火狐,以下点击是使用谷歌。
界面刷新后没有问题
未登录状态
点击退出登录
使用火狐浏览器(网站同一浏览器)进行访问。
登录后查看,未改变。
登录状态
登录后重复上述操作,攻击成功!!!
代码查看
pikachu\vul\csrf\csrfget\csrf_get_login.php
使用session保存的,没有验证码或token。
工具
deemon
csrftester与burpsuite
csrf-scanner(闭源)
防御
用户
通过简介就可以看出用户可以做的防御措施
- 不登录(用户使用网站应该会登录,登录时可以更换浏览器或选择浏览器模式)
- 不点击恶意链接
- 使用特殊网站时单独用一个浏览器
程序员
- 验证码
这个比较常见,我就不多说了,目前各种验证码都有可能通过机器学习等方式进行破解。
- referer
请求头带的,可以标识来源。
- token
token是常用的一种方式,通过设置过期时间进行刷新,在文章django-rest-framework-jwt与django-rest-framework-simplejwt的对比及使用中有对比python中两种JWT包,当时博主在学REST API。
- 二次验证
在进行修改密码,钱财业务等敏感操作时再次核验身份,通过手机短信,面部识别等
-----------------------------------------2021年9月1日更新------------------------------------------
- Same Site Cookie
由Google提出的草案,在原有的Cookie中,新添加了一个SameSite
属性,它标识着在非同源的请求中,是否可以带上Cookie,它可以设置为3个值,分别为:
- Strict
- Lax
- None
CORS与CSRF
-------------------------------------2021年9月1日更新完毕---------------------------------------
若存在xss攻击,则没有必要防御CSRF了,因为网站已经不安全,可以通过XSS获取cookie、token等,换浏览器或在浏览器层面防御也就没有意义了。
b站视频:恶意链接是怎么对你攻击的(CSRF讲解)
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。
网络安全-跨站请求伪造(CSRF)的原理、攻击及防御相关推荐
- 带你刷burpsuite官方网络安全学院靶场(练兵场)之客户端漏洞——跨站请求伪造(CSRF)专题
介绍 PortSwigger是信息安全从业者必备工具burpsuite的发行商,作为网络空间安全的领导者,他们为信息安全初学者提供了一个在线的网络安全学院(也称练兵场),在讲解相关漏洞的同时还配套了相 ...
- 【安全牛学习笔记】CSRF跨站请求伪造***漏洞的原理及解决办法
CSRF跨站请求伪造***漏洞的原理及解决办法 CSRF,夸张请求伪造漏洞 漏洞的原理及修复方法 1.常见的触发场景 2.漏洞原理:浏览器同源策略 3.DEMO 4.漏洞危害 5.如何避免&修 ...
- 浅谈跨站请求伪造(CSRF)
浅谈跨站请求伪造(CSRF) 这里简单的记录一下CSRF漏洞~~ 什么是CSRF? CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可 ...
- 跨站请求伪造(CSRF)-简述
跨站请求伪造(CSRF)-简述 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 ...
- django16: csrf跨站请求伪造/CSRF相关装饰器
CSRF 即跨站请求攻击 跨站请求伪造csrf钓鱼网站本质搭建一个跟正常网站一模一样的页面用户在该页面上完成转账功能转账的请求确实是朝着正常网站的服务端提交唯一不同的在于收款账户人不同给用户书写for ...
- csrf防御 php,跨站请求伪造CSRF的防御实例(PHP版本)
跨站请求伪造CSRF的防御:One-Time Tokens(不同的表单包含一个不同的伪随机值) 在实现One-Time Tokens时,需要注意一点:就是"并行会话的兼容".如果用 ...
- Nginx配置valid_referer解决跨站请求伪造(CSRF)
Nginx配置valid_referer解决跨站请求伪造(CSRF) 文章目录 Nginx配置valid_referer解决跨站请求伪造(CSRF) 漏洞说明 漏洞描述 危害等级 修复建议 漏洞复现 ...
- 跨站请求伪造CSRF防护方法
CSRF(Cross-site request forgery跨站请求伪造,也被称成为"one click attack"或者session riding,通常缩写为CSRF或者X ...
- 跨站请求伪造(CSRF)+ 跨站脚本攻击(XSS)
一.CSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 X ...
最新文章
- linux中js文件有乱码,解决node.js读取文件时中文乱码问题
- 备份MySQL数据库的方法
- Sublime Text 的快捷方式的用法
- list foreach方法_Java集合三兄弟List,Set,Map你分的清楚吗?
- 【转】HTTP协议中PUT和POST使用区别
- VMware Horizon虚拟桌面工具箱2.0-审计,远程协助,控制台,电源
- python第七章_python 第七章 模块
- C++新特性探究(五):for循环、范围for语句
- [Swift]LeetCode921.使括号有效的最少添加 | Minimum Add to Make Parentheses Valid
- 将长表格图片转Excel表格
- VS好用系列之选择性粘贴
- cygwin 复制粘贴
- html渲染json的插件,lottieJS(Json动画的使用)
- 旅游社交APP开发解决方案
- 想考数据库工程师?你需要了解这些
- 用c语言统计给定的n个数中,负数、零和正数的个数。
- ITEYE手机阅读器更新
- 解压“加密”压缩包办法
- MySql-字符串拼接函数
- UGUI开发简单音乐播放器之一