Bugku - 好多压缩包 - Writeup
bugku - 好多压缩包 - Writeup
M4x原创,转载请注明出处
这道题前前后后做了好几天,这里记录一下
题目

分析
- 解压下载后的文件,发现有68个压缩文件,并且每个压缩文件里都有一个4个字节大小的名为data.txt的txt文件,于是尝试用crc32碰撞还原出所有压缩包中的文件内容

脚本如下:
#coding:utf-8
import zipfile
import string
import binascii def CrackCrc(crc):
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s = i + j + p + q
if crc == (binascii.crc32(s) & 0xffffffff):
#print s
f.write(s)
return def CrackZip():
for I in range(68):
file = 'out' + str(I) + '.zip'
f = zipfile.ZipFile(file, 'r')
GetCrc = f.getinfo('data.txt')
crc = GetCrc.CRC
#以上3行为获取压缩包CRC32值的步骤
#print hex(crc)
CrackCrc(crc) dic = string.ascii_letters + string.digits + '+/=' f = open('out.txt', 'w')
CrackZip()
f.close()
脚本运行时间较长
CRC32碰撞的原理请翻到这篇文章的0x06部分
步骤
根据碰撞出内容的格式(末尾两个==)推断这段数据是base64编码过的,先解码,根据解码结果中的flag.txt推断这可能是一个压缩包,同时根据fix the file and get the flag知需要修复文件

将解码后的文件导入16进制编辑器(如010editor),观察数据,发现存在rar的文件尾C43D7B00400700,但缺少文件头,于是补上rar的文件头526172211A0700。


另存为rar格式,发现文件修复成功,解压后发现一个txt文档如下

文件已经修复但还没发现flag,仔细寻找,在注释里找到了flag

于是flag即为flag{nev3r_enc0de_t00sm4ll_fil3w1th_zip}
后来经大神提示,根据rar的文件结构可以看出还存在一个名为CMT的文件,CMT即为comment,即为注释

Bugku - 好多压缩包 - Writeup的更多相关文章
- bugku 好多压缩包
https://www.cnblogs.com/WangAoBo/p/6951160.html
- Bugku - Misc图穷匕见 - Writeup
Bugku - Misc图穷匕见 - Writeup 原文链接:http://www.cnblogs.com/WangAoBo/p/6950547.html 题目 给了一个jpg图片,下载图片 分析 ...
- 对CRC32的小结加上bugku一道题目:好多压缩包
CRC32就是校验值,一般来说不同的文件校验值不一样,所以我们可以挨个爆破,当然这是在文件比较小的时候.下面是几种情形. 1. 我新建了一个flag.txt文档,里面是我的生日20180818 然后我 ...
- bugku社工writeup
最近bugku的web和杂项刷了多半,突然心血来潮想试试社工题,bugku的社工题比较基础,而且题量不多,和大家分享一下writeup. 1.密码 根据提示,多猜几次密码就对了,然后得到flag. 2 ...
- 【伪随机数】【搜索】【RE】【bugku】mountainclimbing WriteUp
Mountain Climbing WP 拿到题首先熟练地查个壳再用各种脱壳工具脱个壳. 脱壳之后熟练地双击感受一下出题者的恶意: 根据字面意思得知,是要根据一系列的操作来得到收益最大值,于是用ida ...
- bugku misc writeup(一个普通的压缩包)
这个题做了好几个小时,因为没有writeup,一点一点摸索,做题思路写出来给大家交流 首先这是一个zip.rar压缩包,下载下来第一步就是拖进hexeditor中观察,检查下文件的头尾结构是否有问题, ...
- 攻防世界 Misc 新手练习区 ext3 bugku Writeup
攻防世界 Misc 新手练习区 ext3 bugku Writeup 题目介绍 题目考点 WinHex工具的使用 linux磁盘挂载mount命令 Writeup 下载附件拖进winhex分析一下,查 ...
- bugku login2 writeup 不使用vps的方法
0x00前言 这个题是sql注入与命令执行相结合的一个题,思路有两个: 一.:sql注入登录web系统,命令执行反弹公网IP监听端口(需要vps),此种方法详见链接:http://www.bugku. ...
- bugku 一个普通的压缩包
压缩包打不开,用winhex打开压缩包,发现头文件是zip的,将后缀改为zip,成功解压. 打开发现还是个压缩包,而且打不开,提示secret.png损坏,使用winhex打开. 将a8 3c 7a ...
随机推荐
- flex 属性
一.flex-direction(元素排列方向) 1.flex-direction:row://从左到右排列 2.flex-direction:column://从上往下排列 二.flex-wrap( ...
- php 获取视频时长
利用ffmpeg只能获取到本地视频的信息. function video_time($file) { ob_start(); passthru(sprintf(FFMPEG_PATH, $file)) ...
- Hangfire设置隔天的指定时间执行
一.说明 一开始只需要每天执行指定的备份逻辑,后来需求变更为间隔X天的指定时间执行备份操作,于是有了本篇文章所述的操作. 二.代码 1.先执行间隔天数的逻辑. 2.当到达要备份的当天时,再添加一个任务 ...
- Python instagram 爬虫项目
直接介绍一下具体的步骤以及注意点: instagram 爬虫注意点 instagram 的首页数据是 服务端渲染的,所以首页出现的 11 或 12 条数据是以 html 中的一个 json 结构存在的 ...
- 通过otter元数据表获取有用的信息
获取数据源相关信息 原始数据: +----+------+-------+--------------------------------------------------------------- ...
- 【Unity|C#】基础篇(21)——常用类
- webservice后台起调试
https://blog.csdn.net/smile00_0/article/details/72763114
- crontab定时任务打包备份文件并删除过期文件
Crontab 示例,最后这里要写成shell脚本定时运行 30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out ...
- ECMAScript基本语法——①与HTML的结合方式
内部JS: HTML页面内定义一个script标签,标签内就是JS代码一般情况会写到特定的位置,写到head标签内 外部JS: HTML页面内定义一个script标签,使用src加载外部的JS文件 注 ...
- 批量启动关闭MS SQL 2005服务BAT
当装上了MSSQL2005后,内存的占用会变得很大.所以如果用一个批量处理来开启或关闭MSSQL2005所有的服务,那将会让我们的电脑更好使用.根据自己的经验,做出了下面两个批处理: 1.开启服务:( ...