当前位置:网站首页>CTF-MISC学习之从开始到放弃
CTF-MISC学习之从开始到放弃
2022-04-23 06:30:00 【五五六六0524】
本次学习全程跟随合天网安实验室学习
2021.1.5号更新第一次
今晚学习压缩包的常见套路
1、利用进制转换隐藏信息
题目给出一个文件,里面是十六进制的数字
看文件头就知道是压缩包,将其复制下来,用winhex先打开flag.txt,得到文件大小,再创建一个和它相同大小的文件,把十六进制数字粘贴上去,然后保存为zip格式即可打开
2、在图片中隐写压缩包,检测方法:1、kail下的binwalk,2、用winhex打开后,发现有flag.txt的提示,而且前面有zip的文件头
分离方法:1.linux的foremost工具,2.直接改后缀名,改成zip,3.stegslove工具
怎么将压缩包隐藏在图片里?
答:使用copy命令即可,如下图所示
3、zip加密:密码爆破,还有的密码就在注释里面或者在属性的详细信息里面
4、zip伪加密
原理:伪加密就是修改目录区的加密标志位,使本来没有加密的ZIP文件,在解压的时候,需要用户输入密码来进行解压,但是这个密码又是不存在的。
我们以同一个压缩文件的无加密、伪加密、真加密三种形式来做比较,如图,红色框为数据区加密标志位,绿色框为目录区加密标志位。从图中的比较我们可以知道,真加密的ZIP文件,两个加密标志位应该都表示加密(一般为前面一位数为奇数即可表示为加密),无加密的ZIP文件,两个标志位均表示没有加密,而伪加密则只有目录区的加密标志位表示为加密。
判断方法:用winhex打开后看数据区和目录区的压缩方法那个位置
解决方法:把目录区的奇数改为偶数
5、明文攻击
大致原理是当你不知道一个zip的密码,但是你有zip中的一个已知文件(文件大小要大于12Byte)时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件。
一般是出题方给你一个压缩包和一个明文的文件,你把这个明文的文件压缩后和加密的文件对比,对比其CRC32值,如果一样,就可以进行明文攻击
6、CRC碰撞(zip)
# -*- coding:utf-8 -*-
import zipfile
import string
import binascii
#构造字符集,因为题目提及是base64字符串,所以使用大小写字母+数字+‘+/=’
dic = string.ascii_letters + string.digits + '+/='
#具体碰撞CRC的函数
def CrackCRC32(crc_str):
#从字符集中依次取出字符组成四位字符串进行碰撞
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s = i + j + p + q
'''
在 Python 2.x 的版本中,binascii.crc32 所计算出來的
CRC 值域为[-2^31,2^31-1] 之间的有符号整数,为了要与
一般CRC 结果作比对,需要将其转为无符号整数,所以加上
& 0xffffffff来进行转换。如果是 Python 3.x 的版本,其
计算结果为 [0, 2^32-1] 间的无符号整数,因此不需额外加
上& 0xffffffff 。
'''
if crc_str == (binascii.crc32(s) & 0xffffffff):
print "Cracking Successfuly"
#碰撞成功后将碰撞出的内容写入flag.txt文件中
flag.write(s)
return
#选择ZIP文件的函数
def CrackZIP():
for i in range(1,5):
file = str(i) + ".zip"
#获取压缩包中文件的CRC32值
f = zipfile.ZipFile(file,'r')
GetCRC32 = f.getinfo(str(i) + ".txt")
crc_str = GetCRC32.CRC
print "Cracking........" + file
CrackCRC32(crc_str)
flag = open('flag.txt','wb')
CrackZIP()
flag.close
CRC碰撞(png)
#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
7、文件修复
一般是文件头异常“504B0304”,改回来就行了
8、冗余信息拼接
多个压缩包,用winhex打开后发现末尾有3个字节的多余,把这些多余的字节拼接在一起,解密得flag,如下图
2022.1.6更新第二次
今天把昨晚的内容补充了一下,学习基于binwalk实现文件提取,要用binwalk命令,刚开始就卡在了kali虚拟机的配置上,以前也捯饬过,教程一大堆,就到最后没实现
2022.1.9更新第三次
按照教程来到官网,下载之后的配置,要么不是iso,没法配置,要么就是有问题,是真不懂啊,后来刷到一个直接解压打开.vmx的教程,成功了,它的初始账号密码都是kali
关于Stegsolve:这个是一个jar包,不需要安装,需要在java环境下运行,得配置java环境,然后win+R,cmd,“java -jar”这个命令加Stegsolve.jar的绝对路径用以关联文件(这种方法能打开stegslove),记得把打开方式调了,不然老是打不来,只能一遍遍的输入命令
java -jar +jar文件的绝对路径能打开jar文件
2022.1.10更新第四次
关于stegsolve的具体使用,这位大佬讲的很清楚stegsolve使用方法 - cat47 - 博客园
接下来开启刷题之路
2021.1.15
关于隐写,更多的在常见的隐写工具的使用_z4yn:)的博客-CSDN博客_隐写工具
1、steghide
用法示例:
将secret.txt文件隐藏到text.jpg中:
# steghide embed -cf test.jpg -ef secret.txt -p 123456从text.jpg解出secret.txt:
#steghide extract -sf test.jpg -p 123456
2、F5隐写
安装:git clone https://github.com/matthewgao/F5-steganography
解密:java Extract /图片的绝对路径 [-p 密码] [-e 输出文件]
3、zsteg,引自隐写工具zsteg安装+使用教程_Amherstieae的博客-CSDN博客_zsteg
(1)查看lsb数据
zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名) #查看各个通道的lsb
(2)检测zlib#-b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v(3)提取该通道图片
zsteg -e b8,a,lsb,xy 文件.png -> out.png
4、outgess隐写 (2022.2.3更新)
安装:sudo apt install outguess
有钥匙的情况下提取隐写在里面的内容:eg:outgess -k 'abc' -r mmm.jpg flag.txt
2022.1.27
动态图分解GIF动态图片分解,多帧动态图分解成多张静态图片_图片工具网页版
strings +文件名,查看文件内的字符串
二维码、条形码等识别Barcode Reader. Free Online Web Application、草料二维码解码器
python反编译python反编译 - 在线工具
linux删除文件时其实删的是文件名,数据还是存储在硬盘中的,恢复用extundelete命令,
安装:sudo apt-get install extundelete
应用:extundelete 文件名 --restore-all
命令:openssl rsautl -decrypt -in key.txt -inkey pub.key -out flag.txt
-in 为要解密的加密文档 -inkey 为密钥 -out 为输出文档具体的详见如何运用OpenSSL 对文件进行加密和解密_petpig0312的博客-CSDN博客_openssl加密文件
爆破工具ARCHPR
掩码:已知道密码某个位置的字符
掩码默认为:?
例如:掩码为:www.?????.com 范围选小写a-z
从www.aaaaa.com 跑到www.zzzzz.com
file +文件名 查看文件性质
流量包中提取文件:1、tcpxtract -f +文件名 2、用NetworkMiner 3、用wireshark 4、foremost -v -i +文件名 5、用Chaosreader
2022.2.3更新
1、工具exiftool,可以收集到图片的exif信息,binwalk一下看到有"TIFF"一般就用他,同时在属性-备注里也会有东西
安装:apt-get install exiftool
使用:exiftool + 文件名
2、工具stegdetect,用来检测jpg类型的图片是否隐藏着其他文件或内容,可以查是哪种隐写方式
apt-get install stegdetect,这种方法失败
其他的方法还没找着
2022.2.8更新
NTFS交换数据流
BUU-MISC-我有一只马里奥_TzZzEZ-web的博客-CSDN博客
NTFS交换数据流(简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,除了主文件流之外还可以有许多非主文件流寄宿在主文件流中,而我们无法查看到非主文件数据流,因文件夹大小始终显示0
寄生一:
echo 写入内容>>宿主文件:交换数据流文件(寄生文件)
echo ever>>1.txt:2.txt
2.txt为echo创建出交换数据流文件,ever在2.txt中寄生二:
type 交换数据流文件(寄生文件)>>宿主文件夹:交换数据流文件(寄生文件)
type 2.txt>>temp:2.txt
temp为空文件夹,执行后2.txt寄生在temp文件夹上
type a.jpg>>temp:a.jpg
temp为空文件夹,执行后a.jpg寄生在temp文件夹上查看:
notepad 宿主文件:交换数据流文件(寄生文件)
notepad 1.txt:2.txt查看图片文件:
mspaint 宿主文件:交换数据流文件(寄生文件)
notepad a.jpg:b.jpg
2022.3.4
base64转十六进制:base64库,base64.b64decode()函数
异或运算异或运算加密/解密 - 一个工具箱 - 好用的在线工具都在这里!
钥匙信号(PT224X) = 同步引导码(8bit) + 地址位(20bit) + 数据位(4bit) + 停止码(1bit)
2022.3.17
维吉尼亚密码爆破(不提供key)Vigenere Solver - www.guballa.de
uncompyle6是一个原生python的跨版本反编译器和fragment反编译器,是decompyle、uncompyle、uncompyle2等的接替者。
uncompyle6可将python字节码转换回等效的python源代码
安装:pip install uncompyle6
反编译使用:uncompyle6 -o . pyc文件名
版权声明
本文为[五五六六0524]所创,转载请带上原文链接,感谢
https://blog.csdn.net/wow0524/article/details/122330349
边栏推荐
- Unity 获取一个文件依赖的资源
- Understanding the role of individual units in a deep neural networks
- 《内网安全攻防:渗透测试实战指南》读书笔记(四):权限提升分析及防御
- Intranet penetration series: icmpsh of Intranet tunnel
- The problem of exporting excel form with wireframe and internal spacing of form by using web form
- Samplecamerafilter
- Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight
- Understanding the Role of Individual Units in a Deep Neural Networks(了解各个卷积核在神经网络中的作用)
- MySQL in window10 version does not work after setting remote access permission
- Use of command line parameter passing library argparse
猜你喜欢
Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight
Teach-Repeat-Replan: A Complete and Robust System for Aggressive Flight in Complex Environments
MySQL8. 0 installation / uninstallation tutorial [window10 version]
[unity VFX] Introduction notes of VFX special effects - spark production
Scrapy modifies the time in the statistics at the end of the crawler as the current system time
第五章 投资性房地产
Internal network security attack and defense: a practical guide to penetration testing (8): Authority maintenance analysis and defense
Towords Open World Object Detection
《内网安全攻防:渗透测试实战指南》读书笔记(八):权限维持分析及防御
Houdini > variable building roads, learning process notes
随机推荐
Encapsulate the debug function of unity
爬虫学习笔记,学习爬虫,看本篇就够了
使用flask时代码无报错自动结束,无法保持连接,访问不了url。
Unity gets a resource that is referenced by those resources
第五章 投资性房地产
Internal network security attack and defense: a practical guide to penetration testing (8): Authority maintenance analysis and defense
Read and modify the JSON file under the resource folder
内网渗透系列:内网隧道之icmpsh
Idea shortcut
关于unity获取真实地理地图转3D化的相关链接
C SVG path parser of xamarin version
第四章 无形资产
Intranet penetration series: icmptunnel of Intranet tunnel (by master dhavalkapil)
Nodejs (VI) sub process operation
VBA调用SAP RFC实现数据读取&写入
Common markdown grammar learning
Internal network security attack and defense: a practical guide to penetration testing (5): analysis and defense of horizontal movement in the domain
Rethink | open the girl heart mode of station B and explore the design and implementation of APP skin changing mechanism
Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight
平面定义-平面方程