CSRF(Steam的链接不用随便点)
漏洞详解
CSRF
漏洞原理:
攻击者会冒充或利用用户本人对web服务器发送请求,然而web服务器无法识别该请求是否为用户本人所发送,因此造成各种危害。
漏洞利用过程:
1)首先需要用户登录了上网站,并产生了cookie
2)构造恶意链接
3)在用户还保持着登录状态时,去诱导用用户点击链接
4)链接中的恶意脚本在用户的浏览器上执行,进而达到攻击者的目的
漏洞危害:
攻击者会利用用户的名义去进行发送邮件,转账等各种不利于用户本人的操作,这对于受害者的名誉以及财产都有着损失
CSRF分类:
1)get型
get很好理解,如果是get请求,URL中就会有参数显示,这里的get也是一样
如:
https://域名/login.php?id=admin&password=123456
在诱导用户admin点击该链接,他的密码就会被改为123456了
案例:(都是用pikachu靶场)
初始信息

构造一个链接帮我的战队投票
吸引用户登录

点击后

就成功将性别修改为joker了
2)post
就是URL中不会显示参数,post 中,攻击者会对网站进行抓包,并且分析整个数据包的构造,然后把相关的内容(如密码)修改为自己想要的参数,然后同样是诱导用户去点击我们精心准备的 WEB 界面
案例:
这是初始信息

然后打开bp,在点击submit修改完成
得到

看到是post型
点击

将我们要修改的性别的value改为joker
然后点击Copy HTML
得到
将他放进你要构造的链接里面,得到

用户在点击后,性别就会变为joker
其实steam里面的链接也是一样,只不过他们的链接里面嵌入了恶意脚本,来代替你发送请求
CSRF的防护:
1)设置二级密码
如用户发送转账等较为重要的请求时,应输入二级密码进行确认,如微信、支付宝的支付密码,和王者荣耀的二级密码
2)验证请求中的reference
在请求在有一个参数,reference,它可以知道你请求的来源,如你在百度搜索我为什么这么帅,点击第一个结果,那么那个请求的reference就是www.baidu.com
为了防范CSRF那么就要对重大请求的每一步都有进行reference验证
3)Token验证
Token含义:
用户在成功登录后,服务器端会生成一串字符串,也就是Token,并发送给客户端,可以由前端指定存放到localStorage、sessionStorage或cookie中,用于用户在每次请求的时候带上 Token 证明自己的合法地位
如果我们点击了恶意链接,触发了向服务器端发送请求,会自动携带我们的cookies去请求
而如果设置了Token就不会,之所以怎么说是因为Token是一种自定义的字符串,没有自主的功能,因此由浏览器发送的请求是不会自动携带Token的,当然又有一点前提的,不能放在cookies
CSRF(Steam的链接不用随便点)的更多相关文章
- 如何添加商*通新对话快捷链接?不用js代码
我们在使用商务通一般都是在页面中嵌入一段js代码,如果您是js洁癖,是不是在想着如何直接用一张小图加上商*通新对话链接来代替呢?好,那就一起来研究一下吧. 首先,我们打开一个有商*通js弹窗的页面,比 ...
- 替换a链接的href和title
新项目准备验收,客户检测网页有安全隐患,说是当前网页使用“http://”有风险,指定外部链接不用“http://”怎么整…… 后来想到用JS替换字符串去操作,找了半天总算找到合用的,最终是用JQ去更 ...
- [视频]K8飞刀 Discuz csrf Exp教程
[视频]K8飞刀 一键构造Discuz csrf Exp教程 链接:https://pan.baidu.com/s/1tVseP_ZBneKpXQueIncPcA 提取码:6qnh
- Java 安全之:csrf攻击总结
最近在维护一些老项目,调试时发现请求屡屡被拒绝,仔细看了一下项目的源码,发现有csrf token校验,借这个机会把csrf攻击学习了一下,总结成文.本文主要总结什么是csrf攻击以及有哪些方法来防范 ...
- Django框架(十二)-- 中间件、CSRF跨站请求伪造
中间件 一.什么是中间件 请求的时候需要先经过中间件才能到达django后端(urls,views,templates,models) 响应的时候也需要经过中间件才能到达web服务网关接口 djang ...
- CSRF绕过后端Referer校验
CSRF绕过后端Referer校验分正常情况和不正常的情况,我们这里主要讨论开发在写校验referer程序时,不正常的情况下怎么进行绕过. 正常情况 正常的情况指服务器端校验Referer的代码没毛病 ...
- CSRF的几种防御方法的利弊分析
本文直接从防御方式开始讨论,防御CSRF有4种方法: 使用POST替代GET 检验HTTP Referer 验证码 Token 使用POST替代GET 一些程序员在开发的时候都是用GET.POST通用 ...
- 【剑指offer】65. 不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法 知识点:数学:位运算 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."* ...
- pikachu CSRF
CSRF简介 CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)然后欺骗目标用户进行点击, ...
- CSS 继承深度解析
FROM ME: 之前在研究前端性能优化的时候,就有学习关于CSS中“善用CSS中的继承”. 原文:CSS Inheritance, The Cascade And Global Scope: You ...
随机推荐
- Stable Diffusion WebUI Model 加载个人笔记
参考1:https://www.bilibili.com/read/cv20039815 参考2:https://blog.cmyr.ltd/archives/e740aac.html 服务器:阿里云 ...
- Django笔记七之ManyToMany和OneToOne介绍
本文首发于本人微信公众号:Hunter后端 原文链接:Django笔记七之ManyToMany和OneToOne介绍 ManyToMany 是一种多对多的关系,在用途和使用方法上和外键 Foreign ...
- 数据挖掘机器学习[七]---2021研究生数学建模B题空气质量预报二次建模求解过程:基于Stacking机器学习混合模型的空气质量预测{含码源+pdf文章}
相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...
- org.apache.hadoop.security.AccessControlException: Queue root.online already has 0 applications, cannot accept submission of application
org.apache.hadoop.security.AccessControlException: Queue root.online already has 0 applications, can ...
- SpringCloud-Config配置中心搭建保姆级教程
一.分布式配置中⼼ 在使⽤微服务架构开发的项⽬中,每个服务都有⾃⼰的配置⽂件(application.yml),如果将每个服务的配置⽂件直接写在对应的服务中,存在以下问题: 1. 服务开发完成之后,需 ...
- WinForm之ComboBox实现模糊查询
ComboBox实现模糊查询 第一步:在Form_Load事件中绑定数据源 第二步:写一个方法,返回一个List<string>类型的集合来存储控件中的Items 第三步:在Form_Lo ...
- centos环境下MySQL8.0.25离线升级至8.0.32
环境 centos7 mysql8.0.25 下载新版本mysql 下载地址:https://dev.mysql.com/downloads/mysql/ 升级 备份数据 先保存原始数据,进入mysq ...
- 手把手教你-把Kali Linux系统安装到U盘 【超详细】(随身携带/即插即用)
[0-背景说明]: 1)为什么想要把Kali Linux系统安装到U盘? 之前学习渗透测试的时候,有安装过虚拟机,在虚拟机上安装Kali Linux系统,但是因为是在现有系统上安装虚拟机又安装kali ...
- 9、数据库学习规划:Oracle - 学习规划系列文章
甲骨文公司的Oracle数据库是笔者认为的目前市面上性能最强大的数据库.其版本也发展到了现在的12c,提供的功能也更加的强大了.以前笔者使用的是9i,十几年过去了,也才发展到12代,说明Oracle数 ...
- shell 两个数组比较,得到元素的并集、交集等
linux shell 实现数组比较,取元素的并集.交集时,可以使用sort排序.uniq统计和awk数据过滤. shell 实现如下 file_list_1=("test1" & ...