ctfhub_WEB基础关(RCE)

发布时间 2023-09-19 00:01:53作者: 凉城厌心

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命令和工具:

  1. cat:用于查看文件内容的命令。

    cat filename.txt
    
  2. less:逐页查看文本文件内容,具有交互性。

    less filename.txt
    
  3. more:逐页查看文本文件内容,较简单。

    more filename.txt
    
  4. head:显示文件的前几行,默认为前10行。

    head filename.txt
    
  5. tail:显示文件的末尾几行,默认为最后10行,通常用于查看日志文件。

    tail filename.txt
    
  6. nl:为文本文件的每一行添加行号。

    nl filename.txt
    
  7. vimnano:文本编辑器,可以用于查看和编辑文件内容。

    vim filename.txt
    
  8. echo:将文本输出到终端的命令,可用于显示特定信息。

    echo "Hello, World!"
    
  • 先用ls查看目录下的文件

    ||ls
    

  • 利用less命令查看flag_这个php文件

    ||less flag_20784129286002.php