iwebsec-文件包含 07 php://input伪协议

发布时间 2023-08-20 13:30:30作者: 别打扰我摸鱼

01、题目分析

程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,

直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。

在包含文件的过程中,如果文件能进行控制,则存储文件包含漏洞

php://input用于对本地磁盘文件进行写入

02、文件包含

因为文件写入php://input是用的post来传递数据,因此我们直接post传入数据,可以发现,已经出现了我们写入的内容

image

03、源码分析

<?php
    echo file_get_contents("php://input");
?>

这段代码使用了 file_get_contents() 函数来读取来自 “php://input” 流的内容,并通过 echo 语句将其输出。

file_get_contents() 函数是 PHP 核心函数之一,它用于从文件或 URL 中获取内容。在这里,它接收了 “php://input” 作为参数,这是一个特殊的 PHP I/O 流,用于获取 HTTP 请求的原始请求体内容。

使用 “php://input” 流通常在处理 POST 请求时很有用,特别是当请求的内容为原始数据(如 JSON 或 XML)而不是表单数据时。这种方法可以直接获取请求体中的数据,而无需通过 $_POST$_REQUEST 等预定义变量来访问。