bugku web file_get_contents

题目是一串php代码

 

读完代码之后,发现题目是想让我们传递参数ac和fn,使得$ac === $f,$f = trim(file_get_contents($fn))

首先先理解代码中几个函数的用法:

extract() 函数从数组中将变量导入到当前的符号表。此函数会将数组键名当作变量名,值作为变量的值

trim()去除字符串首尾处的空白字符

file_get_contents()将整个文件读入一个字符串

其实看到file_get_contents(),我们就应该想到使用php://input将其绕过,php://input是可以访问请求的原始数据的只读流,可以直接读取到POST上没有经过解析的原始数据。但enctype=”multipart/form-data” 的时候 php://input 是无效的。

Bypass方法:

①将要get的参数/?xxx=php://input

②使用post方法传递想要file_get_contents()返回的值

比如这道题,我们可以构造payload:/?ac=flag&fn=php://input,然后再post数据flag,

 

posted @ 2021-10-18 11:17  r1kka  阅读(742)  评论(0)    收藏  举报