CTF学习笔记——Include&Ping Ping Ping

一、[ACTF2020 新生赛]Include

1.题目

CTF学习笔记——Include&Ping Ping Ping_第1张图片

2.解题步骤

点进去看了一下
CTF学习笔记——Include&Ping Ping Ping_第2张图片
根据题目猜测,应该是和php的文件包含漏洞有关…尝试了一下显示phpinfo,意料之中的失败了,看wp才了解到,这是一道伪协议的题目。然后翻了一下之前的博客,复制一下payload,成功解题。

?file=php://filter/convert.base64-encode/resource=flag.php

CTF学习笔记——Include&Ping Ping Ping_第3张图片
CTF学习笔记——Include&Ping Ping Ping_第4张图片

3.总结
  1. 第二次做伪协议的题,只能说经验不足,没辨识出来,下次遇见类似这种?file=访问文件的题目时可以尝试。
4.参考资料
  • [BUUOJ记录] [ACTF2020 新生赛]Include - Ye’sBlog - 博客园

一、[GXYCTF2019]Ping Ping Ping

1.题目

CTF学习笔记——Include&Ping Ping Ping_第5张图片

2.解题步骤

一脸懵,试一下给ip送变量
CTF学习笔记——Include&Ping Ping Ping_第6张图片
是rce漏洞,但也有些关键字被过滤了
CTF学习笔记——Include&Ping Ping Ping_第7张图片
CTF学习笔记——Include&Ping Ping Ping_第8张图片
好想学会写脚本然后用脚本测试过滤了哪些…这里知道了漏洞类型,应该用穷举法测出哪些函数没有被过滤…出于懒惰还是看一眼wp吧…

是我败了,师傅的智慧果然是无穷的,直接读文件是我没想到的
CTF学习笔记——Include&Ping Ping Ping_第9张图片
CTF学习笔记——Include&Ping Ping Ping_第10张图片

(注: ls, cat是linux访问文件的命令)
看wp知道是因为空格被过滤了,师傅们使用的是${IFS}$绕过。系统自带的变量 $IFS 内部字段分隔符(Internal Field Separator, IFS)定义一个定界符,默认是空格。知道了原理,开始绕!
CTF学习笔记——Include&Ping Ping Ping_第11张图片

好↑的↓,是大括号被过滤了,师傅说改成$IFS$1…百度了半天不明白为什么要用$IFS$1

CTF学习笔记——Include&Ping Ping Ping_第12张图片
这里没访问到,师傅提示要访问index.php
CTF学习笔记——Include&Ping Ping Ping_第13张图片
爆出了源码,可以看到正则过滤了哪些内容。接下来有三种方法可以绕过。

  1. 变量拼接
 ?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

大意是构造一个变量a=g,然后正则没有匹配到flag,就绕过了。这里需要注意的是正则的形式。index.php下的代码含义为匹配字符串,是否按顺序出现flag这四个字母。所以如果$a放在前面解析,就会直接出现了flag四个字母,只有放到最后一个,才会有效果。

  1. sh绕过
 ?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

sh和bash都是linux的shell的一种,二者语法可以兼容。index.php过滤了bash的命令,但是没有过滤sh的命令。把flag.php这几个字转码base64再转回,即可绕过。

  1. 内敛执行
?ip=127.0.0.1;cat$IFS$1`ls`

将反引号内命令的输出作为输入执行。所以这句话就变成了 cat index.php flag.php。就会把两个文件显示出来。
CTF学习笔记——Include&Ping Ping Ping_第14张图片

3.总结
  1. 第三道rce的题,感觉核心就是绕过。这道题教会了我空格的绕过和三种字符串的绕过。
  2. 又熟悉了一下linux的命令。像ls cat 还有bash,sh的概念等等。
  3. 正则真的好玄学…变量拼接想了好久为什么只有拼最后一个才能绕,这个匹配规则真有趣…
4.参考资料
  • 学习一个shell 变量$IFS - 快乐嘉年华 - 博客园
  • [GXYCTF2019]Ping Ping Ping - 王叹之 - 博客园
  • [GXYCTF2019]Ping Ping Ping(RCE)_xlcvv的博客-CSDN博客
  • Linux SHELL中sh和bash的区别 - 御用闲人 - 博客园
  • 命令执行漏洞利用及绕过方式总结 - ghtwf01 - Welcome to ghtwf01’s blog

你可能感兴趣的:(网络安全)