工控闯关web

概述

这次比赛web就俩题,一个云waf没人做,众测本来也不一定是一定绕过的么。这道web题只有四个队没做出来,也是后来放的提示太狠了。我是坑都绕完了提示才放,显然我动作太慢了。

扫目录

AWVS可能扫出常用的英文单词,dirsearch可以自定义目录

  • AWVS
    • robots.txt
    • index.php
    • login.php
    • hack.php
    • hint.php
  • dirsearch
    • admin/admin.php
    • admin/index.php

cookie绕过

  • cookies:isLogin=0,改为1绕过login
  • 访问admin.php,重定向url:admin/admin.php?file=index.php&ext=php

文件包含

  • 试着用php://filter读源码和php://input执行php失败??如何做到???
  • 可以包含本目录下的文件../好像被过滤
  • …/./可以读上层,知道过滤方法是将../删掉
  • 没地方上传,没法传马包含,没思路了
  • 后来tc的提到日志是可控的!!!
  • 提示nignx的配置文件

nignx配置文件

  • 导致/web-img../可以遍历路径??location alias!!
  • 访问/usr/share/nginx/html却直接下载index.php
  • 直接在url键入/usr/share/nginx/html/hint.php
  • 拿到所有源码

flag在FLAGFLAGFALG.pacpng中

  • 因为没有在路径遍历里找到这个文件?日期排序?
  • 所以以为要连上hack.php这个后门文件,然后shell搜索
  • 浪费了好多时间

FLAGFLAGFALG.pacpng就在web目录下

  • 403
  • 遍历403
  • include包含拿到数据包

weevely后门数据包分析

  • 解密脚本
<?php
$kh = "42f7";
$kf = "e9ac";
$data='TK5N+dVrUddmeq1+KZavLf14Svms969i5gujFzt3FxJ+ZChBB0g3zqFwOEnsezsdXWxsIGUog3Dg';
function x($t, $k) {
    $l = strlen($t);
    $c = strlen($k);
    $o = "";
    for ($i = 0;$i < $l;) {
        for ($j = 0;($j < $c && $i < $l);$j++, $i++) {
            $o.= $t{$i} ^ $k{$j};
            // 0 ^ 0 = 0;1 ^ 1 = 0;0 ^ 1 = 1;1 ^ 0 = 1;
        }
    }
    return $o;
}
$k=$kh.$kf;
echo gzuncompress(x(base64_decode($data),$k));?>

总结