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

在这里插入图片描述
删除成功

posted @ 2021-08-14 21:36  Zeker62  阅读(197)  评论(0编辑  收藏  举报