浅谈CSRF与SSRF
今天看在看《XSS跨站脚本攻击剖析与防御》的时候,里边提到了CSRF与SSRF,在网络查询了这部分的资料后,简单总结了下二者的关系与不同
CSRF
又称跨站请求伪造,XSS就是CSRF中的一种。二者区别,XSS利用的是用户对指定网站的信任,CSRF利用是网站对用户浏览器的信任。
发生条件
当用户在安全网站A登录后保持登录的状态,并在此时浏览了保存有恶意代码的另一个网站B。此时B站劫持用户的浏览器并以用户以登录的状态对A站发送非用户本人的操作。
当服务端没有对这次请求验证的情况下,将这次操作作为可信任的用户的操作。
发生地点
攻击者可以将恶意网址或者代码藏在论坛博客等任何用户生成内容的网站中。这意味着如果服务端没有适合的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。
类似于XSS一些html标签可以发送HTTP GET类型请求 像<img>,浏览器渲染img标签的时候,并不知道标签中src属性的值,是否为一个图片,浏览器发起一个HTTP GET请求
,并携带当前受害者当前浏览器在网站的cookie,获取返回结果。
对于很多网站来说,即使是一些重要的操作使用POST来提交请求,但是服务器再接收请求的时候并没有严格区分POST和GET。在PHP中滥用$_REQUEST就是例子。
如果服务端已经区分了GET,POST只用POST请求数据,可以通过制造一个隐藏的表单,并通过js代码自动提交伪造的表单。
GET伪造
POST伪造
防御
增加验证码机制,增加带有大量噪点的验证码,杜绝代码能够识别的简单验证码,当然了也经常被绕过
验证referer,采用同源政策,referer记录着数据包的来源地址,来判断请求的合法性,但是这个可以伪造
使用Token,令牌是一种将表单value的加密算法生成不同的加密结果,在服务器端进行验证。
在访问登录过一个网站,点击退出账户。
SSRF
又名服务端请求伪造攻击
有的大型网站在web应用上提供了从其他服务器获取数据的功能。使用户指定的URL web应用获取图片,下载文件,读取文件内容。攻击者利用有缺陷的web应用作为代理攻击远程和内网的服务器(跳板)
危害:
可对外网,服务器所在内网,受控服务器进行端口扫描,获取一些banner
对内网web应用进行指纹识别,通过访问默认文件实现
攻击内外网web应用,主要是使用get参数就可以实现分攻击
利用file协议读取本地文件
该漏洞存在的条件是对curl函数的滥用
比如:
if(isset($_POST['commit'])){$link = $_POST['url'];$filename = './curled/'.rand().'txt';$curlobj = curl_init($link); //初始化连接$fp = fopen($filename,"w");curl_setopt($curlobj, CURLOPT_FILE, $fp); //设置输出文件,默认为STDOUT (浏览器)。curl_setopt($curlobj, CURLOPT_HEADER, 0); //设置为0表示不返回HTTP头部信息。curl_exec($curlobj); //执行curl请求curl_close($curlobj); //关闭curl连接fclose($fp);$fp = fopen($filename,"r");$result = fread($fp, filesize($filename)); fclose($fp); //关闭文件echo $result;}
并为对输入的命令进行过滤,导致服务器遭到攻击
修复方案:
过滤返回信息,如果web应用数去获取某一类型文件,在把结果返回给用户之前先验证信息是否符合标准。
例如:当攻击者利用"识别图片"下的该漏洞远程包含一个文件,可以通过在服务器上验证返回数据是否是纯像素,来进行过滤。
统一错误页
限制请求端口为http常用端口 80,443,8080,8090
内网IP黑名单,避免应用被用来获取内网数据,攻击内网
浅谈CSRF与SSRF相关推荐
- 浅谈CSRF攻击方式
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...
- 浅谈csrf攻击以及yii2对其的防范措施
凡是我yii2学习社群的成员都知道,我不止一次给大家说构造表单100%使用yii2的ActiveForm来实现,这除了能和AR更好结合外就是自动生成csrf隐藏域,一个非常安全的举措. 今天北哥就给大 ...
- 浅谈 CSRF 攻击方式
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨 ...
- 《转》浅谈CSRF攻击方式
原文 一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为: ...
- 浅谈跨站请求伪造(CSRF)
浅谈跨站请求伪造(CSRF) 这里简单的记录一下CSRF漏洞~~ 什么是CSRF? CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可 ...
- 浅谈云上攻防 --SSRF 漏洞带来的新威胁
前言 在<浅谈云上攻防--元数据服务带来的安全挑战>一文中,生动形象的为我们讲述了元数据服务所面临的一系列安全问题,而其中的问题之一就是通过SSRF去攻击元数据服务:文中列举了2019年美 ...
- 成长经历:浅谈OSINT认知
浅谈OSINT认知 这篇文章也是我第一次写blog,有问题请大家还多多包容. 前言 OSINT这个词是在和一群大佬们的聊天过程中得知的,当时觉得这个陌生的名词好酷,或许对将来从事"h ...
- 浅谈API安全的应用
理论基础 API它的全称是Application Programming Interface,也叫做应用程序接口,它定义了软件之间的数据交互方式.功能类型.随着互联网的普及和发展,API 从早期的软件 ...
- php ci如何保证数据安全,浅谈php(codeigniter)安全性注意事项
1.httponly session一定要用httponly的否则可能被xxs攻击,利用js获取cookie的session_id. 要用框架的ci_session,更长的位数,httponly,这些 ...
最新文章
- 软件工程概论冲刺 第6天
- decimalformat精度丢失_笔记一:DecimalFormat BigDecimal
- 网络游戏,原罪和救赎
- 上传文件到服务器并显示,J2EE如何实现Servlet上传文件到服务器并相应显示功能...
- HDU 4282 A very hard mathematic problem 二分题目
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- 2021年自驾游数据报告
- Jayrock: JSON and JSON-RPC for .NET
- C# WebService获取天气信息
- 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理...
- 串标是什么意思?用同一台电脑制作或上传投标书,会被认定为串标吗?
- 卢旺达饭店插曲--Million Voices
- 字节跳动 —— 2023暑期实习面试
- Java开发从零开始!java游戏服务器开发教程
- Servlet的三个名字
- php-模板方式模式实现
- 谈谈 WiFi STBC
- Android——广播
- kali安装配置使用手册
- 克罗内克积(Kronecker)