杂项杂七杂八的工具知识点太多了,这里每遇到一种就记录一种
用winhex打开,看文件头是否被修改,或缺失,然后补全
import zipfile
import os
def extractFile(zFile, password):
try:
zFile.extractall(pwd=password.encode())
except:
return False
else:
return True
zfile = zipfile.ZipFile("D:\下载/1.zip") # 字典路径
passwd = open("D:\desktop\字典/6位字典.txt", 'r') # 字典路径
for password in passwd.readlines():
# print(password, end='')
password = str(password.strip('\n'))
result = extractFile(zfile, password)
if result:
print('[+] 成功,有效密码为' + password)
break
else:
print("[-] 失败", password)
压缩包内有两个文件003.jpg和test.txt,现在我们有未加密的003.jpg即可使用明文攻击
使用工具:
工具:cloacked-pixel-master(lsb隐写)
python lsb.by extract xxx.png 1.txt 解密密码
这里先用第一个命令检查,如果叫你输入密码,说明隐藏了东西。如图:
然后再分离出来
工具:steghide
.\steghide.exe info .\a.jpg
.\steghide.exe extract -sf .\00017508.jpg
工具:StegSolve
BGR 3原色设置为0 提取LSB
有如下两张图片:
先用stegsolve打开图片一。
然后使用image combiner选择第二张图片。
拿到flag:
#-*- coding:utf-8 -*-
from PIL import Image
import re
x = 72 #x坐标 通过对txt里的行数进行整数分解
y = 74 #y坐标 x*y = 行数
im = Image.new("RGB",(x,y))#创建图片
file = open('rgb2.txt') #打开rbg值文件
#通过一个个rgb点生成图片
for i in range(0,x):
for j in range(0,y):
line = file.readline()#获取一行
# line = line.replace('\n','')
print(line)
rgb = line.split(",")#分离rgb
print(rgb)
im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()
im.save('1.png')
kali工具之convert
想用convert命令首先要安装imagemagick
,使用如下命令安装:
apt-get install imagemagick
使用convert命令分解gif:
convert a.gif a.png
安装:
apt-get install montage
拼接:
montage a*.png -tile x1 -geometry +0+0 flag.png
-tile是拼接时每行和每列的图片数,这里用x1,就是只一行
-geometry是首选每个图和边框尺寸,我们边框为0,图照原始尺寸即可
以上步骤一个在线网站就能解决:
动态图片分解
如果一个图片在windows中能正常打开,而linux中打不开,那么就是修改图片宽高了,一般报错如下:
而图片宽高位置如下:
039E:宽
044C:高
例题: misc-4-1
提示:
Although two days doing the same things, but day2 has a secret than day1
github有处理盲水印的脚本:(前者python2 python3都可以跑)
https://github.com/chishaxie/BlindWaterMark
https://github.com/lucoo01/blindwatermark
这里报错ImportError: No module named cv2
,于是下载opencv。
python2:
pip install opencv-python
python bwm.py decode day1.png day2.png flag.png
python3:
pip3 install opencv-python
python3 bwmforpy3.py decode day1.png day2.png flag.png
如果遇到pip install opencv-python
下载失败,python3跑出来不对,可以参考我的这篇博客:
做题misc-4-1时遇到python No module named cv2 问题(2020-08-26)
gaps的安装__kali
gaps的使用
题目:XMAN-qualifiers-2017 : Misc/SimpleGIf
identify -format "%s %T \n" 100.gif
identify -format "%s %T \n" 100.gif > flag
提取每一帧间隔并进行转化,推断20 & 10 分别代表0 & 1
cat flag|cut -d ' ' -f 2|tr -d '66'|tr -d '\n'|tr -d '0'|tr '2' '0'
用multimon-ng直接获取flag
./multimon-ng -t raw -a AFSK1200 transmission.raw
multimon-ng © 1996/1997 by Tom Sailer HB9JNX/AE4WA © 2012-2014 by Elias
Oenal available demodulators: POCSAG512 POCSAG1200 POCSAG2400 FLEX EAS
UFSK1200 CLIPFSK FMSFSK AFSK1200 AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800
FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE_CW DUMPCSV SCOPE
Enabled demodulators: AFSK1200 AFSK1200: fm WDPX01-0 to APRS-0 UI pid=F0
!/;E’q/Sz’O /A=000000flag{f4ils4f3c0mms}
题目:ZCTF-2017:Whisper
用Stegsolve观察hint文件,发现提示,线索应该就在这张图片中
winhex发现尾部有大量字符串,并且像是base64编码之后的
binwalk&&dd 切割文件
binwalk分析文件
binwalk hint\ 1.png
dd if=hint\ 1.png of=file_1 bs=1 skip=5984
base64解码,保存为file_2
base64 -d file_1 > file_2
用binwalk将里面可能存在的文件分离出来
binwalk -e file_2
分离出来很多文本文档,猜测压缩包的密码就在里面,使用strings和grep命令尝试读取出来
strings * | grep pass
使用密码解压压缩包拿到flag
工具 https://github.com/ANSSI-FR/bmc-tools
py -3 .\bmc-tools.py -s .\bmc -d res
其他总结:
http://www.ga1axy.top/index.php/archives/6/#%E5%9B%BE%E7%89%87%E7%9B%B8%E5%85%B3