ctfhub_WEB基础关(RCE)
WEB基础
七、RCE
1、eval执行
-
页面给的是一段PHP代码,这段代码允许用户通过'cmd'参数执行PHP代码
<?php if (isset($_REQUEST['cmd'])) { eval($_REQUEST["cmd"]); } else { highlight_file(__FILE__); } ?> -
传入参数执行代码
![]()
-
浏览flag中的内容
![]()
2、文件包含
-
打开页面,分析代码,将shell.txt传入当前的php文件并执行
![]()
页面代码

文件包含
-
shell.txt中,文件参数为ctfhub
![]()
-
查看flag中的内容
![]()
3、php://input
-
分析页面源码,php://input可以执行输入的php代码
-
查看目录
![]()
-
查看flag中的内容
![]()
4、读取源代码
| 用法 | 描述 | 示例 |
|---|---|---|
read 操作符 |
用于读取数据流并应用过滤器。 | file_get_contents('php://filter/read=string.toupper/resource=example.txt'); |
write 操作符 |
用于写入数据流并应用过滤器。 | file_put_contents('php://filter/write=string.toupper/resource=output.txt', $data); |
resource 参数 |
指定数据源,通常是文件路径或 php://input。 |
file_get_contents('php://filter/read=string.toupper/resource=example.txt'); |
convert.base64-encode 过滤器 |
对数据进行 Base64 编码。 | file_get_contents('php://filter/read=convert.base64-encode/resource=example.txt'); |
convert.base64-decode 过滤器 |
对数据进行 Base64 解码。 | file_get_contents('php://filter/read=convert.base64-decode/resource=example.txt'); |
string.toupper 过滤器 |
将字符串转换为大写。 | file_get_contents('php://filter/read=string.toupper/resource=example.txt'); |
string.rot13 过滤器 |
对字符串执行 ROT13 编码。 | file_get_contents('php://filter/read=string.rot13/resource=example.txt'); |
zlib.deflate 过滤器 |
使用 zlib 压缩数据流。 | file_put_contents('php://filter/write=zlib.deflate/resource=output.txt', $data); |
zlib.inflate 过滤器 |
使用 zlib 解压缩数据流。 | file_get_contents('php://filter/read=zlib.inflate/resource=compressed.txt'); |
| 自定义过滤器 | 创建自定义过滤器以自定义数据处理逻辑。 | 自定义过滤器的创建和使用需根据具体需求而定。 |
-
读取文件源码
![]()
5、远程包含
-
现在自己的服务器上写一个一句话木马,当靶场读取主机上的文件时,会在靶场中执行下面代码中的操作,在靶场中创建muma.txt文本,并将一句话木马写入该文本中
![]()
-
利用靶机的文件读取读取服务器上的文件
![]()
-
访问写入后的muma.txt文本并传入
ls命令

-
查看flag文本内容
![]()
6、命令执行
-
该关卡在pikachu中有,直接开始做
||ls,查看文件![]()
-
逐个访问试试
![]()
7、过滤cat
以下是一些常用的Linux命令和工具:
-
cat:用于查看文件内容的命令。
cat filename.txt -
less:逐页查看文本文件内容,具有交互性。
less filename.txt -
more:逐页查看文本文件内容,较简单。
more filename.txt -
head:显示文件的前几行,默认为前10行。
head filename.txt -
tail:显示文件的末尾几行,默认为最后10行,通常用于查看日志文件。
tail filename.txt -
nl:为文本文件的每一行添加行号。
nl filename.txt -
vim 或 nano:文本编辑器,可以用于查看和编辑文件内容。
vim filename.txt -
echo:将文本输出到终端的命令,可用于显示特定信息。
echo "Hello, World!"
-
先用
ls查看目录下的文件||ls![]()
-
利用
less命令查看flag_这个php文件||less flag_20784129286002.php![]()
















浙公网安备 33010602011771号