bugku-file_get_contents

打开题目

是一串代码

 1 <?php
 2 extract($_GET);
 3 if (!empty($ac))
 4 {
 5 $f = trim(file_get_contents($fn));
 6 if ($ac === $f)
 7 {
 8 echo "<p>This is flag:" ." $flag</p>";
 9 }
10 else
11 {
12 echo "<p>sorry!</p>";
13 }
14 }
15 ?>

大致意思就是要上传 ac和fn两个参数

且ac的值等于fn文件内容的值

这时候就可以用到php伪协议的php://input

他的作用是可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。

顺便记一下这个伪协议需要allow_url_include为on

根据代码

我们可以构造payload: ?ac=1&fn=php://input

再使用hackbar post传参1

即可得到flag

就是不知道为什么用谷歌浏览器里的hackbar的回显是sorry而火狐的hackbar就能正常回显出flag

 

posted @ 2021-06-16 19:35  c0d1  阅读(840)  评论(0编辑  收藏  举报