stegsolve
打开发现在LSB
的RGB
这是个zip
文件,Save Bin
保存为flag.zip
,是一个elf文件,放进kali直接运行
hctf{dd0gf4c3tok3yb0ard4g41n~~~}
附件pic.jpg文件中发现最下面的一排盲文
找盲文对照表,解密锝:kmdonowg
密码打开压缩包发现music.wav,Audacity打开,通过观察波形与声音应该是摩斯电码:-.-. - …-. .-- .–. . … ----- —… --… …-- …— …–… …— …-- -… --…
解码得:CTFWPEI08732?23D
小写即为flag
flag{wpei08732?23dz}
神秘龙卷风转转转,科学家用四位数字为它命名,但是发现解密后居然是一串外星人代码!!好可怕! 注意:得到的 flag 请包上 flag{} 提交
打开是一个加密的rar文件,显然是4位数字加密。爆破一下得到密码:5463
用到brainfuck解密
flag{e4bbef8bdf9743f8bf5b727a9f6332a8}
小白的网站被小黑攻击了,并且上传了Webshell,你能帮小白找到这个后门么?(Webshell中的密码(md5)即为答案)。 注意:得到的 flag 请包上 flag{} 提交
把文件放进D盾中进行检查,发现include.php有问题,进入该文件打开文件发现密码就在其中,pass:6ac45fb83b3b c355c024f5034b947dd3
RouterPassView,大多数现代路由器允许您备份到一个文件路由器的配置,然后从文件中恢复配置时的需要。路由器的备份文件通常包含了像您的ISP的用户名重要数据/密码,路由器的登录密码,无线网络的关键。如果你失去了这些密码1 /钥匙,但你仍然有你的路由器配置的备份文件,RouterPassView可以帮助你从你的路由器恢复您丢失密码的文件。
flag{053700357621}
使用audacity
打开题目附件stego100.wav
莫斯解码
… -… -.-. ----. …— … -… …- ----. -.-. -… ----- .---- —… —… …-. … …— . -… .---- --… -… --… ----- ----. …— ----. .---- ----. .---- -.-.
flag{5BC925649CB0188F52E617D70929191C}
朋友的网站被黑客上传了webshell后门,他把网站打包备份了,你能帮忙找到黑客的webshell在哪吗?(Webshell中的密码(md5)即为答案)。 注意:得到的 flag 请包上 flag{} 提交
结合题意,该题需要我们找到该文件的webshell文件,且flag值为md5值
直接使用D盾扫描该网页源码发现有多功能大马,和一个已知后门,打开文件所在位置
发现一段md5的值,判断该值为该题的flag值
flag{ba8e6c6f35a53933b871480bb9a9545c}
binwalk 分离一下
分离出来一个图片和压缩包
图片需要密码,压缩包里有flag也需要密码
在压缩源文件数据区明确
asd文件夹下的qwe.zip和good-已合并.jpg是没有加密的
qwe.zip里的flag.txt是加密的
但是到了压缩源文件目录区
good-已合并.jpg段本该是0008可是变为0108
这就说明good-已合并.jpg是伪加密
所以只要将其改为0008即可
搜索504b0102找到这个地方,原本显示01改为00因为这个位置偶数不加密,奇数加密。同样可以解压。
steghide一把梭这个图片
看到这个图片就是压缩包的密码:
bV1g6t5wZDJif^J7
flag{1RTo8w@&4nK@z*XL}
某天小明收到了一件很特别的礼物,有奇怪的后缀,奇怪的名字和格式。小明找到了知心姐姐度娘,度娘好像知道这是啥,但是度娘也不知道里面是啥。。。你帮帮小明?找到帐号密码,串在一起,用32位小写MD5哈希一下得到的就是答案。
流量包,追踪TCP流
POST /index.php?r=member/index/login HTTP/1.1 (application/x-www-form-urlencoded)中追踪HTTP流发现name=admina&word=adminb
根据提示拼接帐号密码为:adminaadminb,MD5加密为:1d240aafe21a86afc11f38a45b541a49
flag{1d240aafe21a86afc11f38a45b541a49}
F5隐写
使用工具提取出来,发现生成的是Pk开头的,应该是zip格式,使用16进制确认了是ZIP,将生成的output.txt改为output.zip发现有密码。
16进制查看了下,是伪加密,将这里修改为00即可。或者用工具也应该可以修复
flag{96efd0a2037d06f34199e921079778ee}
F5隐写工具可以在win下用,也可以在Linux里用
git clone https://github.com/matthewgao/F5-steganography
以后想要解密的时候输入:
java Extract /图片的绝对路径 [-p 密码] [-e 输出文件]
EXCEL表格,binwalk发现存在东西,分离一下可以在文件里找到flag
flag{M9eVfi2Pcs#}
binwalk
分析发现图片中隐写了压缩包,进行分离得到一个压缩包,内容如下
base64_decode('V2hhdCBpcyBOaWNraSBNaW5haidzIGZhdm9yaXRlIHNvbmcgdGhhdCByZWZlcnMgdG8gc25ha2VzPwo=');"
What is Nicki Minaj's favorite song that refers to snakes?
serpent加密
,key(小写):anaconda
贴一个解密网站:serpent在线解密:http://serpent.online-domain-tools.com/
flag{who_knew_serpent_cipher_existed}
010查看可能存在压缩包,binwalk分离一下,得到压缩包,直接可以解压。扫二维码
flag{you are the best!}
一黑客入侵了某公司盗取了重要的机密文件,还好管理员记录了文件被盗走时的流量,请分析该流量,分析出该黑客盗走了什么文件。 注意:得到的 flag 请包上 flag{} 提交
一眼流量分析,在该数据包中看到有ftp传输,过滤ftp数据包,ftp传输有个flag.rar文件
binwalk -e 该文件名称
压缩包文件需要密码
爆破最终得到该压缩包密码为:5790
flag{6fe99a5d03fb01f833ec3caa80358fa3}
zip伪加密,可以自己改,也可以用工具修
txt里是与佛论禅加密
佛曰:遮等諳勝能礙皤藐哆娑梵迦侄羅哆迦梵者梵楞蘇涅侄室實真缽朋能。奢怛俱道怯都諳怖梵尼怯一罰心缽謹缽薩苦奢夢怯帝梵遠朋陀諳陀穆諳所呐知涅侄以薩怯想夷奢醯數羅怯諸
找个网站解码就行
flag{w0_fo_ci_Be1}
解压附件attachment.zip时提示该文件为非压缩文件,联想题目,应该不是压缩包,010打开,开头发现PNG,但不用这么麻烦,flag就在最下面
flag{i_am_fl@g}
菜刀都是 POST 所以直接搜 POST逐流追踪
追踪流7 看到一串很长的内容 看到传了两个参数,z1参数跑出来是一个照片的地址,查看后应该是一个压缩密码,我们找压缩包
追踪流9可以看到传了一个 hello.zip
binwalk 可以把压缩包给分离出来
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
深夜里,Hack偷偷的潜入了某公司的内网,趁着深夜偷走了公司的秘密文件,公司的网络管理员通过通过监控工具成功的截取Hack入侵时数据流量,但是却无法分析出Hack到底偷走了什么机密文件,你能帮帮管理员分析出Hack到底偷走了什么机密文件吗? 注意:得到的 flag 请包上 flag{} 提交
流量包直接过滤ftp包,这里看到有个RAR包存在,应该是隐写了,binwalk分离一下,爆破密码:1903
flag{d72e5a671aa50fa5f400e5d10eedeaa5}
解压题目得到4位数.rar
,使用ARCHPR
设置四位数掩码爆破即可 ,得到口令2016
,解压得到图片,flag在图片exif
中
flag{Wadf_123}
两张gif图片,发现有一张打不开,丢到 010 Editor
发现没有gif 文件头,插入字节,保存打开拿到flag
flag{zhi_yin_you_are_beautiful}
使用010 editor
打开 ,在图片结尾FF D9
后存在一大串十六进制,把这些字符复制出来,将十六进制转为字符 ,类似坐标,可以利用gnuplot
绘图工具绘制出图片
扫二维码
flag{40fc0a979f759c8892f4dc045e28b820}
使用010 Editor
打开出现CRC不匹配
报错 ,修改了宽高
贴一个CRC检验脚本
#coding=utf-8
import zlib
import struct
#读文件
file = '1.png' #注意,1.png图片要和脚本在同一个文件夹下哦~
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
#crc32key = 0xCBD6DF8A #补上0x,copy hex value
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex
n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了
for w in range(n):#高和宽一起爆破
width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
#print(data)
crc32result = zlib.crc32(data)
if crc32result == crc32key:
print(width,height)
#写文件
newpic = bytearray(fr)
for x in range(4):
newpic[x+16] = width[x]
newpic[x+20] = height[x]
fw = open(file+'.png','wb')#保存副本
fw.write(newpic)
fw.close
flag{66666}
将文件放入kali进行binwalk,分离出了多个rar ,先查看txt文档中的内容YXNkZmdoamtsMTIzNDU2Nzg5MA==
进行base64解密:asdfghjkl1234567890
再看doc文档,是一大串的base64
解码后为:comEON_YOuAreSOSoS0great
经过尝试comEON_YOuAreSOSoS0great是音频那个压缩包的密码,而asdfghjkl1234567890是图片的压缩包的密码。
音频是摩斯密码,M O R S E I S V E R Y V E R Y E A S Y
flag{morseisveryveryeasy}
gif并不能正常打开,发现缺少十六进制文件头,将GIF的十六进制文件头(47 49 46 38)输入,保存后打开图片,base64,提取后是Q1RGe3dhbmdfYmFvX3FpYW5nX2lzX3NhZH0=
flag{wang_bao_qiang_is_sad}
嫦娥当年奔月后,非常后悔,因为月宫太冷清,她想:早知道让后羿自己上来了,带了只兔子真是不理智。于是她就写了一首曲子,诉说的是怀念后羿在的日子。无数年后,小明听到了这首曲子,毅然决定冒充后羿。然而小明从曲子中听不出啥来,咋办。。(该题目为小写的32位字符,提交即可) 注意:得到的 flag 请包上 flag{} 提交
Audacity
打开
…-. ----- …— ----. -… -… -… …-. … … .---- .---- …-- ----. . . -… . -… —… . …- … .- .---- --… … -… ----- --… —… -…
F029BD6F551139EEDEB8E45A175B0786
flag{f029bd6f551139eedeb8e45a175b0786}
outguess隐写,图片属性发现了一串社会主义核心价值观,就知道了是社会主义核心价值观解密:abc,是outguess解密的密码尝试着解密
apt-get install outguess
outguess -k 'abc' -r mmm.jpg -t 1.txt
flag{gue33_Gu3Ss!2020}
小光非常喜欢下围棋。一天,他找到了一张棋谱,但是看不出到底是谁赢了。你能帮他看看到底是谁赢了么? 注意:得到的 flag 请包上 flag{} 提交
kali中进行binwalk得到一个rar压缩包,flag.txt中只有一句话where do you think the flag is?
再看上面的文件,发现需要密码,ARCHPR爆破出密码,放入stegsolve里面进行查看,得到二维码,扫出flag
flag{shanxiajingwu_won_the_game}
题目下载下来是一个exe
,运行会有个1.txt
,NTFS
流隐藏文件,使用工具NtfsStreamsEditor
导出文件flag.txt
flag{ddg_is_cute}
binwalk
分析,发现RAR
,分离一下
ARCHPR
四位数字爆破
得到密码8864
,解压打开flag.txt
,内容杂乱,考虑是字频统计,可以找个网站,也可以用脚本
# -*- coding:utf-8 -*-
#Author: mochu7
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
strings = open('./flag.txt').read()
result = {}
for i in alphabet:
counts = strings.count(i)
i = '{0}'.format(i)
result[i] = counts
res = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:
print(data)
for i in res:
flag = str(i[0])
print(flag[0],end="")
flag{gaki_IsMyw1fe}
BASE64隐写
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('./base64.txt', 'rb') as f:
flag = ''
bin_str = ''
for line in f.readlines():
stegb64 = str(line, "utf-8").strip("\n")
rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
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)
# flag += chr(int(bin(offset)[2:].zfill(equalnum * 2), 2))
# print(flag) 这样写得不出正确结果
print([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])
# ['A', 'C', 'T', 'F', '{', '6', 'a', 's', 'e', 'b', '4', '_', 'f', '3', '3', '!', '}'
flag{6aseb4_f33!}
密码.txt
可解压,misc
文件夹需要解压密码,将密码.txt
使用010 Editor
打开,使用EBCDIC
编码即可发现密码明文,解压缩后发现18张图片,应该是某种编码
福尔摩斯小人密码
对照得到:iloveholmesandwllm
flag{iloveholmesandwllm}
Jack很喜欢看黑客帝国电影,一天他正在上网时突然发现屏幕不受控制,出现了很多数据再滚屏,结束后留下了一份神秘的数据文件,难道这是另一个世界给Jack留下的信息?聪明的你能帮Jack破解这份数据的意义吗? 注意:得到的 flag 请包上 flag{} 提交
脚本将16进制转为二进制流转存为flag.rar
import binascii
hex_data='txt文件中16进制数据'
out=open('flag.rar','wb')
out.write(binascii.unhexlify(hex_data))
out.close()
运行脚本得到flag.rar压缩包,ARCHPR爆破压缩包密码为:3690
根据以上信息可知这是一张jpg的图片被加了PNG的头,修改成JPG的头:FF D8
flag{57cd4cfd4e07505b98048ca106132125}
下载附件之后是一张图片,然后丢尽Winhex里看看
crc校验脚本
import struct
import binascii
import os
m = open("flag.png", "rb").read()
k = 0
for i in range(5000):
if k == 1:
break
for j in range(5000):
c = m[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + m[24:29]
crc = binascii.crc32(c) & 0xffffffff
if crc == 0x370c8f0b:
k = 1
print(hex(i), hex(j))
break
flag{1ts_vEryyyyyy_ez!}
疑似凯撒密码,用脚本跑一下
def change(c,i):
num=ord(c)
if(num>=33 and num<=126):
num=33+(num+i-33)%(94)#126-33=93
return chr(num)
def kaisa_jiAmi(string,i):
string_new=''
for s in string:
string_new+=change(s,i)
print(string_new)
return string_new
#本题有种暴力解密感觉
def kaisa_jiEmi(string):
for i in range(0,94):
print('第'+str(i+1)+'种可能:',end=' ')
#区别在于 string 是该对象原本就是字符串类型, 而 str()则是将该对象转换成字符串类型。
kaisa_jiAmi(string,i)
#你要知道input输入的数据类型都是string
def main():
print('请输入操作,注意不是平常26种:')
choice=input('1:恺撒加密,2:凯撒穷举解密.请输入1或2:')
if choice=='1':
string=input('请输入需要加密字符串: ')
num=int(input('请输入需要加密的KEY: '))
kaisa_jiAmi(string,num)
elif choice=='2':
string=input('请输入需要解密字符串: ')
kaisa_jiEmi(string)
else:
print('输入错误,请重试')
main()
if __name__=='__main__':
main()
flag{flagiscaesar}
EWAZX RTY TGB IJN IO KL 请**该密文,应该是键盘密码,解密后是CTF
网站遭受到攻击了,还好我们获取到了全部网络流量。
流量包,sql盲注的流量,根据流量可以写出flag
102
108
97
103
123
52
55
101
100
脚本
f=open('test.txt','r').readlines()
for i in f:
print(chr(int(i)),end="")
010发现有东西,直接binwalk 分离一下
txt里是一些颜文字
aaencode解密
flag{happy double eleven}
binwalk发现是两张图片组成的一张图片,猜测中间存在东西,发现是一串base编码
flag{6f1797d4080b29b64da5897780463e30}
有很多文件和一个压缩包,jpg格式的文件,全部解压下来,发现通过010查看末尾有数字,也就是拼接二维码的顺序
flag{Qr_Is_MeAn1nGfuL}
PDF文件,修改后缀为PDF
,打开 ,发现图片下面还有图片,里面有加密字符串
77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d
用工具一把梭就行
flag{th1s_1s_@_pdf_and_y0u_can_use_phot0sh0p}
图片流量,可以全部提出来
文件
–>导出对象
–>HTTP
–>保存到一个文件夹
之后可以使用kali下的exiftool
找到了一半flag
然后在tcp114追踪流当中找到另一半flag
但我看还有更简单的方法
大致确定flag在exif中时,可以在wireshark的filter中输入:tcp contains 45:78:69:66(exif的十六进制),找到带flag的两个数据包
flag{ae58d0408e26e8f26a3c0589d23edeec}
下载附件,发现是个exe文件,运行它,修改时间就行,发现运行出来的是当前电脑的系统时间,根据上面提示知道只有在时间是2020.9.17的时候才能运行出flag,那就试着修改电脑系统时间运行就行
flag{We1cOm3_70_cyber_security}
Attack.pcap
binwalk
分离
压缩包但是需要密码,wireshark
导出HTTP
,发现lsass.dmp
文件,使用mimikatz
读取其内容 ,得到了Administrator
用户的密码:W3lc0meToD0g3
,作为解压密码,解压压缩包得到flag
//提升权限
privilege::debug
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登陆密码
sekurlsa::logonpasswords full
flag{3466b11de8894198af3636c5bd1efce2}
attachment.docx
,内容没有东西,修改后缀为.rar
在media
文件夹下找到 flag
flag{unz1p_3v3ryth1ng}
把mp4拉入winhex中,发现base编码
明显看到解码之后是rar的文件头,并且里面有个flag.txt离拿到flag应该很近了,右下角另存为rar文件,打开,发现需要密码。应该就是前面的iwantplayctf 了
前面的密码是从扫描视频的二维码中得到
flag{CTF-from-RuMen-to-RuYuan}
压缩包有加密,在压缩包的注释中发现了一些信息,复制发现是一串
… . .-… .-… ----- …-. — .-. …- –
空格替换为.
,Tab
替换为-
HELL0FORUM
解压是个png,尝试lsb隐写解密,密码为123456
flag{jsy09-wytg5-wius8}
解压压缩包后得到两张图片和一个文本,文本基本没有什么线索
使用010模板打开boki.jpg,发现末尾隐藏个压缩包文件
暴力破解888866
base64解密
outguess -k "killerqueen" -r jljy.jpg hidden.txt
flag{pretty_girl_alison_likes_jojo}
下载完附件发现文本里如下字符串
Q2V0dGUgbnVpdCwK
SW50ZW5hYmxlIGluc29tbmllLAp=
TGEgZm9saWUgbWUgZ3VldHRlLAo=
SmUgc3VpcyBjZSBxdWUgamUgZnVpcwp=
SmUgc3ViaXMsCt==
Q2V0dGUgY2Fjb3Bob25pZSwK
UXVpIG1lIHNjaWUgbGEgdOmUmnRlLAp=
QXNzb21tYW50ZSBoYXJtb25pZSwK
RWxsZSBtZSBkaXQsCo==
在做CTF题目时遇到这种大量Base64编码的文本时,考虑Base64隐写。所以我们找一个脚本。
#解码base64隐写编码
#python版本 3.9
import base64
def int2Bin(digit):
return bin(digit)[2:] #将索引转成二进制,去掉'0b';
def binAsc(string): #二进制转成ASCII码
temp = ''
for i in range(int(len(string) / 8)):
temp += chr(int(string[i * 8 : i* 8 + 8] , 2))
return temp
def readBase64FromFile(filename):
Base64Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" #Base64字符集 已按照规范排列
result = ''
with open(filename ,'r') as f:
for data in f.readlines():
if data.find('==') > 0:
result += int2Bin(Base64Char.index(data[-4]))[-4:] #根据隐写原理,‘==’情况取等号前最后一个字符转换后取后4位
elif data.find('=') > 0:
result += int2Bin(Base64Char.index(data[-3]))[-2:] #根据隐写原理,‘=’情况取等号前最后一个字符转换后取后2位
print(binAsc(result))
readBase64FromFile('flag.txt')
flag{fazhazhenhaoting}
解压后发现附件是一个流量包,用wireshark分析一下,
追踪TCP流发现流太多了,简单看了一下也没有发现重要数据。这里的话个人学到了两种方法来分析。
1.使用binwalk分析,发现里面藏有压缩包,接着进行分离即可得到。
2.导出http数据,file->export objects->http,在导出的文件里可以发现压缩包。
接着我们看一下压缩包,需要密码,先尝试下是否是伪加密。用WINRAR修复一下发现可以打开。
flag{c5558bcf-26da-4f8b-b181-b61f3850b9e5}
解压后发现flag2和flag3的压缩包。同时都需要压缩密码。先看flag2,没有发现什么。再看flag3,提示密码是6位数字,那么我们就用ar爆破一下。
得到flag3.zip
密码为:183792
之后会得到一个docx和mp4文件。
文档里提示数字520与711,怀疑是mp4里的5:20,与7:11
查看后发现敲击码
..... ../... ./... ./... ../
与base编码
dXBfdXBfdXA=
合起来就是flag2的压缩密码
wllmup_up_up
之后将文件放进010直接就能看到flag
flag{A2e_Y0u_Ok?}
tips:这里逐秒查看的软件可以用:Kinovea
/pr
题目给了一串编码
d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd
没有解开,怀疑有什么规律。尝试对每两个字符转出来的 10进制
进行减 128
,每个值得范围就能落在 ASCII
码表。
我们从网上找一个脚本。
# -*- coding:utf-8 -*-
import re
import urllib
list1=[]
list2=[]
s = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"
print len(s)
result=re.sub(r"(?<=\w)(?=(?:\w\w)+$)"," ", s)
print result
urlencode_s="%"+result.replace(" ","%")
print urlencode_s
hex_s = "0x"+result.replace(" ","0x")
print hex_s
print hex_s[-4:8]
list_hex = []
for i in range(len(hex_s)):
if((i+1)%4==0):
print hex_s[(i-3):(i+1)]
list1.append(hex_s[(i-3):(i+1)])
print i
else:
print i
continue
print list1
for i in list1:
list2.append(int(i,16))
print list2
print 253-125
list3=[]
print len(list2)
for i in range(67):
list3.append(chr(int(list2[i])-128))
s = "".join(list3)
print s
DDCTF{922ab9974a47cd322cf43b50610faea5}
下载附件,是一个需要密码的压缩包。010看了下并没有伪加密什么的,怀疑需要爆破。最后我们六位数字爆破出了密码。
723456
得到一个.sh文件和一个压缩包文件。
发现setup.sh是个伪加密,根据之前文章讲的进入010editor将9改为0,或者直接用WINRAR修复一下。
发现sh里面的代码是
#!/bin/bash
#
zip -e --password=`python -c "print(__import__('time').time())"` flag.zip flag
简单来说就是输出时间戳,怀疑时间戳就是另一个压缩包的解压密码。
我们将系统时间改为压缩包的创建时间。
得到前端部分一样的数字:15580
我们保存小数点后两位进行掩码爆破。
设置掩码15???.??
爆破出密码解压得到flag{fkjabPqnLawhvuikfhgzyffj}
题目描述:伟人的一句话,标志着一个时代的开始。那句熟悉的话,改变了许多人的一生,为中国三十年来计算机产业发展铺垫了道路。两种不同的汉字编码分别代表了汉字信息化道路上的两座伟大里程碑。请将你得到的话转为md5提交,md5统一为32位小写。
题目
0086 1562 2535 5174
bnhn s wwy vffg vffg rrhy fhnv
请将你得到的这句话转为md5提交,md5统一为32位小写。
提交格式:flag{md5}
0086 1562 2535 5174应该是中文编码,了解后发现是中文电码。剩下的是五笔编码。
合起来就是:人工智能也要从娃娃抓起
md5编码后就是flag
flag{3b4b5dccd2c008fe7e2664bd1bc19292}
010 Editor
打开key.ftm
,其中发现zip
数据
我们使用binwalk分离一下,发现流量包,根据题目,判断为USB流量
直接使用工具一把梭
python2 /home/kali/桌面/UsbKeyboardDataHacker-master/UsbKeyboardDataHacker.py /home/kali/桌面/_key.ftm.extracted/key.pcap
得到密钥{xinan}
接下来看压缩包的另一个文件233.rar,我们用010查看发现CRC错报,而且可以看到是有些数据没有显示出来的,用WINRAR修复也修复不了。
分析RAR文件结构,发现文件块的位置应该是74
并不是7A
,修改为74
后保存 。
得到PNG图片。Stegslove
在Blue 0
通道发现二维码。
ci{v3erf_0tygidv2_fc0}
怀疑是维吉尼亚密码密钥位xinan
fa{i3eei_0llgvgn2_sc0}
又像个栅栏密码,直接ciphey一把梭
flag{vig3ne2e_is_c00l}
下载后是一个音频,我们尝试用Audacity
打开这段音频 。分析分析频谱。
听完后感觉想拨号的声音,这里我们可以猜测DTMF拨号音识别,我们可以使用工具dtmf2num.exe
https://sourceforge.net/directory/os:windows/
999*666*88*2*777*33*6*999*4*4444*777*555*333*777*444*33*66*3*7777
识别完后发现密文。感觉像手机九键的操作。我们就可以根据手机九键的操作来得到flag
flag{youaremygirlfriends}
TIPS:想要了解更多手机键盘密码的朋友可以看这篇https://www.33iq.com/group/topic/34507/
打开是一个压缩包,我们用010打开发现里面藏有别的压缩包的数据。使用命令分离不了。于是我们尝试用ar爆破,最后通过四位数成功爆破出来了。
0537
但打开后还是压缩包,不知道解压了多少次还是压缩包。根据以往的经验,我们找了脚本来解压。
import zipfile
import os
path=r"C:\xxxx\attachment (4)\0573\0114\0653\0234\0976\0669\0540\0248\0275\0149\0028\0099\0894\0991\0414\0296\0241\0914" #这个自己把控想在哪里开始使用脚本
file="0140.zip"
def un_zip(Path,File_name): #传入一个路径和当前路径的压缩包名字,返回解压缩后的文件名字
current_file=Path+os.sep+File_name #路径+'/'+文件名
#new_path=''
os.chdir(Path) #改变当前工作路径,方便添加文件夹
zip_file=zipfile.ZipFile(current_file)
#print(zip_file.namelist()[0])
new_file=zip_file.namelist()[0] #新解压的压缩文件为新的路径名字
#new_path=current_path + os.sep + new_file
#os.mkdir(new_path) #新建一个以解压出来的压缩包为名字的文件夹
#os.chdir(new_path)
zip_file.extractall( path=Path, members=zip_file.namelist(), pwd=File_name[0:-4].encode() )#因为密码就是文件名
zip_file.close()
return new_file
new=file
new1=''
while (1):
#new1=un_zip(path,new) #第一次解压出来了new1
if(new ==''): #判断是否解压完毕,是则直接退出
print("end:"+new1)
break
else: #否则就开始新的解压
new1=un_zip(path,new)
print("continue:"+new1)
new=new1
最后跑出来一群坐标,典中典之二维码,还是用脚本去拼。
from PIL import Image
import os
os.chdir(r'C:\xxx\attachment (4)\0573\0114\0653\0234\0976\0669\0540\0248\0275\0149\0028\0099\0894\0991\0414\0296\0241\0914')
string=''
file=open('qr.txt')
MAX=200
picture=Image.new("RGB",(MAX,MAX))
for y in range(MAX):
for x in range(MAX):
string =file.readline()
picture.putpixel([x,y],eval(string)) #直接使用eval()可以转为元组
picture.show()
flag{ta01uyout1nreet1n0usandtimes}
密码套娃先是base64
a2FuYmJyZ2doamx7emJfX19ffXZ0bGFsbg==
得到
kanbbrgghjl{zb____}vtlaln
最后发现是栅栏密码,Key等于7。
kzna{blnl_abj_lbh_trg_vg}
接着又是凯撒密码
flag{oyay_now_you_get_it}
TIPS:其实可以ciphey一把梭,只是给大家讲一下解码过程。
很考验知识面宽度的一个题。我们下载完附件。发现是一个txt,内容类似于
63
255
127
127
63
经过了解得知,这是TTL隐写。
IP报文在路由间穿梭的时候每经过一个路由,TTL就会减1,当TTL为0的时候,该报文就会被丢弃。TTL所占的位数是8位,也就是0-255的范围,但是在大多数情况下通常只需要经过很小的跳数就能完成报文的转发,远远比上限255小得多,所以我们可以用TTL值的前两位来进行传输隐藏数据。
简单来说,我们如何进行解密。就是按规则先转二进制。
00 替换 63
01 替换 127
10 替换 191
11 替换 255
我们找个脚本转换一下
import binascii
f=open("attachment.txt","r")
f2=open("result.txt","wb")
num=''
res=''
for i in f:
if int(i)==63:
num+="00"
if int(i)==127:
num+="01"
if int(i)==191:
num+="10"
if int(i)==255:
num+="11"
for j in range(0,len(num),8):
res += chr(int(num[j:j+8],2))#转换为字符
res = binascii.unhexlify(res)#unhexlify:从十六进制字符串返回二进制数据
f2.write(res)
得到的数据会发现是一个压缩包。我们保存一下打开。发现是很长的base编码。
脚本跑一下
import base64
f=open("flag.txt","r")
a=f.read()
print(f,a)
res=base64.b64decode(a)
while(1):
res=base64.b64decode(res)
print(res)
其实我感觉使用ciphey或者其他解码工具也应该可以,可能会比较麻烦吧。解出得到flag
flag{189ff9e5b743ae95f940a6ccc6dbd9ab}
先用steg查看一下png图片的通道。
发现red通道处有一个PNG图片,我们将其保存,得知一个密钥。
!@#$%67*()-+
根据图片提示我们要分离文件。于是我们用binwalk命令分离出了一个压缩包。
得到一些奇怪的数字。
127,255,63,191,127,191
二进制格式只有八位二进制的前两位不同
用脚本将前两位提出来并且先转十进制,再转成字符串。
with open('out.txt') as a_file:
content = [x.strip() for x in a_file.readlines()]
bins = []
for i in content:
bins.append(bin(int(i))[2:].zfill(8)[:2])
stringBins = ''.join(bins)
num = 0
flag = ''
for i in range(int(len(stringBins)/8)):
flag+=chr(int(stringBins[num:num+8],2))
num+=8
print(flag)
我们得到解压密码
rar-passwd:0ac1fe6b77be5dbe
解压后发现是一个DOC文档,里面并没有什么重要信息,怀疑信息被隐藏了。
改字体颜色就可以发现隐藏的BASE编码。
这里用到了base64逐行解密来拼成flag(脑洞真大),直接找个脚本或自己手动都可以。
flag{He1Lo_mi5c~}