攻防世界 web write-up web_php_include

web_php_include

【原理】

php文件包含漏洞
php伪协议

【php文件包含漏洞】

  • 涉及到的php函数
    1.include(): 包含并运行文件,如果发生错误继续执行
    2.require(): 包含并运行文件,如果发生错误停止运行
    3.include_once(): 和include()一样,不过在执行前,先判断是否已包含文件;如果已存在,则不执行
    4.require_once(): 同上
  • 漏洞原理
    如下图代码,运行过程:
    • 提交URL,从url中取参获得page的值
    • 判断$_GET[page]是不是空,若不空(这里是main.php)就用include来包含这个文件
    • 若$_GET[page]空的话就执行else,来 include ”home.php” 这个文件。
if ($_GET[page]) {
include $_GET[page];
} else {
include "home.php";
}

通过构造URL中的参数,同时利用代码中的漏洞实现入侵。

【php伪协议】

  • 常见伪协议
    php://input
    php://filter
    详情可见

【题目】

攻防世界 web write-up web_php_include_第1张图片strstr()函数区分大小写,所以构造payload时将php改成PHP即可

【步骤】

利用文件包含漏洞,构造payload,并post恶意代码以获得当前所包含的文件
在这里插入图片描述在这里插入图片描述
得到
在这里插入图片描述
说明当前目录下包含的文件,再通过该漏洞打开文件即可:

在这里插入图片描述

【更多关于php文件包含的文章】

LFI with PHPinfo本地测试

你可能感兴趣的:(攻防世界,web,安全)