i春秋CTF ssrfme (peal函数中get命令漏洞)命令执行 详细题解+原理 学习过程

本文详细解析了一道涉及PHP命令执行漏洞的题目,通过分析代码和利用管道符实现命令注入,最终获取flag。文章介绍了如何利用 escapeshellarg 函数的限制构造命令,以及在不同环境中复现解决方案的挑战。作者分享了个人学习到的知识点,包括文件操作、命令执行和安全防护。

前几天刚做一道命令执行的题目累的够呛,这会刷题又碰见一道,看了很多write up都不有不同的地方,而且这道题的环境和其他平台的环境也有点差异,有些wirte up 复现甚至做不出,最后自己独自去思考时,才发现了很多细节能改进。所以做个总结,梳理一下自己学到的各方面知识。避免大家踩一些不必要的坑,白白浪费时间。

目录

题目

peal函数中get命令漏洞

分析

重点

题解

详细过程

这道题的思考


题目

peal函数中get命令漏洞

这里参考了一位博主的分析,是我查的write up中写的最详细的,当然用他做的这道题和我们平台上的不一样,但具有参考价值。

关于BMZCTF hitcon_2017_ssrfme的解法_永远是少年-CSDN博客

关于这个漏洞,外国人有文章,是这样写的:
Perl saw that your “file” ended with a “pipe” (vertical
bar) character. So it interpreted the “file” as a command to be executed, and interpreted the command’s output as the “file”'s contents. The command is “who” (which prints information on currently logged-in users). If you execute that command, you will see that the output is exactly what the Perl program gave you.
翻译过来意思是:
perl函数看到要打开的文件名中如果以管道符(键盘上那个竖杠 |)结尾,就会中断原有打开文件操作,并且把这个文件名当作一个命令来执行,并且将命令的执行结果作为这个文件的内容写入。这个命令的执行权限是当前的登录者。如果你执行这个命令,你会看到perl程序运行的结果。

 

所以我们可以在 url参数中传入 获取flag文件的命令,被执行后,将flag内容放在我们上传的文件里,我们再打开我们上传的文件就能见到flag了。

分析

<?php 
    $sandbox = "sandbox/" . md5("orange" . $_SERVER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值