SSRF服务器请求伪造原理和攻击方法

Posted Zeker62

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSRF服务器请求伪造原理和攻击方法相关的知识,希望对你有一定的参考价值。

Server-side request forgery (SSRF)

  • 俗称服务器请求伪造攻击。
  • 和CSRF不同的是,CSRF主要针对于客户端的攻击,而SSRF主要是针对服务器的攻击。
  • SSRF是一种网络安全漏洞,允许攻击者诱导服务器端应用程序向攻击者选择的任意域进行 HTTP 请求。
  • 在典型的 SSRF 攻击中,攻击者可能会导致服务器与组织基础设施中的内部仅服务连接。
  • 在其他情况下,它们可能能够强制服务器连接到任意的外部系统,从而可能泄露敏感数据(如授权凭据),即,由外网攻陷内网

SSRF 攻击有何影响?

  • 成功的 SSRF 攻击通常会导致在组织内的未经授权的操作或访问数据

  • 在某些情况下,SSRF 漏洞可能允许攻击者执行任何命令。

  • 总而言之,最严重的情况就是控制服务器

SSRF对服务器本身的攻击:

  • 我们可以修改传送到服务器的报文,里面添加一些恶意代码,如果这些代码被执行,那么我们就可以对服务器进行攻击
  • 比如在一个购物界面,我们有的时候需要查看它的库存是多少个。为了提供购物信息,应用程序必须查询各种后端API,这些API取决于相关产品。
  • 通过HTTP请求,将这些API附加在请求报文中的正文里,然后传递给服务器进行查询,我们就可以利用这些API对服务器进行相关操作。
  • 浏览器或许会发出这样的请求:
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

stockApi=http://stock.weliketoshop.net:8080/product/stock/check%3FproductId%3D6%26storeId%3D1
  • 我们可以修改的,就是stockApi,你看,她返回的或许是一个数值,但是这是个URL,我们如果篡改成http://localhost/admin
  • 或许这个页面就能给我返回出admin的界面

实战:


一个靶场
点开一个商品,看下巴黎有没有货:

抓包,发现有个API

放入Repeat里面去 :
修改api

stockApi=http://localhost/admin

我们删除Carlos用户试试,观察html代码:
好家伙,文件目录都在,都不用看的

删除Carlos用户:

stockApi=http://localhost/admin/delete?username=carlos


删除成功

以上是关于SSRF服务器请求伪造原理和攻击方法的主要内容,如果未能解决你的问题,请参考以下文章

SSRF漏洞

Web安全——服务器端请求伪造(SSRF)

Web安全——服务器端请求伪造(SSRF)

Web安全——服务器端请求伪造(SSRF)

SSRF的原理和防范

SSRF漏洞简单分析