论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
CSRF漏洞详细解读
CSRF漏洞详细解读
圆咕噜咕噜
金牌会员
|
2022-6-22 12:52:50
|
显示全部楼层
|
阅读模式
楼主
主题
891
|
帖子
891
|
积分
2673
CSRF
一 CSRF介绍
1.什么是CSRF
2.CSRF漏洞危害
二 CSRF的三种漏洞
1.GET类型CSRF
2.POST类型CSRF
3.Token类型CSRF
三 靶场演示
四 CSRF漏洞修复方法
修复方案
(1)验证http referer字段
(2).在请求地址中添加token并验证
(3)在http头中⾃定义属性并验证
(4)其他防御⽅法
五 小结
一 CSRF介绍
1.什么是CSRF
CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session
Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
个人理解:也就是说,你和用户端都在用同一个网站上注册了账号,但是这个网站对恶意代码的过滤做的不是那么的干净,可以伪造一些命令,比如说修改账户密码吧,首先我们要知道修改密码是网站对服务器发送请求,服务器响应返回给你,你在自己的电脑上发现修改页码的页面存在漏洞,在网址上输入恶意修改的代码,再将这个恶意网址发给别的用户的时候,当这个用户点击这一串链接,在不知情的情况下,已经把这个的密码修改了,用户却不知道。这样我们就可以获得这个用户的帐号了。那么如果是银行出现这个漏洞,后果可想而知。
图片来源,点击跳转
2.CSRF漏洞危害
(1)可修改用户信息 (2)丢失用户敏感信息 (3)执行恶意代码 (4)个人财务被盗
二 CSRF的三种漏洞
1.GET类型CSRF
这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
<img src=http://xxx.cn/csrf.php?xxx=number />
复制代码
在访问含有这个img的页面后,浏览器会自动向http://xxx.cn/csrf.php?xxx=number发出一次HTTP请求。xxx.cn就会收到包含受害者登录信息的一次跨域请求。所以,如果将该网址替换为存在GET型CSRF的地址,就能完成攻击了。
2.POST类型CSRF
这种类型的CSRF危害没有GET型的大,利用起来通常使用的是一个自动提交的表单。 这里有很多方法构造代码,如:
1.在自己能力很强的情况下,可以选择自己编写
2.也可以通过burp抓包工具poc构造恶意代码
3.Token类型CSRF
Token就很简单了,直接抓包在抓到的包中找到token,在token要传输的命令上进行代码的修改,释放恶意包,如果达到了咱们预计的效果就可以判定是存在token类型的CSRF漏洞
三 靶场演示
这里我准备用pikachu靶场进行演示,piikachu靶场技术友们都应该会搭建吧,如果不会我这里推荐小皮面板,下载后简单配置就可以本地使用靶场,各种靶场。
需要用到的工具:burp、小皮面板
小皮面板下载链接
burp下载链接
burp使用教程
在这里我就不演示了我计划后期要专门出一个比较全面的实战文章。
四 CSRF漏洞修复方法
修复方案
(1)验证http referer字段
根据HTTP协议,在HTTP头中有⼀个字段叫Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问⼀个安全受限页⾯的请求必
须来⾃于同⼀个⽹站。
(2).在请求地址中添加token并验证
CSRF攻击之所以能够成功,是因为攻击者可以伪造⽤户的请求,该请求中所有的⽤户验证信息都存在于cookie中,因此攻击者可以在不知
道这些验证信息的情况下直接利⽤⽤户⾃⼰的cookie进⾏安全验证。所以,抵御CSRF攻击的关键在于在请求中放⼊攻击者所不能伪造的信
息,并且该信息不存在于cookie中。因此,可以在http请求中以参数的形式加⼊⼀个随机产⽣的token,并在服务器建⽴⼀个拦截器来验证
这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击⽽拒绝该请求。
(3)在http头中⾃定义属性并验证
⾃定义属性的⽅法也是使⽤token并进⾏验证,和前⼀种⽅法的不同的是,不是把token以参数的形式置于http请求中,⽽是把它放在http
头中⾃定义的属性中。通过XMLHttpRequest这个类,可以⼀次性给所有该类请求加上csrftoken这个http头属性,并把token放⼊其中。
这样解决了前⼀种⽅法在请求中加⼊token的不便,同时,通过这个类请求的地址不会被记录到浏览器的地址栏,也不⽤担⼼token会通过
referer泄露⽹站地址。
(4)其他防御⽅法
CSRF攻击是有条件的,当⽤户访问恶意链接时,认证的cookie仍然有效,所以当⽤户关闭页⾯时要及时清除认证cookie,对⽀持tab
模式(新标签打开⽹页)的浏览器尤为重要。
尽量少⽤或不使⽤request()类变量,获取参数指定request.form()还是request.querystring(),这样有利于阻⽌CSRF漏洞攻击,此⽅法只不能完全防御CSRF攻击,只是⼀定程度上增加了攻击难度
这里是大佬总结的,我引用一下,详情点击此处
五 小结
首先,这个漏洞在现实中实现是很有困难的,一般做白盒测试也基本上只是做一些简单的信息修改,看一看效果,其次这个漏洞的危害很大,所以说,基本上开发人员都开始渐渐注意到一些常规漏洞,但是实际上没有绝对的安全,但是技术友们不要因为这个原因就任意渗透,遵守网络安全法
来源:
https://blog.csdn.net/weixin_50481708/article/details/124751172
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
圆咕噜咕噜
金牌会员
这个人很懒什么都没写!
楼主热帖
超融合市场,谁能当老大?
通过Go语言创建CA与签发证书 ...
【第86题】JAVA高级技术-网络编程5(断 ...
【python二级-练习题】
09、openfoam案例之圆柱绕流
SpringCloud五大常用组件
安全攻防丨反序列化漏洞的实操演练 ...
内网渗透之Windows认证(二) ...
JAVA JDK最详细的安装教程--你只需要看 ...
Java实现在线SQL编程【完整版】 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表