首页 > 其他分享 >服务器端请求伪造 (SSRF)

服务器端请求伪造 (SSRF)

时间:2024-01-31 10:24:36浏览次数:27  
标签:服务器端 SSRF admin 应用程序 URL 服务器 伪造 请求

什么是SSRF?

服务器端请求伪造是一种 Web 安全漏洞,它允许攻击者使服务器端应用程序向非预期位置发出请求。

在典型的 SSRF 攻击中,攻击者可能导致服务器与组织基础结构中的仅限内部的服务建立连接。在其他情况下,它们可能能够强制服务器连接到任意外部系统。这可能会泄露敏感数据,例如授权凭据。

在此示例中,攻击者可以修改请求以指定服务器本地的 URL:

POST /product/stock HTTP/1.0

Content-Type: application/x-www-form-urlencoded

Content-Length: 118

stockApi=http://localhost/admin

服务器获取 URL 的内容并将其返回给用户。/admin

攻击者可以访问该 URL,但管理功能通常只有经过身份验证的用户才能访问。这意味着攻击者不会看到任何感兴趣的内容。但是,如果对 URL 的请求来自本地计算机,则会绕过正常的访问控制。应用程序授予对管理功能的完全访问权限,因为请求似乎来自受信任的位置。/admin/admin

针对服务器的 SSRF 攻击 - 续

为什么应用程序以这种方式运行,并隐式信任来自本地计算机的请求?这可能是由于各种原因造成的:

  • 访问控制检查可能在位于应用程序服务器前面的其他组件中实现。当与服务器建立连接时,将绕过检查。
  • 出于灾难恢复目的,应用程序可能允许对来自本地计算机的任何用户进行管理访问,而无需登录。这为管理员提供了一种在丢失凭据时恢复系统的方法。这假定只有完全受信任的用户才能直接来自服务器。
  • 管理界面可能使用不同的端口号侦听主应用程序,并且用户可能无法直接访问。

在这种信任关系中,来自本地计算机的请求的处理方式与普通请求不同,通常会使 SSRF 成为关键漏洞。

Admin interface only available if logged in as an administrator, or if requested from loopback

管理员界面仅在管理员身份登录或从环回请求时可用

  1. URL 浏览到 /admin 目录返回一个错误,指出该目录仅可从服务器本地使用,或对已登录的管理员可用。
  2. 找到库存检查功能,打开 burp 进行拦截并发送到 repeater,库存将发出与后端 API 通信的请求。在 burp 中观察到有个参数是stockApi,有 http 字样,判断为编码后 URL。通过 Ctrl+Shift+U 对 URL 解码后,能够看到库存检查功能的 URL 路径和端口号。
  3. 查看是否有应用程序在本地主机上运行,将stockApi值换为http://localhost,发送后显示成功,点开 burp 的 Render,能够看到网站页面上有Admin panel字样,说明进入了管理面板
  4. 在 Response 中搜索 admin,可看到Admin panel的路径是/admin,把路径添加到 stockApi 上后,继续在 Response 中搜索 carlos,可看到删除的路径是/admin/delete?username=carlos
  5. 删除 carlos:http://localhost/admin/delete?username=carlos,遵循 302 重定向

1)给IP地址的最后一位添加number payload从1到255,步长是1,可以试出来IP地址

2)发送到repeater,找到删除carlos的url参数

标签:服务器端,SSRF,admin,应用程序,URL,服务器,伪造,请求
From: https://www.cnblogs.com/cll-wlaq/p/17998644

相关文章

  • Java代码审计-SSRF
    SSRF漏洞SSRF(Server-SideRequestForgery:服务器端请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部服务器系统。支持的协议fil......
  • miniweb开源的迷你HTTP服务器端软件
    前言全局说明MiniWeb是一个用C语言写成的HTTP服务器端软件,具有资源占用少、响应快速、跨平台(POSIX、*nux、Windows)等优点,支持常用的GET、POST算法及音/视频流媒体应用,可用来构建WEBSITE站点或VOD服务器等。MiniWeb是一个针对嵌入式应用而开发的微型WebServer,它占用资源少,工......
  • 服务器端口被占用怎么解决
    服务器端口指的是用一个程序向服务器发起连接时的请求端口。比如FTP:23,HTTP:80,SMTP:25这些都是TCP的端口,有的也用到UDP的端口。1、公认端口:这种类型的端口通常称为“常用端口”。这些端口的端口号范围从0到1024,并且与某些特定服务紧密绑定。通常这些端口的通信清楚地指示了某种服......
  • flask伪造session的一些笔记
    关于flask工具要注意的一些点:密钥使用字符串和数字生成出来的是不一样的伪随机数生成key的时候python2和python3是不一样的,python2会后面的小数自动约分。解密出来的字符串不能直接更改值,需要改为键对值的格式伪随数生成key的方法有很多种,有的可以获取mac地址/sys/class/net/......
  • flask session 伪造
    flasksession伪造一、session的作用由于http协议是一个无状态的协议,也就是说同一个用户第一次请求和第二次请求是完全没有关系的,但是现在的网站基本上有登录使用的功能,这就要求必须实现有状态,而session机制实现的就是这个功能。用户第一次请求后,将产生的状态信息保存在sessio......
  • 安全测试|漏洞请求伪造
    前言一、漏洞原理如下代码:<?php$url=$_GET['url'];echofile_get_contents($url);?>二、挖掘技巧三、常见的攻ji例如:一个购物应用程序,该应用程序使用户可以查看特定商店中某商品是否有库存。为了提供库存信息,应用程序必须根据所涉及的产品和商店查询各种后端RESTAPI。该功能......
  • Git的GPG签名 —— Tag签名 Verified验证,防伪造的gitee/github commit验证
    相关资料:如何使用git通过ssh协议拉取gitee上的项目代码——如何正确的免密使用git不论是gitee还是GitHub都有两种公钥设置,一种是ssh公钥,另一种则是GPG公钥。ssh公钥是为了在进行gitpull和gitpush操作时进行免密验证的;而GPG公钥是在gittag和gitcommit时进行验证的。不过需......
  • 12.30号直播:SSRF打穿内网
    本次的课程的内容为:1.SSRF漏洞原理2.SSRF靶场演示3.利用思路扩展 12月30日晚20:00,我们不见不散~  Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。平台已开设Web安全零基础就......
  • 06-服务器端命令(SQL)
    SQL定义:结构化的查询语言,mysql接口程序只负责接收SQL,传送给SQL层SQL种类DDL:数据库(对象)定义语言DCL:数据库控制语言(grantrevoke)DML:数据(行)操作语言(updatedeleteinsert)DQL:数据查询语言(show、select)一、DDL:数据库(对象)定义语言:DDL对库的操作createdatabaselufei;......
  • 成功解决 无法访问服务器端口问题
    问题描述访问服务器的48081端口时显示无法访问问题分析与解决问题可能是防火墙阻挡了对48081端口的访问sudosystemctlstatusfirewalld检查服务器防火墙状态防火墙是关闭状态因为我是轻量级应用服务器未设置安全组查看防火墙内的端口规则,未添加则添加端口,问题解决,......