本文最后更新于521 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

使用post传参,发现有过滤

尝试读取index.php

解码后的结果:
<?php
$path = $_POST["flag"];
if (strlen(file_get_contents(‘php://input’)) < 800 && preg_match(‘/flag/’,
}
?>
这段 PHP 代码通过 POST 获取flag参数值赋给$path,若 POST 数据长度小于 800 且$path含flag就输出提示,否则尝试包含$path指定文件。(只需要不满足一个条件就行)
php://input:将post传递的数据当作代码执行

解码:
<?php =’NSSCTF{2fd0ccf6-aa21-4c83-b669-a3d0585056e5}’;
?>
总结
php伪协议:
php://input:将POST传递的数据当作php代码执行
php://filter:读取文件内容
文件包含
include()包含函数