XCTF 攻防世界 MISC杂项 新手练习区

1,stegano(AB转换为摩斯电码)

日期:2020/02/03


control+A全选pdf文档,ctrl+C复制,ctrl+B粘贴到记事本里。发现有连续的A 和 B,用' . '代替A,用' - '代替B。(涨知识了)
import re
import sys
a='BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB'
b=re.findall('.{1}',a)
for i in b:
    if i=='A':
        sys.stdout.write('.')
    if i==' ':
        print ' ',
    if i=='B':
        sys.stdout.write('-')
     
#-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--

解码后:congratulations,flag:1nv151bl3m3554g3

2,ext3(挂载-mount命令)

日期:2020/02/03


根据题目知道这是一个linux系统光盘,然后要挂载到linux里看看里面有什么东西。

挂载命令:mount 文件 目录

例如这道题我把附件重命名为a,再在该目录下创建一个b文件夹,然后mount a b就可以了
在这里插入图片描述
打开文件夹,里面有很多文件,搜索flag,找到一个flag.txt。
在这里插入图片描述
打开base64解码得到flag。

3,base64stego(伪加密,base64隐写)

日期:2020/02/02


打开后是一个加密的文本文件,首先用ARCHPR 破解压缩密码尝试暴力破解,
在这里插入图片描述
但是报错了,上网也没有找到解决方法,只有试试其他方法了。
在这里插入图片描述

然后尝试一下是不是伪加密,搜索50 4B 01 02 ,把第九位,第十位改为0。保存,成功解压出stego.txt。

在这里插入图片描述
打开文件里面有很多字符。
在这里插入图片描述
很多段落之后有=号,猜测是base64加密,但是解码失败。结合题目先rot13再base64还是失败。

然后看题解才知道是base64隐写,原理:神奇的base64隐写

# -*- coding: cp936 -*-
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('D:\desktop\stego.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 位一组

在这里插入图片描述

4,SimpleRAR(rar文件格式)

日期:2020/02/02


下载好文件之后打开有个flag.txt,里面只有一句flag is not here。

然后拖到winhex里面看到里面有个secret.jpg,于是用foremost尝试分离出来,但是分了半天什么都没分离出来??
在这里插入图片描述

看了看题解才知道要把7A为74,,,因为要把子块(7A)改成文件块(74)。


原理:CTF解题技能之压缩包分析基础篇

png的图片压缩的文件头有问题,文件块的HEAD_TYPE应该是0×74而不是0x7A。
在这里插入图片描述

然后成功解压出来一张白图片,放到Stegsolve里看到半张二维码
在这里插入图片描述

题目提示了ps双图层,于是把另外一张图层保存出来然后放到stegsolve里找到另外半张二维码。
在这里插入图片描述
放到ps里面p到一起,然后加一个二维码定位点,搞了半小时,,,
在这里插入图片描述
然后扫描二维码得到flag。

5,掀桌子(两位16进制减128,脑洞)

日期:2020/02/01


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


这道题完全看writeup,刚开始看都是f以前的,试了试16进制无果,看了题解才知道要两个两个拆出来,再减去128。
from __future__ import print_function
import re

a = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
b = re.findall(r'.{2}',a)
flag = ''
for i in b:
    print(chr(int(i,16)-128),end='')

前面的一个 r 表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。
在这里插入图片描述


python2 print 不换行方法:
  • 1,后面加一个逗号,但是有空格。
  • 2,使用 sys.stdout.write。
  • 3,from future import print_function使用python3的print函数。

6,gif(脚本图片取色转为二进制)

日期:2020/01/31


打开后是黑白图片,联想到是对应的0,1。

然后学看看别人的脚本学习学习,

from PIL import Image
import os
path = 'D:\desktop\gif'
dirs = os.listdir(path)
num=len(dirs)
for i in range(num):
    im = Image.open('D:\\desktop\\gif\\'+str(i)+'.jpg')
    if im.getcolors()==[(46656,(255,255,255))]:
        print("0",end='')
    else:
        print("1",end='')

在这里插入图片描述
但是编译的时候会报错,是因为我用的python2,print(“0”,end=’’)是python3的用法,要在前面加一个from __future__ import print_function
这样就可以在2.X中使用3.X中的print函数了。

在这里插入图片描述

还有如果不在print后面加end=’ '的话会出现换行的情况,因为print默认输出语句后换行。

然后将得到的字符串每8个一组求出ascii值,转换为字符,这里可以用脚本也可以用在线工具
在线二进制转换ascii值

from __future__ import print_function #python2必须加
s='01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101'
for i in range(len(s)/8):
    print(chr(int(s[i*8:i*8+8],2)),end='')
    #flag{FuN_giF}

7,坚持60s(简单反编译)

使用jd-gui打开搜索得到flag


8,如来十三掌(多重加密)

日期:2020/01/31


下载好文件后打开,猜测是佛曰加密,解密后得到字符串:MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
在这里插入图片描述
然后尝试base64解码,结果解码不了。然后试了试很多种加密都已失败告终。

看了看writeup结果是rot13 + base64…

然后用CTFCrackTools解码得到:ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9

再base64解密flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
在这里插入图片描述
这道题感觉最重要的是审题,因为我没有好好审题,所以只是试了试rot13加密,还有忘记了双重加密。

9,功夫再高也怕菜刀(文件头的考察)

日期:2020/01/30


首先下载文件是流量包,用foremost 分离出来一个有密码的flag.txt。然后尝试在流量包里找密码。

使用wireshark打开流量包,查找flag,发现一张图片,选择第1150个,右键,追踪流 -> TCP 流

从 FFD8FF 开始到 FFD9 复制出来,保存为jpg格式,打开图片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值