CSRF和SSRF

这篇具有很好参考价值的文章主要介绍了CSRF和SSRF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSRF

什么是?

Cross-site request forgery,跨站脚本伪造(客户端)。CSRF通过伪装来自受信任的用户的请求来攻击受信任的网站。与XSS相比,CSRF攻击往往不太流行(因此对其进行防范的资源也是相当紧缺的)和难以防范的,所以被认为比XSS更具危险性。

CSRF攻击:首先攻击者会先盗用你的身份,然后以你的名义进行某些非法操作,甚至盗走你的账户购买的商品等。CSRF攻击其值是利用web中用户身份认证验证的一个漏洞:简答的身份验证仅仅可以保证请求发自某一个用户的浏览器,却无法保证请求本身是用户资源发出的。

任何网站都有CSRF,没有危害不是漏洞
CSRF和SSRF

攻击流程

CSRF和SSRF

  1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
  2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
  3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
  4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
  5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

从上述的流程可以看出,想要达成CSRF攻击,必须达成两个基本条件

  • 登录受信任网站A,并且在本地生成Cookie。
  • 在不退出登录网站A的前提下,访问危险网站B.

常见的CSRF攻击

GET类型

银行站点A: 它以GET请求的方式来完毕银行转账的工作:如http://www.mybank.com.Transfer.php?toBankId=11&money=1000
危险站点B:其中存在一段html代码为<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000 >
首先你登录了银行站点A,然后访问危险站点B,这时你就会发现自己的银行账号少了1000元。为什么会这样呢?原因是银行站点A违反了HTTP规范,使用GET请求更新资源。在访问危急站点B的之前,你已经登录了银行站点A,而B中的 一个合法的请求,但这里被不法分子利用了)。所以你的浏览器会带上你的银行站点A的Cookie发出Get请求,去获取资源以GET的方式请求第三方资源(这里的第三方就是指银行站点了,原本这是http://www.mybank.com/Transfer.php?toBankId=11&money=1000 ,结果银行站点服务器收到请求后,觉得这是一个更新资源操作(转账操作),所以就立马进行转账操作。

POST类型

POST类型的CSRF危害没有GET类型的大,利用起来通常使用的是一个自动提交的表单,如

<form action=http://wooyun.org/csrf.php method=POST ><input type="text" name="xx" value="11" /><input type="submit" id="postSubmit" value=""/>
</form>
<script>
  window.onload=function(){
    document.getElementById("postSubmit").click();
  }
</script>

访问该页面后,表单会自动提交,相当于模拟用户完成一次POST操作

CSRF漏洞检测

检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞(referer的ip标识着请求的ip)

工具:CSRFTester,CSRF Request Builder等

使用CSRFTester进行测试时,首先需要抓取我们在浏览器中访问过的所有链接以及所有的表单等信息,然后通过在CSRFTester中修改相应的表单等信息,重新提交,这相当于一次伪造客户端请求。如果修改后的测试请求成功被网站服务器接受,则说明存在CSRF漏洞,当然此款工具也可以被用来进行CSRF攻击。

CSRF漏洞防御

三种策略:

  • 验证HTTP的 Referer 字段
  • 在请求地址中添加 token 并验证
  • 在 HTTP 头中自定义属性并验证

SSRF

介绍

服务器端请求伪造,是一种由攻击者构造,由服务端发起请求的一个网络攻击,一般用来在外网探测或攻击内网服务,其影响效果根据服务器用的函数不同,从而造成不同的影响。

有些web网站会提供从其他服务器上传数据的功能,会使用用户指定的url获取数据。

由于对远程的url没有进行严格的过滤,所以攻击者可以通过该漏洞控制该web网站作为代理服务器攻击远程服务器或者该web的本地服务器。

跳板:(隐藏自己的ip)基于一个网站去攻击另外一个网站,基于SSRF漏洞的都可以当作跳板
CSRF和SSRF

SSRF漏洞相关函数和类

  • file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中。
  • readfile():输出一个文件的内容。
  • fsockopen():打开一个网络连接或者一个Unix 套接字连接。
  • curl_exec():初始化一个新的会话,返回一个cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函数使用。
  • fopen():打开一个文件文件或者 URL。
  • ……

上述函数函数使用不当会造成SSRF漏洞。 此外,PHP原生类SoapClient在触发反序列化时可导致SSRF。

SSRF漏洞利用(危害)

  • 可以对内网,本地进行端口扫描,查看端口的关闭状态;
  • 攻击运行在内网或者本地的应用程序
  • 对内网应用程序做指纹识别
  • 利用协议获取本地的文件

挖SSRF漏洞

  1. 由于ssrf漏洞的产生原理是web服务器向其他远程服务器获取相关的数据从而产生的

  2. ssrf漏洞可能存在的场景

    • 分享,通过URL地址分享网页内容,通过URL获取目标页标签等内容
    • 转码服务,适应硬件设备的大小;
    • 图片的加载与下载
    • 图片,文章的收藏;
  3. 通过url地址分享网页内容

(后面的网页在前面网页展示,是显示前面的ip访问的而不是本机)

3.1、首先当我们点击该连接时,观察url位置,会发现http协议,此时可能存在漏洞。
CSRF和SSRF
3.2、输入http://www.baidu.com进行验证,发现可以访问,说明存在SSRF
CSRF和SSRF
3.3、读取本地文件
CSRF和SSRF
3.4、对端口进行探测(可使用BP)

返回了信息,说明端口开放
CSRF和SSRF
输入1000端口 发现尝试连接了一会并没有返回信息,说明端口没有开
CSRF和SSRF
3.5、后端使用了file_get_content()函数
读取网页后端源代码以base64编码的方式

http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf.php

CSRF和SSRF

测试端口是否打开

端口打开: 会一直转圈尝试连接

端口关闭:显示错误信息

3.6、 转码服务

通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览

3.7、在线翻译

通过URL地址翻译对应文本的内容。提供此功能的百度、有道等。

3.8、图片下载

通过URL地址加载或下载图片图片加载远程图片地址此功能用到的地方很多,但大多都是比较隐秘,比如在有些公司中的加载自家 图片服务器上的图片用于展示。(此处可能会有人有疑问,为什么加载图片服务器上的图片也会有问题, 直接使用img标签不就好了,没错是这样,但是开发者为了有更好的用户体验通常对图片做些微小调整例 如加水印、压缩等,就必须要把图片下载到服务器的本地,所以就可能造成SSRF问题)。

3.9、url编码中一些关键字

share、wap、url、link、src、source、 target、u、3g、display、sourcellRL、imageURL、domain

3.10、Weblogic(wbe中间件)配置不当,天生ssrf漏洞

如何防御ssrf漏洞

1.统一错误信息

2.限制请求端口

3.黑名单内网IP

4.禁用不需要的协议文章来源地址https://www.toymoban.com/news/detail-445035.html

到了这里,关于CSRF和SSRF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发安全之:Cross-Site Scripting: Poor Validation

    Overview 在 php 中,程序会使用 HTML、XML 或其他类型的编码,但这些编码方式并不总是能够防止恶意代码访问 Web 浏览器。 Details 使用特定的编码函数(例如 htmlspecialchars() 或 htmlentities())能避免一部分 cross-site scripting 攻击,但不能完全避免。根据数据出现的上下文,除 HTML 编码

    2024年01月23日
    浏览(38)
  • CSRF(跨站请求伪造)和SSRF(服务端请求伪造)漏洞复现:风险与防护方法

    这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。  环境准备 示例: 假设用户在银行网站A上登录并保持会话活动,同时他也在浏览其他网站。攻击者在一个不可信任的网站B上创建了一个恶意链接,当用户点击该链接时,会自动向银行网站A发送一个

    2024年02月10日
    浏览(58)
  • CSRF和SSRF

    Cross-site request forgery, 跨站脚本伪造(客户端) 。CSRF通过 伪装来自受信任的用户的请求来攻击受信任的网站 。与XSS相比,CSRF攻击往往不太流行(因此对其进行防范的资源也是相当紧缺的)和难以防范的,所以被认为比XSS更具危险性。 CSRF攻击:首先攻击者会先盗用你的身份

    2024年02月04日
    浏览(34)
  • CSRF及SSRF详解

      CSRF(Cross-site Request Forgery,跨站请求伪造)是一种针对网站的恶意利用。   CSRF攻击可以利用用户已经登陆或已经授权的状态,伪造合法用户发出请求给受信任的网点,从而实现在未授权的情况下执行一些特权操作。   1)首先用户登录网站,并且生产本地的cookie。

    2023年04月22日
    浏览(52)
  • 中级课程-SSRF(CSRF进阶)

    2024年02月13日
    浏览(26)
  • CSRF - 跨站请求伪造

    目录 1、什么是CSRF 2、CSRF的攻击过程和原理 3、CSRF的类型有哪些 4、CSRF的防御 5、CSRF与XSS有何不同 6、没有防御的CSRF 跨站请求伪造(Cross-site request forgery),CSRF是指利用受害者尚未失效的身份认证信息(登录状态中的Cookie等),诱骗受害者点击恶意链接,或者访问包含攻击代

    2024年04月08日
    浏览(56)
  • 跨站请求伪造(CSRF)

    CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的网络安全攻击,它利用用户在已经登录的网站上的身份验证信息来执行恶意操作。 攻击者通过诱使受害者在本地浏览器中打开一个恶意网站,这个网站会发送一个自动执行的请求到目标网站。由于受害者已经在目标网站上

    2024年02月17日
    浏览(54)
  • 跨站请求伪造(CSRF)

    1.1 基本概念 ​ 跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Wb应用程序上执行非本意操作的攻击,攻击的重点在于更改状态的请求,而不是盗取数据,因为攻击者无法查看伪造请求的响应。 ​ 借助于社工的一些帮

    2024年02月10日
    浏览(47)
  • CSRF(跨站请求伪造)

    CSRF(Cross Site Request Forgery, 跨站请求伪造 )。是一种对网站的恶意利用, 通过伪装来自受信任用户的请求来利用受信任的网站 。 原理 是攻击者构造网站后台某个功能接口的请求地址,诱导用户去点击或者用特殊方法让该请求地址自动加载。用户在登录状态下这个请求被服

    2024年01月16日
    浏览(56)
  • CSRF(跨站请求伪造)原理

    (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式

    2023年04月08日
    浏览(120)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包