Csrf漏洞

Csrf漏洞

一,漏洞简介:

身份嫁接,伪造。攻击者通过一些手段欺骗用户的浏览器去访问一个受害者之前登录过的网站并进行一些操作。因为之前在浏览器认证过,所以网站会认为是受害者在操作而去运行。但同时也造成了受害者必须在登录受信任网站的前提下才能进行利用。

二,运行逻辑:

1、客户端通过账户密码登录访问网站 A。

2、网站 A 验证客户端的账号密码,成功则生成一个 sessionlD,并返回给客户端存储在浏览器中。

3、该客户端 Tab—个新页面访问了网站 B。

4、网站 B 自动触发要求该客户端访问网站 A。(即在网站 B 中有链接指向网站 A)。

5、客户端通过网站 B 中的链接访问网站 A。(此时携带有合法的 SessionID 进行访问站 A 的)。

6、此时网站 A 只需检验 sessionIlD 是否合法,合法则执行相应的操作。(因此具体啥工具就得看链接,以及网站 B 要求访问时携带的数据。

三,利用条件

1、登录受信任网站 A,并在本地生成 Cookie。

2、在不登出受信任网站 A 的情况下,访问危险网站 B。

3、需要请求伪造数据包。

4、无过滤防护。

这就造成了他的使用条件较为苛刻。

四,防护手段。

  1. referer

HTTP 头中有一个 Referer 字段,这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时,在 通 常 情 况 下 , Referer 字 段 应 和 请 求 的 地 址 位 于 同 一 域 名 下比 如 需 要 访 问http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory,用户必须先

登陆 bank.example,然后通过点击页面上的按钮来触发转账事件。这时,该转帐请求的 Referer 值就

会是转账按钮所在的页面的 URL,通常是以 bank.example 域名开头的地址。而如果黑客要对银行网站实施 CSRF 攻击,他只能在他自己的网站构造请求,当用户通过黑客的网站发送请求到银行时,该请求的Referer 是指向黑客自己的网站。因此,要防御 CSRF 攻击,银行网站只需要对于每一个转账请求验证其 Referer 值,如果是以 bank.example 开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果 Referer 是其他网站的话,则有可能是黑客的 CSRF 攻击,拒绝该请求。

2,stripos() 函数

stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)

代码检查了保留变量 HTTP_REFERER (http 包头部的 Referer 字段的值,表示来源地址)是否包含 SERVER_NAME(http 包头部的 Host 字段表示要访问的主机名)。

所以核心思路就是将 referer 的数据和 host 一致即可。

但是有缺陷:

stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写),也就是只要这个referer 里面包含 host 的内容就可以绕过,所以我们是不是可以把攻击者的网站路径改一下,改成包含host 的内容,我们是攻击者,所以我们能够做到这一步Host 是 127.0.0.1,那么我们把 referer 改成含有 127.0.0.1 的内容,怎么改?将恶意代码文件放到

一个叫 http://127.0.0.1 文件名里面即可,但是又有问题,问题就是 linux 不能创建含有特殊字符的文件名,得配合文件上传了,我把这个恶意的代码文件上传到你自己的服务器,然后让你去访问你自己的地址那么这个 host 和 referer 就对上了。

3,token检测

每次访问都会产生一个新的 token,这个 token 攻击者拿不到,拿不到就不能构造出有效的请求包,就算拿到了,token 在每次对话结束后,都会变化,攻击者无法预测新变化的 token 是什么。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/557358.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Appium+python自动化怎么查看程序所占端口号和IP

简介 这篇博文和分类看似没有多大关系,但是也是从上一篇衍生出来的产物,因为涉及到 FQ工具 Lantern ,就算是给关注和支持的小伙伴们拓展一下眼界和知识面。而且好多人都阅读了上一篇没发现那个参考博客点不开吗?那是因为还没来的…

代码算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈

day10: 232.用栈实现队列225. 用队列实现栈 232.用栈实现队列 题目链接 状态: 文档:programmercarl.com 思路: 用栈实现队列。要先明白两者的区别。 栈:单开门,先进后出,只有一端能进出。 队列:…

DPDK-RCU的简明使用

文章目录 摘要RCU的基本概念DPDK RCU Library的使用其他 摘要 本文主要介绍DPDK中RCU Library的使用。 在使用这个库之前,我们先了解RCU的基本概念。 掌握RCU的基本概念后,便可轻松的使用这个库。 RCU的基本概念 参考:Linux内核同步机制之…

软考高级:特定领域软件架构(DSSA)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

c语言--字符转换函数(tolower、toupper.)

目录 一、前言二、使用举例 一、前言 C语⾔提供了2个字符转换函数&#xff1a; int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写 int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写二、使用举例 #include <ctype.h> #include<stdio.h> int main(…

P4344 [SHOI2015] 脑洞治疗仪 线段树+二分

主要是维护一个连续区间&#xff0c;比较经典的题目&#xff0c;还要考虑一下二分的情况&#xff0c;否则很难处理&#xff0c;比较有难度。这里和序列操作一题的区别是不需要考虑1的个数&#xff0c;因为不需要取反。传送门https://www.luogu.com.cn/problem/P4344 #include&…

2024.3.21 QT

思维导图 自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面。&#xff08;不要使用课堂上的图片和代码&#xff0c;自己发挥&#xff0c;有利于后面项目的完成&#xff09; 要求&#xff1a; 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关设置&…

2024全国水科技大会【发言单位】天健水务集团(杭州)有限公司

天健水务&#xff0c;始创于2003年&#xff0c;下属浙江天行健水务有限公司、杭州天勤水处理技术有限公司、杭州天行健新能源有限公司&#xff0c;是一家致力于现代化水处理设备与系统研发、生产及工程应用的国家高新技术企业。以天健智造、天健工程、天健运维的“一站式全流程…

[QT] QTextBrowser取消默认右键菜单项 复制链接地址

setTextInteractionFlags(Qt::TextSelectableByMouse);原理 QTextBrowser默认下有三个标志位&#xff0c;QTextBrowser右键菜单相关源码如下 源码链接 if ((d->interactionFlags & Qt::LinksAccessibleByKeyboard)|| (d->interactionFlags & Qt::LinksAccessible…

【Unity】捕捉PC桌面的插件

【背景】 之前介绍了如何用一款名为uWindowCapture的Unity免费插件在Unity的Canvas上展示PC桌面。经过一段时间的使用,本篇继续分享此插件的一些功能和限制。 在此感谢作者Hecomi。 【特征和限制】 一般局域网络环境只能最多达到15帧的帧率,所以别幻想用来窜流游戏或者看电…

外包干了20天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;21年通过校招进入杭州某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了2年的功能测试…

做独立站烧不烧钱?真做起来的话要投入多少成本?

建立一个独立网站需要花钱吗&#xff1f; 实际做起来要花多少钱&#xff1f; 这是一种灵魂的拷问&#xff0c;也是大多数想进入这个行业或者刚刚起步的人都在思考或者思考的问题。 对于这样的问题&#xff0c;没有人能够给出确切的数字&#xff0c;甚至是确定的答案。 至于为什…