[GXYCTF2019] MISC杂项题

buuoj复现

1,佛系青年

下载了之后是一个加密的txt文件和一张图片

分析图片无果,很讨厌这种脑洞题,MISC应该给一点正常的线索加部分脑洞而不是出干扰信息来故意让选手走错方向,当时比赛做这道题的时候也是醉了

接着将压缩包放进010Editor查看是否伪加密和其他线索

发现伪加密,将0900改成0000,保存之后打开txt文件

很明显最后一句是与佛论禅

佛曰:遮等諳勝能礙皤藐哆娑梵迦侄羅哆迦梵者梵楞蘇涅侄室實真缽朋能。奢怛俱道怯都諳怖梵尼怯一罰心缽謹缽薩苦奢夢怯帝梵遠朋陀諳陀穆諳所呐知涅侄以薩怯想夷奢醯數羅怯諸

  在线解密得到:

2,gakki

下载压缩包之后是一张gakki的图片

foremost一下

分离之后得到了压缩包,同时需要密码

尝试数字爆破

得到密码8864

解密之

flag.txt文件里面是一大堆乱七八糟的字符,这种无规律的字符集我们就尝试字频统计

附上官方字频统计exp:(羡慕

# gakki_exp.py
# Author : imagin
alphabet = "[email protected]#$%^&*()_+- ={}[]"
f = open("flag.txt", "r")
data = f.read()
result = {d:0 for d in alphabet} 

def sort_by_value(d):
	items = d.items()
	backitems = [[v[1],v[0]] for v in items]
	backitems.sort(reverse=True)
	return [ backitems[i][1] for i in range(0,len(backitems))] 

for d in data:
	for alpha in alphabet:
		if d == alpha:
			result[alpha] = result[alpha] + 1 

print(sort_by_value(result))

 跑一遍就得到flag了

这道题重在看到题目的意识。

 

3,SXMgdGhpcyBiYXNlPw==

先将题目base64解密

得到  Is this base?

下载附件

压缩包里面是flag.txt

看起来是很多的base64加密,尝试解密第一行的字符串,使用base64解码得到:

Cette nuit,

确实是base64加密,于是我们多行base64解密,得到:

Cette nuit,

Intenable insomnie,

La folie me guette,

Je suis ce que je fuis

Je subis,

Cette cacophonie,

Qui me scie la t锚te,

Assommante harmonie,

Elle me dit,

Tu paieras tes delits,

Quoi qu‘il advienne,

On tra卯ne ses cha卯nes,

Ses peines,

Je voue mes nuits,

A l‘assasymphonie,

Aux requiems,

Tuant par depit,

Ce que je seme,

Je voue mes nuits,

A l‘assasymphonie,

Et aux blasphemes,

J‘avoue je maudis,

Tous ceux qui s‘aiment,

L‘ennemi,

Tapi dans mon esprit,

F锚te mes defaites,

Sans repit me defie,

Je renie,

La fatale heresie,

Qui ronge mon 锚tre,

Je veux rena卯tre,

Rena卯tre,

Je voue mes nuits,

A l‘assasymphonie,

Aux requiems,

Tuant par depit,

Ce que je seme,

Je voue mes nuits,

A l‘assasymphonie,

Et aux blasphemes,

J‘avoue je maudis,

Tous ceux qui s‘aiment,

Pleurent les violons de ma vie,

La violence de mes envies,

Siphonnee symphonie,

Deconcertant concerto,

Je joue sans toucher le Do,

Mon talent sonne faux,

Je noie mon ennui,

Dans la melomanie,

Je tue mes phobies,

Dans la desharmonie,

Je voue mes nuits,

A l‘assasymphonie,

Aux requiems,

Tuant par depit,

Ce que je seme,

Je voue mes nuits,

A l‘assasymphonie,

Et aux blasphemes,

J‘avoue je maudis,

Tous ceux qui s‘aiment,

Je voue mes nuits,

A l‘assasymphonie (l‘assasymphonie),

J‘avoue je maudis,

Tous ceux qui s‘aiment

  有的解码之后因为编码不同出现了乱码。

去百度搜索了一下,原来这个是杀人狂想曲的歌词

但是有的地方好像又跟原曲子不太一样,一般这种文字很多的第一反应就会想到字频加密,不过前一道题目已经考过这个点了。

跑了一下字频加密也没有什么结果,因为是base64加密,所以考虑到是base64隐写,找到一篇介绍base64隐写的文章,贴上链接:

https://www.tr0y.wang/2017/06/14/Base64steg/index.html

base64隐写我记得在一道题里面遇到过。

贴上官方解释,学习一波:

base64是将3个8比特转换成4个6比特,最小的转换单位是24比特(6和8最小公倍数)

因此如果原文内容不足三字节,有一部分比特解码时候不需要,但会组成编码后的某个字符。

比如上图A的 0100 0001 被 base64 识别为 0100 0001 0000 然而最后四个比特解密时无

用。换句话说 0100 0001 0000 和0100 0001 1111 对应的原文都是 A ,因此可以使用这四

个比特进行隐写

如果官方题解没有看懂,简单说一下我自己的理解,base64隐写就是每一次base64编码之后不是都刚好占到了三个字节,当没有占到3个字节的时候,我们将base64编码最后的几个比特修改成我们想要隐藏的信息,同时并不影响base64的解码。

无处不在的隐写

知道原理之后用脚本跑一遍就行了

# -*- coding: cp936 -*-
b64chars = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/‘
with open(‘flag.txt‘, ‘rb‘) as f:
    bin_str = ‘‘
    for line in f.readlines():
        stegb64 = ‘‘.join(line.split())
        rowb64 =  ‘‘.join(stegb64.decode(‘base64‘).encode(‘base64‘).split())
        offset = abs(b64chars.index(stegb64.replace(‘=‘,‘‘)[-1])-b64chars.index(rowb64.replace(‘=‘,‘‘)[-1]))
        equalnum = stegb64.count(‘=‘) #no equalnum no offset
        if equalnum:
            bin_str += bin(offset)[2:].zfill(equalnum * 2)
        print ‘‘.join([chr(int(bin_str[i:i + 8], 2)) for i in xrange(0, len(bin_str), 8)]) #8 位一组

  得到:

原文地址:https://www.cnblogs.com/Cl0ud/p/12207865.html

时间: 2024-11-08 12:19:12

[GXYCTF2019] MISC杂项题的相关文章

浅谈 MISC杂项设备

在虚拟机的 Ubuntu 系统上,如下图所示,使用命令"cat /proc/misc",可以查看到 PC 机 Ubuntu 系统的杂项设备. 启动开发板,在超级终端中输入命令"cat /proc/misc"也可以查看对应的杂项设备. 前面介绍过主设备号只有 256 个,设备又非常多,所以引入了子设备号. 其中杂项设备的主设备号是 10,在任何 Linux 系统中它都是固定的. 一般将 Linux 驱动分为字符设备.块设备.网络设备,但是这个分类不能包含所有的设备,

Misc杂项隐写题writeup

MISC-1 提示:if you want to find the flag, this hint may be useful: the text files within each zip consist of only "printable" ASCII characters 给了53个加密压缩包,每个包分别含有一个txt文件,首先想到暴力破解压缩包,试过各种破解工具后发现并不能用,于是想到使用脚本.以下是py脚本: 1 #coding:utf-8 2 import zipfile

CTF杂项题解题思路

下载压缩包解压 如果是图片就先查看图片信息 没有有用信息查看图片看是否是一个图片 如果不是图片就将文件进行还原 从还原文件中查找有用信息 例:这是一张单纯的图片 http://123.206.87.240:8002/misc/1.jpg (1)查看图片属性后没有任何有效信息 (2)用图片查看器也能打开,证明确实是图片 (3)我们用WinHex或者Notepad++打开可以看到最后有一串规律的Unicode码 key{you are right} (4)把得到的码用CTFCrak进行转码为Asci

BUUOJ Misc刷题大作战

你竟然赶我走 随便一个txt文件都可以拿 LSB 当然还有别的,根据里面左右左右变化,在0管道有变化,然后把下面的三个0打钩,导出png,一个二维码,扫出来 乌镇峰会种图 只要会用winhex打开文件就行 rar 四位数密码爆破 qr 扫码 文件中的秘密 属性,备注 ningen binwalk分析+四位数密码爆破 wireshark 点进去 然后就拿到 镜子里面的世界 emm 这道题很迷惑 steg给了提示,然后发现管道有问题,就直接分析,接着就看到了答案, 但是从steg上复制的都是有问题的

linux系统中misc子系统

misc子系统 转载请注明出处:http://blog.csdn.net/wang_zheng_kai 光源器件与系统研究所 个人学习总结 1.在linux系统中什么是misc? 在研究摄像头驱动的时候,发现摄像头驱动的路径为:/driver/misc/jz_cim/文件目录下,经过查找结果如下: 杂项设备(misc device) 杂项设备也是嵌入式系统中用得比较多的一种设备驱动.在 Linux 内核的include/linux目录下有miscdevice.h文件,要把自己定义的misc de

驱动学习5-生成设备节点(杂项设备)

杂项设备的头文件在"include/linux/miscdevice.h"中,需要用到两个函数和一个结构体 杂项设备注册函数:int misc_register(struct misdevice *misc); 杂项设备卸载函数:int mis_deregister(struct misdevice *misc): struct misdevice{ int minor; const char *name; const struct file_operations *fops; str

CTF入门指南

转自http://www.cnblogs.com/christychang/p/6032532.html ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web密码学pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等misc 杂项,隐写,数据还原,脑洞.社会工程.与信息安全相关的大数据reverse 逆向windows.linux类ppc 编程类的 国内外著名比赛 国外:国内:xctf联赛 0ctf上海国内外都有,很强 入门需要哪些基础

CTF入门(一)

ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web密码学pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等misc 杂项,隐写,数据还原,脑洞.社会工程.与信息安全相关的大数据reverse 逆向windows.linux类ppc 编程类的 国内外著名比赛 国外:国内:xctf联赛 0ctf上海国内外都有,很强 入门需要哪些基础: 1.编程语言基础(c.汇编.脚本语言)2.数学基础(算法.密码学)3.脑洞大开(天马行空的想象.推理解

Linux中proc浅析

1.什么是proc 观察LINUX F8的/etc/rc.d/sysinit文件可以发现,在该脚本的21行出现如下语句: if [ ! -e/proc/mounts ]; then mount -n -t proc /proc /proc mount -n -t sysfs /sys /sys >/dev/null 2>&1 fi 这断话的意思是,如果/proc/mounts文件存在,便挂载proc类型的文件系统的proc设备到proc目录下,挂载sysfs类型的文件系统的sys设备到