文章目录
_萌新
萌新认证
加群输入"萌新码"即可
萌新_密码1
密文:
53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F4749345A6A526B4F48303D
提交格式:KEY{XXXXXXXXXXXXXX}
工具下载:https://www.lanzoui.com/i9fn2aj
直接上CTF-Tools-v1.3.7
53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F4749345A6A526B4F48303D
常见解码 -> Hex->Str
S1lkZjBhM2ViZDVjNGRjMTYwLUV7ZmI2M2VlMDI5OGI4ZjRkOH0=
Base解码 -> Base64
KYdf0a3ebd5c4dc160-E{fb63ee0298b8f4d8}
解密 -> 栅栏密码 -> 栅栏密码
分为2栏,解密结果为:Kd03b54c6-{b3e28848Yfaedcd10Ef6e09bfd}
分为19栏,解密结果为:KEY{dffb06a33eeeb0d259c84bd8cf146d08-}
萌新_密码2
出题人已累,随便敲了几下键盘。。。 rdcvbg 2qase3 6tghu7
flag格式KEY{XXXXXX}
键盘围住的单词fwy,得到答案KEY{fwy}
萌新 密码3
题目名称:我想吃培根 题目描述: -- --- .-. ... . ..--.- .. ... ..--.- -.-. --- --- .-.. ..--.- -... ..- - ..--.- -... .- -.-. --- -. ..--.- .. ... ..--.- -.-. --- --- .-.. . .-. ..--.- -- -- -.. -.. -- -.. -- -.. -- -- -- -.. -.. -.. /-- -.. -- -.. -.. --/ -- -- -- -- -- /-- -.. -.. -- -.. -- /-- -.. -.. -- 格式:flag{***********}
继续使用CTF-Tools-v1.3.7
删掉分割线/
-- --- .-. ... . ..--.- .. ... ..--.- -.-. --- --- .-.. ..--.- -... ..- - ..--.- -... .- -.-. --- -. ..--.- .. ... ..--.- -.-. --- --- .-.. . .-. ..--.- -- -- -.. -.. -- -.. -- -.. -- -- -- -.. -.. -.. -- -.. -- -.. -.. -- -- -- -- -- -- -- -.. -.. -- -.. -- -- -.. -.. --
解密 -> 摩斯密码
MORSE_IS_COOL_BUT_BACON_IS_COOLER_MMDDMDMDMMMDDDMDMDDMMMMMMMDDMDMMDDM
提示培根密码:M->A; D->B
字符处理 -> 替换
AABBABABAAABBBABABBAAAAAAABBABAABBA
解密 -> 培根密码
GUOWANG
萌新 隐写2
tips:文件的主人喜欢用生日做密码,而且还是个90后。
爆破压缩包密码
打开Advanced Archive Password Recovery
将范围选择为所有数字19900000
到19999999
得到压缩包密码19981000
萌新 隐写4
打开是个word,设置显示隐藏文字,即可获得flag
萌新 密码4
QW8obWdIWF5FKUFSQW5URihKXWZAJmx0OzYiLg==
tips:比base64还大的base
继续使用CTF-Tools-v1.3.7
QW8obWdIWF5FKUFSQW5URihKXWZAJmx0OzYiLg==
Base解码 -> Base64
Ao(mgHX^E)ARAnTF(J]f@<6".
将<进行HTML实体字符转义
常见解码 -> HtmlEncode
Ao(mgHX^E)ARAnTF(J]f@<6".
Base解码 -> Base85(ASCII85)
flag{base_base_base}
萌新 隐写3
打开图片在角落就能看到flag{xinti_gkd}
杂项1
小明想给心爱的妹子表白很久,可是不知道怎么开口,你能帮帮小明吗?
已知 md5(表白的话+ctf)=ed400fbcff269bd9c65292a97488168a
提交flag{表白的话}
使用在线md5解密网站https://www.somd5.com/
得到明文为helloctf
所以flag为hello
杂项2
小明终于找到了萌新码,开始了自己的CTF冒险征程。
工具地址:https://www.lanzoui.com/i9h1lfi
提交flag{XXXXX}
直接010 Editor打开,在末尾看到flag:flag{ctfshow_im_coming}
萌新 杂项3
大家好我是小萌新羽,前不久我的一个朋友给我了一张银行卡,他说里面有一大笔钱,但是他只告诉我他的生日是九七年十月一日,你能帮我猜猜他的银行卡密码是多少吗,哦对,这个朋友有个小名叫小五。
flag格式:flag{银行卡密码}
flag{971015}
杂项4
小明心爱的图片在压缩包中,可是小明夜深人静的时候,孤枕难眠,想打开图片排遣寂寞,可是忘记了密码了,小米依稀记得9位的密码都是数字,前3位是372,你能帮助小明吗?
工具地址:https://www.lanzoui.com/i9h29li
flag{372XXXXXX}
打开Advanced Archive Password Recovery
将范围选择为所有数字372000000
到372999999
得到压缩包密码372619038
杂项5
小明如愿以偿的打开了压缩包,可是眼前的文字自己只能认识FBI,其他的都不认识,而且屏幕出现了一句话,你能帮小明找到这句话的意思吗?
打开后发现下面的内容
i was always Fond of visiting new scenes, and observing strange characters and manners. even when a mere chiLd i began my travels, and made mAny tours of discovery into foreiGn {parts and unknown regions of my native City, to the frequent alarm of my parents, and The emolument of the town-crier. as i grew into boyhood, i extended the range oF my obServations. my holiday afternoons were spent in rambles about tHe surrounding cOuntry. i made myself familiar With all its places famous in history or fable. i kNew every spot where a murder or robbery had been committed, or a ghost seen. i visited the neighboring villages, and added greatly to my stock of knowledge,By noting their habits and customs, and conversing with their sages and great men.}
发现存在几个大写字母和花括号,猜测需要把所有大写字母抠出来
flag{CTFSHOWNB}
杂项6
小明的压缩包又忘记密码了?他去电脑维修店去修,人家扔出来说这个根本就没有密码,是个假密码。小明懵了,明明有密码的啊,你能帮帮小明吗?
伪密码,将504B0102 后面几个字节的09改为00解压即可
杂项7
小明小心翼翼的打开压缩包,竟然是个图片,什么鬼?
要是图片能继续往长一点该多好啊,小明暗暗的想。
你能帮小明完成这个朴素的梦想吗?
本题考点是png图片改高度
先看下属性中的详细信息,宽度365像素,高度389像素
389的16进制是185
在winhex中185改大,改成285
png格式,从第二行开始,前四个字节代表宽度,后四个代表高度
将原来的0185修改为0285,这样就可以看到flag信息
杂项8
小明看完图片老脸一红,心想,我女朋友能有这么瘦就好了。
因为宽度的原因导致图片显示不了,但是又不知道原本的图片宽是多少
通过爆破CRC得到原来的宽度
CRC就是校验码,含有长宽的信息,用010打开图片,CRC就是第二行最后三个加上第三行第一个值,也就是cbd6df8a
附上wp脚本
import zlib
import struct
filename = 'flag.png'
with open(filename, 'rb') as f:
all_b = f.read()
data = bytearray(all_b[12:29])
n = 4095
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
crc32result = zlib.crc32(data)
if crc32result == 0x91918666:
print("宽为:", width, int.from_bytes(width, byteorder='big'))
print("高为:", height, int.from_bytes(height, byteorder='big'))
这个py脚本与图片放在同一个路径下,在py3的环境中运行,得到宽和高,并转换为16进制
宽为 524 16进制的20c
高为 175 16进制的af
然后在winhex中,将原本的宽修改为020c,高还是af不需要改
再打开图片即可得到flag
杂项10
本题通过看图片上的字符轮廓,得到flag{我好喜欢你}
杂项11
小明:怎么又说我???
工具地址:https://www.lanzoui.com/i9hm2di
题目给了一个工具JPHS,然后我们就用这个工具看有没有隐藏信息
打开图片点击最上面的seek,然后密码为空
将提取出来的文件,重命名为bp.txt
然后打开这个文本文档,发现是乱码,但是还是看出一些有用的信息,文本文档头显示什么NG,怀疑可能是PNG格式的图片文件
将txt重命名成png,发现是一张二维码图片,然后用QR Research工具扫描一下图片,发现内容像base64编码
https://ctf.show/?ZmxhZ3vmiJjnpZ7lvZLmnaXlj5HnjrDoh6rlt7HlhL/lrZDlnKjliLfpopjvvIzkuIDmgJLkuYvkuIvlj6zllKQxMOS4h+WwhuWjq+adpeaKpeS7h30=
然后使用CTF-Tools-v1.3.7中Base64解码得到flag
flag{战神归来发现自己儿子在刷题,一怒之下召唤10万将士来报仇}
隐写1
打开png图片报错
放入winhex中发现文件头前四个是99504E47
然而真正的文件头
JPEG(jpg),文件头:FFD8FFE1
PNG(png),文件头:89504E47
将文件头由99改为89,再打开即可得到flag
隐写2
和杂项11一样,依旧是考察JPHS
直接工具打开,点击seek,密码留空
导出文件flag.txt
打开即可看到flag
萌新隐写5
打开txt发现奇怪的字符串
䴀娀圀䜀䌀娀娀䤀一䈀儀圀㘀堀㌀䬀一䘀㈀嘀㘀夀吀嘀䰀㔀㐀圀㘀㌀吀䠀䰀㔀刀䐀䜀䴀匀㜀䘀䔀㴀㴀㴀㴀㴀㴀
将中文进行Unicode解码:https://tool.chinaz.com/tools/unicode.aspx
或者是CTF-Tools的常见编码->Unicode
\u4d00\u5a00\u5700\u4700\u4300\u5a00\u5a00\u4900\u4e00\u4200\u5100\u5700\u3600\u5800\u3300\u4b00\u4e00\u4600\u3200\u5600\u3600\u5900\u5400\u5600\u4c00\u3500\u3400\u5700\u3600\u3300\u5400\u4800\u4c00\u3500\u5200\u4400\u4700\u4d00\u5300\u3700\u4600\u4500\u3d00\u3d00\u3d00\u3d00\u3d00\u3d00
使用字符处理->替换,去掉\u
4d005a005700470043005a005a0049004e004200510057003600580033004b004e0046003200560036005900540056004c0035003400570036003300540048004c0035005200440047004d0053003700460045003d003d003d003d003d003d00
然后使用字符处理->拆分,输入2
4d 00 5a 00 57 00 47 00 43 00 5a 00 5a 00 49 00 4e 00 42 00 51 00 57 00 36 00 58 00 33 00 4b 00 4e 00 46 00 32 00 56 00 36 00 59 00 54 00 56 00 4c 00 35 00 34 00 57 00 36 00 33 00 54 00 48 00 4c 00 35 00 52 00 44 00 47 00 4d 00 53 00 37 00 46 00 45 00 3d 00 3d 00 3d 00 3d 00 3d 00 3d 00
然后选择常见解码->ASCII(16进制)
MZWGCZZINBQW6X3KNF2V6YTVL54W63THL5RDGMS7FE======
最后选择Base解码->Base32
flag(hao_jiu_bu_yong_b32_)
萌新隐写6
下载后发现是音频
使用Audacity打开,发现左声道类似于摩斯电码
长的一节看作_,短的一节看作.
-- ..- --.. .. -.- .. ... --. ----- ----- -..
摩斯解码得到
MUZIKISG00D
套上flag{}提交即可
web1
给出了php源码
<?php
# 包含数据库连接文件
include("config.php");
# 判断get提交的参数id是否存在
if(isset($_GET['id'])){
$id = $_GET['id'];
# 判断id的值是否大于999
if(intval($id) > 999){
# id 大于 999 直接退出并返回错误
die("id error");
}else{
# id 小于 999 拼接sql语句
$sql = "select * from article where id = $id order by id limit 1 ";
echo "执行的sql为:$sql<br>";
# 执行sql 语句
$result = $conn->query($sql);
# 判断有没有查询结果
if ($result->num_rows > 0) {
# 如果有结果,获取结果对象的值$row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - title: " . $row["title"]. " <br><hr>" . $row["content"]. "<br>";
}
}
# 关闭数据库连接
$conn->close();
}
}else{
highlight_file(__FILE__);
}
?>
<!-- flag in id = 1000 -->
需要传入id等于1000,并且intval()之后需要小于999
intval函数特性:
intval函数是获取变量的整型值,当它获取的变量不能被转换时返回0;
如果字符串其中有数字,则返回数字;
如果开头无法被转换,则返回0;
所以存在以下绕过方法:
- 单引号绕过:?id=‘1000’
- 相乘绕过:?id=100*10
- 16进制绕过:?id=0x3e8
- 2进制绕过:?id=0b1111101000
- 二次取反绕过:?id=~~1000
- 逻辑或绕过:?id=999 or id=1000
- 逻辑或绕过:?id=999 || id=1000
- 相减绕过:?id=999–1
- 相除绕过:?id=500/(0.5)
- 左移绕过:?id=500<<1
- 字符串绕过:?id=“1000”
- 异或绕过:?id=328^672
web2
增加了一些过滤
<?php
# 包含数据库连接文件
include("config.php");
# 判断get提交的参数id是否存在
if(isset($_GET['id'])){
$id = $_GET['id'];
if(preg_match("/or|\+/i",$id)){
die("id error");
}
# 判断id的值是否大于999
if(intval($id) > 999){
# id 大于 999 直接退出并返回错误
die("id error");