前言
Web手,再次玩起了杂项。因为是省赛,所以题目除Web题外,并不太难(当然Web听说也不难,只不过对于我这个Web小菜鸡来说有点难)。上午ak了MISC,下午差一道题没有ak Crypto。然后就被Web第一题100分的题卡死,没去做下面的Web题,以为下边200分、300分的比100分的更难。比赛结束后,听说100分的第一道题做出来的人最少,emmmmm,我直接针不戳!好了先总结一下吧:
MISC
MISC1:注意数字
考点:文件分离+伪加密+多层Base64编码+仿射密码和脑洞
下载题目压缩包并解压。对“此图没有提示.jpg”文件,使用foremost进行文件分离,得到一个zip压缩包
解压发现需要密码,使用winhex打开,发现是伪加密,于是将504B0304 后的3、4位,将504B0102后的5、6位的0900改为0000,即可破解伪加密
解压得到1.txt文件,1.txt文件内容是Base64编码的。进行若干次Base64解码后,得到
猜测接下来,需要对yqjb{lha-drwohjw-ekf}
进行仿射密码解密。由“飞流直下三千尺,疑是银河落九天”,想到key1(a)为3,key2(b)为9。解密得到flag
MISC2:小火龙冲啊
考点:winhex末尾隐藏信息
下载题目压缩包并解压。使用解压工具winRAR打开“小火龙.jpg”,发现加密的flag.txt文件
使用winhex打开“小火龙.jpg”,在末尾发现解压密码:111111
解压,输入解压密码,解压成功得到flag.txt文件,打开得到flag
MISC3:五瓶药水
考点:CRC32碰撞+Base64解码并排序+Base64转图片+winhex末尾隐藏flag
下载压缩包题目文件,并解压,得到
发现橙色.zip、红色.zip、黄色.zip、绿色.zip、青色.zip的文件大小都很小,里边压缩文件大小都是4字节
于是想到4字节的CRC32碰撞,将这五个压缩包里的压缩文件的crc32,填到下列脚本的对应位置,进行碰撞
import binascii
import string
dic=string.printable
crc1 = 0xe5c67f46
crc2 = 0x555fa1a2
crc3 = 0x6e957e45
crc4 = 0x76d6a31a
crc5 = 0x2b042586
def crc32_4(crc):
for i in dic :
for j in dic:
for p in dic:
for q in dic:
s=i+j+p+q
if crc == (binascii.crc32(s.encode("ascii"))):
print (s)
return 1
crc32_4(crc1)
crc32_4(crc2)
crc32_4(crc3)
crc32_4(crc4)
crc32_4(crc5)
将这五部分分别进行Base64解码:
aW9u解码得ion
cG90解码得pot
Z2Vu解码得gen
YjEy解码得b12
Mw==解码得3
按照一定顺序进行拼接得到flag.zip压缩包的解压密码:potiongenb123
打开解压得到的flag.txt文件,得到
很明显,Base64转图片,得到一个jpg图片,使用winhex打开jpg 图片,在最后边发现flag
MISC4:我和十六有个约定
考点:winhex末尾隐藏信息+16进制转字符串+Base64转图片+16进制每行2位一组逆序保存为图片+二维码拼图
下载题目压缩包文件并解压,得到ababab.jpg和flag.zip文件。使用winhex打开ababab.jpg文件,在最后边发现keyis7034735377307244
,将7034735377307244进行16进制转字符串得到p4sSw0rD
p4sSw0rD
即是flag.zip的解压密码,解压得到flag.txt和splice.txt文件。
将splice.txt的文件内容进行Base64转图片,得到二维码标志位
下载下来。
打开flag.txt,发现每一行是jpg图片的16进制的逆序
于是,写个脚本进行转换
input = open('flag.txt', 'r')
input_all = input.readlines()
for lins in input_all:
ss = lins[::-1]
num=ss.split(' ')
for i in num:
xx=i[::-1]
print(xx,end=' ')
input.close()
成功转换,在winhex里新建文件,将这些16进制粘贴到winhex里,并保存。打开发现是缺少二维码标志位的二维码主体部分
将刚才得到的二维码标志位和这个主体部分进行拼图
使用支付宝进行二维码扫描,得到flag
MISC5:One_piece
考点:压缩包暴力破解+社会主义核心价值观加密+BrainFuck编码+维吉尼亚密码+解读c语言代码得到密钥
下载题目压缩包文件并解压,发现需要密码,由文件名四位数字,想到对压缩包口令进行暴力破解,得到压缩包解压密码:9156
解压得到secret.c和路飞海贼团的烦恼.txt文件,打开路飞海贼团的烦恼.txt文件,发现一串密文:
很明显是社会主义核心价值观加密,解密得
解密结果,很明显是BrainFuck编码,解码得glbe{pnf_njedc_js_ufjs_kmvrocz!}
解码结果感觉是维吉尼亚密码,但没有密钥。打开secret .c文件
,根据代码意思得到密钥的四个字符的ASCII码值:
ASCII码值转字符串得到密钥:aby
于是对glbe{pnf_njedc_js_ufjs_kmvrocz!}进行维吉尼亚解密,得到flag
Crypto
Crypto1:Base
考点:Base64转图片+Base92解码
下载题目压缩包文件并解压,打开base文件
于是Base64转图片,得到png图片,打开发现是二维码
扫描得到
对F#S<YReBy{f.WwU{CSv^e^'n*D
进行Base92解码,得到flag
Crypto2:不一样的凯撒*
考点:脑洞+找规律+凯撒变形+十进制转字符
题目密文是bhag{asb_zsz_vtsz_aszw}
,将字符串转ASCII得:
[98,104,97,103,123,97,115,98,95,122,115,122,95,118,116,115,122,95,97,115,122,119,125]
bh
对应的ASCII为98 104
,如果变成fl
则变成102
108
,为偶数ag
对应的ASCII为97 103
,不变,为奇数
所以,偶数+4,奇数不变,得到:
[102,108,97,103,123,97,115,102,95,126,115,126,95,122,120,115,126,95,97,115,126,119,125]
转字符串,很明显有问题,126已经超出可见字符范围了,便减去26,转字符串得到flag
[102,108,97,103,123,97,115,102,95,100,115,100,95,122,120,115,100,95,97,115,100,119,125]
转字符串得到flag:flag{asf_dsd_zxsd_asdw}
Crypto3:今天是个好日子
考点:unicode编码+Base64编码+脑洞+AES解密
下载题目压缩包文件并解压,得到一个二维码,扫描结果,很明显是unicode编码,解码得
解码结果是Base64编码,解码得:U2FsdGVkX1+ehXdDuA3EC7Tcr5bOHNhzbEPOz55Gdy5StZU7RDzY7Hfr5M1JoNtz
然后再进行Base64解码发现
加盐了,于是需要找到密钥,然后进行下面这些解密的其中一个
由题目“今天是个好日子”想到今天(比赛那天)的日期20201220
,即密钥
然后进行AES解密,得到flag
Web
Web1:web_checkin
考点:命令执行+绕过黑名单
打开题目,发现题目源码:
绕过ls关键字过滤可使用dir
命令绕过(但是没想到被坑了,dir
没有列出当前目录下的文件,必须用dir .
,我无语了emmmm。。。。)
绕过空格过滤可使用%09
绕过
绕过文件读取过滤可使用cut读取文件
、sed读取文件
和file -f读取文件
于是就产生了三种解:dir .
列出当前目录下的文件,得到flag文件F14g_1s_h4rehaha.php
cut%09-c%091-10000%09F14g_1s_h4rehaha.php
sed%09-n%092p%09F14g_1s_h4rehaha.php
file%09-f%09F14g_1s_h4rehaha.php
参考博客:河南省第二届金盾杯CTF web官方wp
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]
相关推荐: 2021年中科实数杯团队赛手机部分考题write up
本文由湖北警官学院19级网安乔靖雯编写,转载请注明。 今年五月份在江苏警官学院参加中科实数杯时,部分参赛选手在解题时一度卡在了模拟器的锁屏密码上,导致无法打开模拟器,后面的题目也因此全军覆没。但其实这只是“山重水复…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论