开启环境:
使用POST传flag,flag目录/var/www/html/flag.php
先使用post来尝试读取该flag.php
没反应:
查看一下源码index.php,看有什么条件
base64解密:
<?php
$path = $_POST["flag"];
if (strlen(file_get_contents('php://input')) < 800 && preg_match('/flag/', $path)) {
echo 'nssctf waf!';
} else {
@include($path);
}
?>
使用POST传flag,preg_match过滤了flag,前面还有一个<800规则
也就是输入的字符串要有800个字符才能读取到,可以使用&符号构造一条语句
成功获取base64,拿去解密(一定是800个a)