美文网首页
git泄露/file协议--Welcome To My Blog

git泄露/file协议--Welcome To My Blog

作者: ch3ckr | 来源:发表于2017-12-07 15:52 被阅读80次

题目地址:http://67cbb3ff99c448e0957076c4367b109b2fa699df5e294b1a.game.ichunqiu.com/index.php?action=home
题目界面:

点击三个栏目,观察url变化,猜测是一个文件包含(结果不是。。)。这里测试了一下action=flag,查看源码可以直接获取flag,这样就太简单了,我们看一下其他的解法。

如果仅仅看各个页面我们是不知道该系统逻辑的,所以猜测源码泄露,简单的测试一下(或扫描常见的备份/源码泄露),发现存在.git目录,我们尝试对其进行还原。

nac@nac-PC:~/Desktop$ file 3207b7443805336f105c63c6f9948f0c9ae7a4 
3207b7443805336f105c63c6f9948f0c9ae7a4: zlib compressed data

发现是zlib文件,使用python的zlib库进行还原,得到如下代码。
这里也可以使用别的方式进行恢复:链接

<?php
include "function.php";
if(isset($_GET["action"])){
    $page = $_GET["action"];
}else{
    $page = "home";
}
if(file_exists($page.'.php')){
    $file = file_get_contents($page.".php");
    echo $file;
}
if(@$_GET["action"]=="album"){
    if(isset($_GET["pid"])){
        curl($_GET["pid"]);
    }
}
?>

直接读flag.php的解法就不说了,这里重点在于curl函数,这里的curl并不是php自带的函数,而是在function.php中定义的函数,通过index.php?action=function可以读取function.php文件。

发现url可控,并且调用PHP的函数curl_exec(),查询官方文档可知支持file协议,所以可以读取本地文件系统。(payload:/index.php?action=album&pid=file:///var/www/html/flag.php

打开右键源码,flag就在最底部


reference:###

相关文章

网友评论

      本文标题:git泄露/file协议--Welcome To My Blog

      本文链接:https://www.haomeiwen.com/subject/nkidixtx.html