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