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 ...
随机推荐
- echarts控制柱状图柱条的宽度
barWidth属性 series: [{ name: '销量', type: 'bar', barWidth : 30,//柱图宽度 data: [5, 20, 36, 10, 10, 20] }]
- input框数据回填(回显)
<el-form :model="TeacherruleForm" label-width="80px"> <el-form-item lab ...
- 希尔伯特变换用于解调系统——以解调调频信号为例,FM Demodulation
What's The Hilbert Transform 简单地说,希尔伯特变换的物理意义为:把信号的所有频率分量的相位推迟90度,这样原信号和变换后信号可以视为一组IQ正交信号,在数字域正交化,可以 ...
- 虚幻引擎 4 学习笔记 [1] :蓝图编程 Demo
虚幻引擎 4 学习笔记 [1] :蓝图编程 Demo 最近学习虚幻引擎,主要看的是 Siki 学院的课,课程链接:Unreal蓝图案例 - 基础入门 - SiKi学院|SiKi学堂 - unity ...
- Windows堆管理机制 [1] 堆基础
声明:这篇文章在写的时候,是最开始学习这个堆管理机制,所以写得有些重复和琐碎,基于笔记的目的想写得全一些,这篇文章写的时候参考了很多前辈的文章,已在末尾标出,某些未提及到的可以在评论补充 基于分享的目 ...
- 小白学k8s(4)使用k8s发布go应用
k8s发布go应用 前言 部署 镜像打包 编写yaml文件 使用ingress 什么是ingress呢 ingress与ingress-controller ingress 部署ingress 配置i ...
- 内存池是什么原理?|内存池简易模拟实现|为学习高并发内存池tcmalloc做准备
前言 那么这里博主先安利一些干货满满的专栏了! 这两个都是博主在学习Linux操作系统过程中的记录,希望对大家的学习有帮助! 操作系统Operating Syshttps://blog.csdn.ne ...
- flash8.ocx或其附件之一不能正确注册
运行书中自带光盘中的程序,在该程序的readme说明中,提到这类错误,解决方式是: 因为是免安装程序,需要运行"setup"文件夹下的setup.exe文件,安装控件.在安装完成后 ...
- Linux-使用cat查看文件后出现乱码,整个终端显示包括shell提示符都是乱码
问题描述:在bash下用cat显示二进制文件后会出现乱码,整个终端显示包括shell提示符都是乱码,这个跟语言环境无关. 解决办法: 恢复的话,大致有以下几种方法:方法一:盲打输入echo -e '\ ...
- 【简写MyBatis】01-简单映射器
前言 新开一个坑,为了学习一下MyBatis的源码,写代码是次要的,主要为了吸收一下其中的思想和手法. 目的 关联对象接口和映射类的问题,把 DAO 接口使用代理类,包装映射操作. 知识点 动态代理 ...