前言:
介绍:
![](https://img-
blog.csdnimg.cn/3e1c80dc452343c9b3e29c5030fa90b1.png)博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。![](https://img-
blog.csdnimg.cn/3e1c80dc452343c9b3e29c5030fa90b1.png)殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-
某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。![](https://img-
blog.csdnimg.cn/3e1c80dc452343c9b3e29c5030fa90b1.png)擅长:对于技术、工具、漏洞原理、黑产打击的研究。![](https://img-
blog.csdnimg.cn/3e1c80dc452343c9b3e29c5030fa90b1.png)C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。
导读:
![](https://img-
blog.csdnimg.cn/b1b5426baac44b97b68428245cc35d77.png)面向读者:对于网络安全方面的学者。![](https://img-
blog.csdnimg.cn/19ea593260b84ec8b836a336326fa0cc.png)本文知识点(读者自测):(1)服务器端请求伪造(SSRF)(√)
(2)SSRF常见攻击(√)
(3)绕过SSRF的普通防御(√)
(4)盲SSRF漏洞(√)
(5)寻找SSRF漏洞的隐藏攻击面(√)
目录
一、服务器端请求伪造(SSRF)
1、SSRF简述:
2、影响
二、SSRF常见攻击
1、SSRF攻击服务器本身
实验1:针对本地服务器的基本SSRF
2、SSRF攻击其他后端系统
实验2:基本SSRF与另一个后端系统
三、绕过SSRF的普通防御
1、SSRF具有基于黑名单的输入滤波器
实验3:SSRF具有基于黑名单的输入滤波器
2、SSRF具有基于白名单的输入过滤器
实验6:具有基于白名单的输入滤波器的SSRF
3、通过开放重定向绕过SSRF滤波器
实验4:SSRF通过开放重定向漏洞绕过过滤器
四、盲SSRF漏洞
1、简述:
2、影响:
3、发现和利用SSRF漏洞
实验5:带外检测的盲SSRF
实验7:利用Shellshock的盲SSRF
五、寻找SSRF漏洞的隐藏攻击面
1、简述:
2、请求中的部分URL
3、数据格式中的URL
4、SSRF通过Referer报头
一、服务器端请求伪造(SSRF)
1、SSRF简述:
1、服务器端请求伪造(也称为SSRF)是一个Web安全漏洞,允许攻击者诱使服务器端应用程序向非预期位置发出请求。
2、在典型的SSRF攻击中,攻击者可能会使服务器连接到组织基础设施中的仅限内部的服务。在其他情况下,它们可能会强制服务器连接到任意外部系统,从而可能泄漏授权凭据等敏感数据
3、SSRF攻击经常利用信任关系从易受攻击的应用程序升级攻击并执行未经授权的操作。这些信任关系可能与服务器本身相关,也可能与同一组织内的其他后端系统相关。
2、影响
1、成功的SSRF攻击通常会导致未经授权的操作或对组织内数据的访问,无论是在易受攻击的应用程序本身还是在应用程序可以与之通信的其他后端系统上。在某些情况下,SSRF漏洞可能允许攻击者执行任意命令。
2、导致连接到外部第三方系统的SSRF漏洞利用可能会导致恶意的向前攻击,这些攻击似乎源自托管易受攻击的应用程序的组织。
二、SSRF常见攻击
1、SSRF攻击服务器本身
1、在针对服务器本身的SSRF攻击中,攻击者诱使应用程序通过其环回网络接口向托管应用程序的服务器发出HTTP请求。这通常涉及提供一个带有主机名的URL,如127.0.0.1(指向环回适配器的保留IP地址)或localhost(同一适配器的常用名称)2、例如一个购物应用程序,它允许用户查看某个商品在特定商店中是否有库存。要提供库存信息,应用程序必须查询各种后端REST
API,具体取决于所涉及的产品和商店。该函数是通过前端HTTP请求将URL传递给相关后端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
这将导致服务器向指定的URL发出请求,检索库存状态,并将其返回给用户。 在这种情况下,攻击者可以修改请求以指定服务器本身的本地URL。例如: POST /product/stock HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 118 stockApi=http://localhost/admin (服务器将获取/admin URL的内容并将其返回给用户)
2、现在攻击者可以直接访问/admin
URL。但是管理功能通常只有经过身份验证的适当用户才能访问。因此,直接访问URL的攻击者不会看到任何感兴趣的内容。但如果对/admin
URL的请求来自本地计算机本身,则会绕过正常的访问控制。应用程序赠款对管理功能的完全访问权限,因为请求似乎来自受信任的位置。
3、应用程序以这种方式运行,并且隐式地信任来自本地计算机的请求的原因:
1、访问控制检查可以在位于应用服务器前面的不同组件中实现。当重新建立到服务器本身的连接时,将跳过检查。
2、出于灾难恢复的目的,应用程序可能允许来自本地计算机的任何用户在不登录的情况下进行管理访问。这为管理员提供了一种在丢失凭据时恢复系统的方法。这里的假设是只有完全信任的用户直接来自服务器本身。
3、管理界面可能正在侦听与主应用程序不同的端口号,因此用户可能无法直接访问。这种类型的信任关系,其中来自本地机器的请求与普通请求的处理方式不同,通常使SSRF成为一个严重的漏洞。
4、涉及实验:
实验1:针对本地服务器的基本SSRF
实验1:针对本地服务器的基本SSRF
信息:
本实验具有从内部系统获取数据的库存检查功能。
要解决实验问题,更改库存检查URL以访问管理界面http://localhost/admin,并删除用户carlos
part1:
浏览到/admin,发现您无法直接访问管理页面
part2:
访问一个产品,点击"检查库存",拦截请求,并将其发送到repeater
将stockApi参数中的URL更改为http://localhost/admin(将显示管理界面)![](https://img-
blog.csdnimg.cn/0ae5c18b8b9d42be98c1367b267363a2.png)读取HTML以标识要删除目标用户的URL,该URL为:
http://localhost/admin/delete?username=carlos
在stockApi参数中提交此URL,以传递SSRF攻击。
刷新页面
2、SSRF攻击其他后端系统