admin管理员组

文章数量:1603247

大白

题目直接修改图片的长度就可以了,这个没什么难度

修改完后的数据

查看图片得到flag

图片隐藏信息

依然属于送分题,使用010查看图片就可以得到flag,不过一开始没觉得那个是flag,后来才发现这次比赛的flag没啥规律可言,啥都有可能是flag,没有固定的格式

文件类型分析

下载文件,放到010里面分析一波
先贴出两个常见的压缩包文件头

ZIP Archive (zip),文件头(hex):504B0304
RAR Archive (rar),文件头(hex):52617221


发现这个是zip的压缩包,直接解压

然后随便翻一翻文件,发现多数里面的文件都有这样一个词

我一开始还尝试了凤舞九天是不是flag。。。。。23333,最后发现pptx就是flag,后来想想也对,题目是让你判断文件类型,pptx就是他的文件类型,所以也不需要其他的hint了,还是自己台太菜啊。。。

神秘的mail

先查看题目给的数据包

追踪tcp流发现这里有flag的字样,并且是个使用base64加密的压缩包,使用脚本将压缩包导出,先将这段加密的数据保存在txt文件中

import base64

fin=open("base.txt","r")
fout=open('2.rar',"wb")
base64.decode(fin,fout)
fin.close()
fout.close()

得到2.rar

打开发现里面有一个flag的图片,但是需要密码,我先尝试了各种爆破,发现都不行,那估计密码就还在流量包里面,回去流量包查看,经过比较长时间的查找,在smtp的保重找到了密码

打开图片得到flag

这次比赛的flag有个坑点,就是会不带大括号以外的内容。

这音乐好难听

打开音乐文件,也不知道是个什么东西,奇奇怪怪的,先用Audacity分析一波,查看了下波形,如果低的波峰为0,高的波峰为1的话,那就是妥妥的二进制了啊,如果手动改的话,太浪费时间了,就在网上找了个大佬的脚本

import wave as we
import numpy as np
 
wavfile =  we.open(u'music.wav',"rb")
params = wavfile.getparams()
framesra,frameswav= params[2],params[3]
datawav = wavfile.readframes(frameswav)
wavfile.close()
datause = np.fromstring(datawav,dtype = np.short)
 
result_bin=''
result_hex=''
max=0
for i in range(len(datause)-1):
    if datause[i]> max:
        max=datause[i]
    try:
        if(datause[i]<0 and datause[i+1]>=0):
            if (max-24000 >0):
                result_bin+='1'
                max=datause[i+1]
            else:
                result_bin+='0'
                max=datause[i+1]
    except:
        break
 
print result_bin    
for i in range(0,len(result_bin),4):
    result_hex+=hex(int(result_bin[i:i+4],2))[2:]
 
print result_hex
 
file_rar = open("test.rar","wb")
file_rar.write(result_hex.decode('hex'))  
file_rar.close()    

得到一个压缩文件,打开之后只有一个noflag的文档,真坑啊,不是最终的答案,把压缩文件放到010里面分析一波

感觉这里有个stm的文件,但是压缩包好像没有,那是不是文件损坏了,尝试修复文件

文件块的第3个字节为块类型,也叫头类型。 
头类型是0x72表示是标记块 
头类型是0x73表示是压缩文件头块 
头类型是0x74表示是文件头块 
头类型是0x75表示是注释头

这里面是0x7A显然是不对的,尝试修改

解压将STM的文件放到010里面分析一波

发现是个png的文件,但是解压出来的文件也不是啊,所以尝试加了个后缀

发现是个只有一半的二维码,那接下来感觉就是修复高度,这里直接用大佬的脚本计算高度

import os
import binascii
import struct
crcbp = open("STM.png","rb").read()
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0x08ec7edb:
            print i,j


发现高和宽都是280,但是现在的图片高只有140,那么我们修改一下


这里因为高和宽是一样的,所以将后面的这个数据改为和前面的一样就行了。
最后得到完整的二维码,扫码得到flag

题目出自:2018网鼎杯第三场 Unpleasant_music
参考链接:http://since1994/?p=198、https://www.o2oxy/1753.html
感谢大佬们的wp

破解wifi密码

首先先看提示:密码为手机号,为了不为难你,大佬特地让我悄悄地把前七位告诉你 1391040** Goodluck!!
一看,这道题见过啊
题目出自:bugku->Misc->想蹭网先解开密码
首先第一点,不要被流量包迷惑,这不是个流量分析的题目,我们先用给的提示生成一个字典

crunch 11 11 -t 1391040%%%% > phone.txt


然后使用wifi破解工具破解密码

aircrack-ng -w phone.txt wifi.cap


这里也贴出一个参考链接吧,毕竟我当时第一次做的时候也是参考了大佬的链接,这个链接是比较新的
参考链接:https://blog.csdn/qq_50034496/article/details/109384432

404 flag not found

打开压缩文件,发现里面有一个流量包

发现这个HTTP协议的包里面有个flag,追踪HTTP流

发现箭头处,感觉像是16进制,复制去尝试一下解密

发现是真的有东西,那我们将所有的http的包全部解密得到如下文档

发现如果每一行都选择首字母的话,会形成一个flag的格式的字符串

得到flag

本文标签: 豌豆题目高校Misc