[FireshellCTF2020]Caas C的预处理
进入可以看到是一个编译器 ,输入简单的php代码试试
1 | phpinfo(); |
不知道什么的报错,直接复制报错代码百度一下看看(仔细地可以看见最前面有一个后缀.c)
发现清一色的C语言报错,那我们找个c语言代码传进去试试
1 |
|
下载出来一个不知什么文件
思路到这里就断了,其实可以猜到flag在服务器的某个文件下,也许就是/flag,但是不知道怎么读取,难道是一个c语言漏洞么,感觉给出的文件又看不懂
看了别人的考的是c语言的预处理
利用include预处理将我们所需的文件包含进来
试试
1 |
叫我们用<>或者双引号包含文件名
发现报错了,但是仔细看文件内容已经出来了
1 | #include </proc/self/cmdline> 看一下执行什么命令 |
用处不大
直接/flag ,发现尖括号报错信息没出来,但是双引号可以
上面那个cwd之所以出不来是因为我们include是包含一个文件而不是cwd目录,/proc/self/cwd返回的当前目录有哪些文件
参考链接:https://blog.csdn.net/qq_54929891/article/details/124781749