综合RCE

发布时间 2023-09-15 21:12:27作者: Eddie_Murphy

一道综合RCE,考察的东西还是挺多的。

这里所需要的知识首先是php伪协议文件包含,然后是一种大小写替换正则表达式的绕过。

可以先看看这个,加强理论知识理解,事半功倍。

https://xz.aliyun.com/t/2557

来吧捏麻麻的,开工!

来自:

[BJDCTF2020]ZJCTF,不过如此

前面跟bugku welcome to bugkuctf有点像。

打开界面就是源码审计:

传text和file,然后file不能有flag,按难度来看确实不可能这么简单。

下面有个文件包含,应该是要看next.php。

这里有php://input和php://outpu的解释:

https://blog.csdn.net/qq_27682041/article/details/73326435

强推这个php://filter的妙用解释:

https://blog.csdn.net/wy_97/article/details/77432002

这里第一个是用php://input传text,然后可以用post方法传这个"I have a dream"

第二个使用php://filter读文件的功能,也就是前面加个read的事,php://filter/read=convert.base64-encode/resource=next.php

因为涉及POST传参,总体payload可以放bp整(按道理来说hackbar应该也行,但是我的运行不了....):

接下来直接丢赛博厨子解码,得到源码:

这里就是大小写替换的正则表达式了,原理在上面连接,建议先看。

这里我直接用payload了:

/next.php?\S*=${getFlag()}&cmd=system("ls");

/next.php?\S*=${getFlag()}&cmd=system("ls /");

/next.php?\S*=${getFlag()}&cmd=system("cat /flag");

(注意一定要在next.php后面传哦)

 

主要就是原理问题。明白原理就很简单了。