2021寒假MISC打卡DAY4

博客内容涉及多个CTF比赛的解密题,包括图片、音频和文档的处理。解谜过程包括二维码还原、JavaScript解密、音频解码、九宫格解码和Word文档修复。最终解出的字符串经过MD5加密,揭示了派大星屁股疤痕的秘密和HarleyQuinn的短信密码。
  1. [GKCTF2020]code obfuscation

压缩包密码是加密过的

得到一张扭曲的二维码,还原得

天天PS我真是:)

savyZR.png

扫码得【base(gkctf)】

根据提示,存在压缩包,对图片进行分离,果然得到了。

将明文通过base58加密后得到CfjxaPF,解开

得名为1的文件和flag3.png

图片不知道咋说啥,先处理1里的内容

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('15 n 14 a b c d e f g h i j k l m n o p q r s t u v w x y z 10 11 17="n"12 15 n 14 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10 11 17="n"12 13=0 15 n 14 a b c d e f g h i j 10 11 16="n"13=$((13+1))12 1g("1f=\' \';1e=\'"\';16=\'#\';1j=\'(\';1i=\')\';1h=\'.\';1a=\';\';19=\'<\';18=\'>\';1d=\'1c\';1b=\'{\';1k=\'}\';1t=\'0\';1u=\'1\';1s=\'2\';1r=\'3\';1n=\'4\';1m=\'5\';1l=\'6\';1q=\'7\';1p=\'8\';1o=\'9\';")',62,93,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||do|eval|done|num|in|for|Bn|An|Ce|Cc|Cb|Cn|_|Cl|Bm|Bk|alert|By|Bt|Bs|Cp|Dg|Df|De|Dj|Di|Dh|Dd|Dc|Da|Db'.split('|'),0,{}))

js解密得

for n in a b c d e f g h i j k l m n o p q r s t u v w x y z do eval An = "n"
done
for n in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z do eval An = "n"
done num = 0
for n in a b c d e f g h i j do eval Bn = "n"
num = $((num + 1)) done alert("Bk=' ';Bm='"';Bn='
# ';Bs=' (';Bt=')';By='.';Cb=';
';Cc=' < ';Ce=' > ';Cl='
_ ';Cn=' {
	';Cp='
}
';Da='
0 ';Db='
1 ';Dc='
2 ';Dd='
3 ';De='
4 ';Df='
5 ';Dg='
6 ';Dh='
7 ';Di='
8 ';Dj='
9 ';")

根据flag3.png对应得到Aa=a;Ab=b等Bk=’ ‘;Bm=’"’;Bn=’#‘等Cb=’;Cc=’<'等Da=‘0’;Db='1’等

#include <stdio.h>
int main(){
    print("w3lc0me_4o_9kct5");
    ……
}

得到flag

w3lc0me_4o_9kct5
  1. 26

[UTCTF2020]docx

得到的 flag 请包上 flag{} 提交。

打开看了一波,没啥发现。

docx常规做法,更改后缀为.zip

在/word/media中发现flag

utflag{unz1p_3v3ryth1ng}

果然是unzip everything哈哈哈

  1. 派大星的烦恼

派大星最近很苦恼,因为它的屁股上出现了一道疤痕!我们拍下了它屁股一张16位位图,0x22,0x44代表伤疤两种细胞,0xf0则是派大星的赘肉。还原伤疤,知道是谁打的派大星!(答案为32位的一串字符串) 注意:得到的 flag 请包上 flag{} 提交

给了一张粉色的图片,丢进010editor查看,根据提示,找到0x22,0x44的部分

"DD"DD""""D"DD""""""DD"""DD"DD""D""DDD""D"D"DD""""""DD""D""""DD"D"D"DD""""D"DD""D"""DD"""""DDD""""D"DD"""D"""DD"""D""DD"D"D"DD"""DD""DD"D"D""DD""DD"DD"""D"""DD""DD"DD""D"D""DD"D"D"DD"""D"""DD"""D"DD""DD"""DD"D"D""DD"""D"DD""DD""DD"""""DDD""DD""DD"""D""DD""

两种编码,自然想到01转二维码

通过替换得到

0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100

转二维码无果

01还能想到二进制,但直接转二进制存在不可见字符。

想了好久,看了大佬博客才知道,此处应该将每八位二进制进行反转

def bin_to_str(s):
    return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])


a = "01101100 00101100 00001100 01101100 10011100 10101100 00001100 10000110 10101100 00101100 10001100 00011100 00101100 01000110 00100110 10101100 01100110 10100110 01101100 01000110 01101100 10100110 10101100 01000110 00101100 11000110 10100110 00101100 11001100 00011100 11001100 01001100"
a = a.split(' ')
flag = ''
for i in a:
    test = i[::-1]
    flag += bin_to_str(test)

print flag

得到

6406950a54184bd5fe6b6e5b4ce43832

所以到底是谁打的派大星呢?可爱 4. i

  1. [GKCTF2020]Harley Quinn

Ivy给Harley发了一个短信……算了,编不下去了,先听后看就完事了……
音频解码可能有误差,密码为有意义的无空格小写短句 解密版本为1.25

hint:电话音&九宫格

FreeFileCamouflage,下载的文件可能显示乱码

根据第一条提示,利用dtmf2num对Heathens.wav进行解码(先截取音频中电话音的部分

得到

- DTMF numbers:  #22283344477773338866#

根据经验,九宫格解码得

ctfisfun

其中需要自己手动调整部分内容,使其成为有意义的短句

第二步是下载FreeFileCamouflage,并按照要求输入密码和图片进行解密就好,得flag.txt

flag{Pudd1n!!_y0u_F1nd_m3!}
  1. 粽子的来历

曹操的私生子曹小明因为爸爸活着的时候得罪太多人,怕死后被抄家,所以把财富保存在一个谁也不知道的地方。曹小明比较喜欢屈原,于是把地点藏在他的诗中。三千年后,小明破译了这个密码,然而却因为担心世界因此掀起战争又亲手封印了这个财富并仿造当年曹小明设下四个可疑文件,找到小明喜欢的DBAPP标记,重现战国辉煌。(答案为正确值(不包括数字之间的空格)的小写32位md5值) 注意:得到的 flag 请包上 flag{} 提交

学到了学到了,word还能这样用(脑洞太大了叭

附件得到四个损坏的word,丢进010editor,发现明显的错误

sdcjC6.png

将其修改为F即可正常打开

里面是屈原的诗。作为一个MISC手,应该看到行距的不同,查看【段落】可知道,有些是单倍行距,有些是1.5倍,进行01的转换

分别得到由四个word得到的四串数字。按题目要求进行md5加密就好啦

287b8ceed1c89f1eb1082b3076b7a321
59f3bfe7c1e00ba34e4558cf295544bc
d473ee3def34bd022f8e5233036b3345

由于试到第三串的时候正确了,就没有再对D进行处理啦

### DASCTF MISC 2021 题目与解题报告 对于DASCTF MISC 2021的相关题目和解题报告,虽然特定年份的具体资料可能较为零散,但从已有的资源可以推测出一些通用的方法和技术来解决这类问题。 #### 流量分析技术 流量分析是MISC类别中的一个重要方面。通过捕获并解析网络通信数据包,能够揭示隐藏的信息或者理解攻击者的行为模式[^2]。例如,在某些比赛中可能会遇到需要从HTTP请求响应中提取秘密信息的任务。 #### 编码与加密挑战 许多MISC类型的题目涉及到不同形式的数据编码或简单加密算法的应用。参赛选手需掌握Base64、十六进制转换以及更复杂的密码学概念以便快速识别并解开谜团[^1]。 #### 文件格式探索 图片文件(如PNG)、文档和其他多媒体载体常常被用来作为隐写术的媒介。了解这些文件内部结构有助于发现嵌入其中的秘密消息。比如png_master这道题就展示了如何利用图像元数据获取最终答案[DASCTF{2fd9e9ff-e27d-5405-c5f5-a19131f86216}] [^3]. #### 实际案例研究 为了更好地准备类似的竞赛项目,建议参考过往比赛期间发布的write-up文章。它们不仅提供了详细的解决方案说明,还分享了许多实用的小贴士。例如,《DASCTF八月misc部分题目复现》记录了几种有效应对USB设备相关难题的方式[^4]。 尽管上述链接主要集中在其他年度的比赛上,但所描述的技术同样适用于寻找有关DASCTF MISC 2021的内容。可以通过搜索引擎查询关键词"DASCTF MISC 2021 writeup" 或访问GitHub上的CTF Writeups仓库找到更多针对性材料。 ```python import requests from bs4 import BeautifulSoup def search_ctf_writeups(query): url = f"https://google.com/search?q={query}" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') results = [] for item in soup.select('.tF2Cxc'): title = item.find('h3').get_text() link = item.find('a')['href'] snippet = item.find('span', class_='st').get_text() result = { "title": title, "link": link, "snippet": snippet } results.append(result) return results[:5] search_results = search_ctf_writeups("DASCTF MISC 2021 writeup") for i, res in enumerate(search_results, start=1): print(f"{i}. {res['title']}\n Link: {res['link']}\n Snippet: {res['snippet']}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值