攻防世界ctf——misc 新手区(7-12)

攻防世界 misc 解题报告

    • misc 7 掀桌子
    • misc 8 ext3
    • misc 9 stegano
    • SimpleRAR
    • misc 11 base64stego
    • misc 12 功夫再高也怕菜刀
    • 总结

misc 7 掀桌子

题目描述:菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻

大写字母都没有,应该不是base码。但是我一直觉得这是一个编码,看了大佬的wp才知道应该是16进制(还是自己太菜)。前面几题有个二进制的,现在又是16进制,应该总结一下。

所以解密方法应该为:两个一位,16进制转10进制,然后减去128再转成字符即可(为了将大小规范在128之内,即ASCII表达范围)
用脚本把每两位转换为十进制,代码如下(网上嫖的):

string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"

flag = ''

for i in range(0,len(string), 2):

    s = "0x" + string[i] + string[i+1]

    flag += chr(int(s, 16) - 128)

print(flag)

在这里插入图片描述
恩。。。确实该掀桌子
即:flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}

misc 8 ext3

题目描述:今天是菜狗的生日,他收到了一个linux系统光盘

发现了一个奇葩的做法:记事本打开,ctrl f查询flag,找到一个flag.txt文件,继续向下找到一串字符串,看起来像是base64串

攻防世界ctf——misc 新手区(7-12)_第1张图片

解密得到:flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj} (这也行??)

misc 9 stegano

题目描述:菜狗收到了图后很开心,玩起了pdf 提交格式为flag{xxx},解密字符需小写

打开文件一看,全是无用的干扰信息,因为有前面一题先例,我猜测会有一些东西隐藏在下面


但是我怎么也全选不了,只能复制到一部分。经过大佬wp的启发,在浏览器中打开pdf,然后f12,在控制台里输入document.documentElement.textContent,就能看到所有内容了。


看到一串ABAB密码,我猜是二进制。。结果不是。看了大佬的wp才知道是摩斯电码(学到了)。

这样就解密得到:congratulations,flag:1nv151bl3m3554g3

SimpleRAR

题目描述:菜狗最近学会了拼图,这是他刚拼好的,可是却搞错了一块(ps:双图层)

打开文件是一个压缩包,解压缩后打开,是一个txt文件:
攻防世界ctf——misc 新手区(7-12)_第2张图片
按题目说的应该有一个图片的,可能被破坏了,用winhex打开看看:
攻防世界ctf——misc 新手区(7-12)_第3张图片

果然有一个png文件
根据RAR编码格式(参考:https://wenku.baidu.com/view/918e2c146c175f0e7cd1370d.html”),将7A改为74保存并再次解压
攻防世界ctf——misc 新手区(7-12)_第4张图片
怎么是一张空白的图片??

后面就要用到一个软件stegsolve,很多和我一样的小白应该都没用过,用法我贴在这里了:stegsolve使用方法

先将两张图片分离图层(为了这个我还学了点ps),然后分别在stegsolve打开,之后拼起来就是一个二维码,扫一下就行了
攻防世界ctf——misc 新手区(7-12)_第5张图片

misc 11 base64stego

题目描述:菜狗经过几天的学习,终于发现了如来十三掌最后一步的精髓
打开文件,是一个压缩包,用360压缩打开是一个txt文件:
攻防世界ctf——misc 新手区(7-12)_第6张图片

解压缩打开:

攻防世界ctf——misc 新手区(7-12)_第7张图片
一堆base密文。试着解密一下,结果base64解不出来。。然后咋办?这就触及到我的知识盲区了,看大佬的wp说这是base隐写题,很多小白应该和我一样不知道base隐写是什么,点这里了解一下吧。

总之,根据base64隐写的原理可得出结论:

1、base64加密后结尾无“=”号的无隐写位。

2、base64加密后结尾有1个“=”号的有2位隐写位。

3、base64加密后结尾有2个“=”号的有4位隐写位。

编码思想:首先判断每行数据的可隐写位数,然后将可隐写的每行最后一个字符根据base64码表,对应到相应的值,接着转为二进制,根据可隐写位数截取相应的位数,然后拼接这些隐写位,最后从左到右每8位一组截取二进制,分别将其转为十进制并对应ASCII码表,打印出相应的字符即可得到flag。

参考大佬

使用如下脚本:

#coding=utf-8
def get_base64_diff_value(s1, s2):
 base64chars =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
 res = 0
 for i in xrange(len(s2)):
 if s1[i] != s2[i]:
 return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
 return res
def solve_stego():
 with open('1.txt', 'rb') as f:
 file_lines = f.readlines()
 bin_str = ''
 for line in file_lines:
 steg_line = line.replace('\n', '')
 norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
 diff = get_base64_diff_value(steg_line, norm_line)
 print diff
 pads_num = steg_line.count('=')
 if diff:
 bin_str += bin(diff)[2:].zfill(pads_num * 2)
 else:
 bin_str += '0' * pads_num * 2
 print goflag(bin_str)
def goflag(bin_str):
 res_str = ''
 for i in xrange(0, len(bin_str), 8):
 res_str += chr(int(bin_str[i:i + 8], 2))
 return res_str
if __name__ == '__main__':
 solve_stego()

为什么我死活运行不出结果呢?一直报错咋办?

misc 12 功夫再高也怕菜刀

题目描述:菜狗决定用菜刀和菜鸡决一死战
下载文件后发现,攻防世界ctf——misc 新手区(7-12)_第8张图片
怎么连文件都打不开。。我还想自己做来着,小白还是跟着大佬的wp一步步来吧。

原来是用winhex打开,ctrl f 搜索flag,发现有个txt文件:攻防世界ctf——misc 新手区(7-12)_第9张图片
这个软件的任务就完成了,再把题目附件的后缀改成zip,用360压缩打开文件,注意是在下载附件的那个页面改,文件夹改不了不知道为什么
攻防世界ctf——misc 新手区(7-12)_第10张图片
改成zip打开
攻防世界ctf——misc 新手区(7-12)_第11张图片
提示需要密码,再次下载附件(因为这一次下载的被改成压缩包了),用wireshark打开,同样按ctrl f
搜索flag:
攻防世界ctf——misc 新手区(7-12)_第12张图片
注意上面的选项要选好才能搜索。
多点几次查找,发现了一个6666jpg攻防世界ctf——misc 新手区(7-12)_第13张图片
然后再这样操作攻防世界ctf——misc 新手区(7-12)_第14张图片
弹出来了一个页面,到这里,我们需要知道一个知识点,jpg格式是以:FFD8FF开头,以FFD9结尾的,我们就用这个功能查找开头和结尾
攻防世界ctf——misc 新手区(7-12)_第15张图片
开头和结尾之间的复制下来,就可以关掉攻防世界ctf——misc 新手区(7-12)_第16张图片
这个软件了。然后打开010editor,选择导入十六进制文件。

攻防世界ctf——misc 新手区(7-12)_第17张图片

导入后粘贴,选择保存为jpg格式的文件。
打开文件,攻防世界ctf——misc 新手区(7-12)_第18张图片
??为什么我的长这样,有没有大神解释一下,不应该是这样吗?攻防世界ctf——misc 新手区(7-12)_第19张图片
我人晕了,为啥啊?
算了,总之得到密码:Th1s_1s_p4sswd_!!!
输入密码打开加密文件就得到flag了攻防世界ctf——misc 新手区(7-12)_第20张图片

总结

1.二进制 16进制经常会出现

2.用记事本打开文件,再搜索flag可能会有意想不到的效果

3.隐藏在pdf下面的文字全选不了?在浏览器中打开pdf,然后f12,在控制台里输入document.documentElement.textContent,就能看到所有内容了

4.RAR编码格式了解一下?

5.base隐写了解一下?

6.不知道啥文件就用winhex打开看文件头,然后搜索flag看有没有隐藏文件:flag.txt,有的话直接改成zip后缀用360压缩打开
如果解压要密码的话就再次下载附件,可能用wireshark打开或者看看图片信息

你可能感兴趣的:(加密解密,信息安全)