June GKCTF X DASCTF MISC&CRYPTO篇
2021年6月26日,GKCTF X DASCTF应急挑战杯圆满落幕。
本次竞赛涵盖WEB、CRYPTO、MISC、PWN、REVERSE常规CTF五大类赛题。
本篇主要分享MISC&CRYPTO方向writeup,一起来看看吧~
NO.00
MISC类榜单
排名 | 战队名称 | 单位 | 积分 | 解题数 |
---|---|---|---|---|
1 | 魔法少女联合摸鱼 | 杭州电子科技大学 | 2175 | 7 |
2 | 春 | 杭州职业技术学院 | 2175 | 7 |
3 | nya~nya | CTFS | 2175 | 7 |
4 | 勇敢牛牛 | 广西科技大学 | 2175 | 7 |
5 | DizzyTeam | 东北林业大学 | 2175 | 7 |
NO.00
CRYPTO类榜单
排名 | 战队名称 | 单位 | 积分 | 解题数 |
---|---|---|---|---|
1 | 起名困难户 | 南京航空航天大学 | 2189 | 3 |
2 | s0ild0g | 三江学院 | 2189 | 3 |
3 | WaterDrop | 中山大学 | 2189 | 3 |
4 | SUS | 东南大学 | 2189 | 3 |
5 | 魔法少女联合摸鱼 | 杭州电子科技大学 | 2189 | 3 |
NO.01
MISC-签到
pcapng流量包
追踪http流,发现依次执⾏【ls】【ls /】【whoami】
发现存在【f14g】,同时发现破解的规则为hex decode->base64 decode->rev
继续追踪,得到【cat /f14g base64】中得到
hex后
base64后
数据处理后
flflag{Welc0me_GkC4F_m1siCCCCCC!}
NO.02
MISC-你知道apng吗
apng是普通png图⽚的升级版,也可以说是加强版的gif
拖进浏览器查看发现诸多⼆维码
1)分离apng可⽤apngdis_gui.exe⼀键分离
或者截图
2)挨个利⽤ps进⾏还原
第2帧
flflag{a3c7e4e5
第10帧
-9b9d
第18帧
-ad20
第26帧
-0327-288a235370ea}
>其实此处帧数以及Uuid的格式都给了提示
flflag{a3c7e4e5-9b9d-ad20-0327-288a235370ea}
NO.03
MISC-银杏岛の奇妙冒险
mc游戏题
出⻔拿⼸,领取任务后依次打倒出题⼈得到flflag(彩蛋任务是misc姐姐照⽚!)
json⽂件搜索关键词"part"也可以得到!
GKCTF{w3lc0me_t0_9kctf_2021_Check_1n}
NO.04
MISC-FireFox Forensics
1) 根据题⽬提示,是关于⽕狐浏览器取证的题⽬,查找资料(https://github.com/lcl evy/fifirepwd)可知浏览器的版本是Firefox >=58.0.2 (key4.db, logins.json)
2) ⽐较简单的⽅法,是直接使⽤现成项⽬对key4.db, logins.json内容进⾏解密, logins.json⾥⾯有加密的⽤户名和密码,密码就是本题的flflag,key4中存放着密钥 稍微研究可知,key4.db是⼀个sqlite数据库,⾥⾯存储⽤于3DES解密logins.json的密 钥,以及被加密的⽤于验证主密钥解密的password-check值,⾥⾯有两个表metaData 和nssPrivate,metaData中id为password的item1列为包含加密期间使⽤的全局盐值 (globalSalt);item2列为ASN.1编码后的加密password-check数据,⾥⾯包含被加密 的password-check字符串和⽤于加密的⼊⼝盐值(entrySalt)。nssPrivate中 a11 列存 放的是⽤于加解密的主密钥。
3)当然解题不需要太多的原理知识,只需要找到可以解密89版本的脚本或者程序即 可,参照以下github中的脚本,可以快速解密出flflag
NO.05
MISC-excel骚操作
应⽤excel时发现⼀个好玩的点
如果单元格类型为“;;;”时,excel会隐藏单元格中的数字
因此在excel的某些单元格内发现“1”字样后 可通过挨个还原或全选后右键设置单元格样式 ⾃定义-》G/通⽤格式
查找所有的【1】改为⿊⾊填充
中国编码APP扫描汉信码 得到flflag
flflag{9ee0cb62-f443-4a72-e9a3-43c0b910757e}
NO.06
MISC-0.03
磁盘挂载时,通过不同密码进⼊不同系统
解压得到txt和zip zip⽂件名提示flflag在磁盘⾥ 通过VeraCrypt挂载后,提示需要密码
直接输⼊txt⾥提示的密码【311223313313112122312312313311】
会出现fakeflflag 结合题⽬名称【三分】以及【disk】等信息
尝试NTFS解密
得到隐藏的数据流
结合题⼲【三分】
搜索后联想到【三分密码】
https://zh.wikipedia.org/wiki/%E4%B8%89%E5%88%86%E5%AF%86%E7%A2%BC
解密得到【EBCCAFDDCE】
⽤正确密码挂载后得到flflag.txt
flflag{85ec0e23-ebbe-4fa7-9c8c-e8b743d0d85c}
NO.07
CRYPTO-Random
MT伪随机数的考察,刚好给了624组states,只要把64、96位的数据进⾏32的处理即可
NO.08
CRYPTO-RRRRsa
分析题⽬就是通过hint1 hint2进⾏求解p,通过hint3 hint4进⾏求解q
得到p q后就可以直接求解rsa
NO.01
CRYPTO-XOR
主要是两个考点,⼀个是正常异或,⼀个是倒序异或,采⽤的⽅式都是进⾏爆破,主要的思想就是深度搜索
1.⾸先正常的两个数异或,从低位开始爆破
当异或结果为1时,a b对应的位置上只有两种情况, 1 0或者0 1
当异或结果为0时,a b对应的位置上也只有两种情况, 1 1或者0 0
这样分析下来,每⼀位异或的结果只有四种情况
那么判断条件的设置就是如下两个:取出异或结果的每⼀个低位进⾏异或结果的校验判断,即x1的低位对a b每⼀位低位异或进⾏约束
再从最后⼀位依次取n进⾏乘法结果的校验,即n1模2**k对a*b模2**k进⾏约束
2.倒序的异或,除了深度搜索,另外还采⽤了中间相遇的思想,从⾸尾两头开始爆破,加快爆破的速度,根据正常异或进⾏推导
那么判断条件就是如下四个:
x2的低位对c的低位和d的⾼位异或进⾏约束
x2的⾼位对c的⾼位和d的低位异或进⾏约束
n2的低位对c的低位与d的低位乘积进⾏约束
n2的⾼位⼤于c的⾼位与d的⾼位乘积,n2的⾼位与c的⾼位与d的⾼位乘积的差值⼩于全1的情况
感谢DeeBaTo师傅提供的解题思路,附上⼤师傅的博客的博客
https://d33b4t0.com/2021/0 5/13/H4n53r-TEAM/