对CRC32的小结加上bugku一道题目:好多压缩包
CRC32就是校验值,一般来说不同的文件校验值不一样,所以我们可以挨个爆破,当然这是在文件比较小的时候。下面是几种情形。
1.
我新建了一个flag.txt文档,里面是我的生日20180818
然后我对它进行压缩并且加密,密码很复杂,爆破就不用想了。
假设现在有这么一个题目:
给你一个flag.zip,然后告诉你flag是我的生日,你必须得知道flag.txt里面的内容,但是你爆破的话是爆破不出来的,这个时候我们即可以进行crc32碰撞了。先查看crc检验值:
写脚本: (生日是八位数,这个应该都知道吧。。。。所以flag.txt是八个字节)
是不是爆破出来了啊。值得注意的是:
密码位数你得知道(这个可以查看txt字节数确定)。
文字的具体内容最好是已经通知了是什么格式,比如说数字,字母之类的,还有就是文件要小。换句话说位数要少,不然很慢。刚刚看到了,只是8位数字,而且还不是10的8次方,仅仅是2018*2*12*2*12
种情况就用了2.9s,而且还只是纯数字。可以这么想,给你一个文件,里面,ascii有的他都有,位数在100来为的话位的话,运行起来是很慢的。
2.
bugku-好多压缩包
这里我们就遇到了上边说的很极端的情况了。。
打开文件头,发现时zip的文件头,直接在后缀加上.zip,解压。发现有68个压缩包,每一个压缩包都有一个四字节的加密的txt文档。
这题的思路:zip加密后我们一般的思路是先看看是不是伪加密,发现不是。然后尝试爆破,可是这有68个压缩包啊,出题人很明显是不想让你爆破的。然后再想想一个压缩包有四个字节,我们可以尝试一下crc32碰撞。
下边上大佬的脚本。
分析一下这个脚本:他为什么是四位数?
在记事本里面,一个汉字和中文的标点符号两个字节,一个英文字母和英文的标点符号占一个字节。
我们猜测是英文字符啊,毕竟中文字符的话有几万个,你要是用中文字符的话和爆破有什么区别呢?所以一个txt里面是四个字符。
获取zip文件得crc32值,大佬的脚本那里已经说的很详细了。
然后在说下这个dic,它表示的是字符的范围。其实更保险的话应该是用string.printable,下面看一下两者的区别。
虽然printable更保险,但是时间会更长,毕竟爆破的字符数更多了。这里解出来之后发现是一段base64字符串,也就没有什么区别了,因为base64范围:0-9 A-Z a-z + / =
这64个字符string.ascii_letters + string.digits + '+/='已经完全给包含了,看来还是经验啊,大佬们可能一眼就看穿了这是个base64字符串。
惊了,还是挺快的,十来分钟就完事了。
解密base64
放到winhex,经验让我这么做的。注意,这里粘贴的时候粘贴为uniocde方式.
winhex是原始数据和16进制的对应,我们刚base64解出来的肯定不是16进制啊。
ascii也不行,这里有很多ascii码也不能代表的数据,所以用unicode。
在这里不知道为什么莫名其妙的多了很多空格(0x00),我不明白为什么。我看大佬们的wp,它们似乎很轻松的就把这些base64解码后的数据引入了winhex,而我这里净是问题。
最后想用python脚本解的
然后winhex导入txt就可以得到了。
他这里有段内容,说是修复file就能得到flag,而且我们还发现了里面有个flag.txt,猜测压缩文件里放了个txt。文件头没见过,不过应该是修复为zip或者rar压缩包。
看结尾不是504B,说明不是zip,那就是rar了,网上没找到rar文件尾,自己新建了个rar丢wnhex里面看了看,果然如此,在文件头加上526172211A0700,另存为.rar文件。
打开后直接解压,发现时在rar的注释里面。
flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}
对CRC32的小结加上bugku一道题目:好多压缩包的更多相关文章
- L1-3 宇宙无敌加法器 - 令人激动的一道题目
L1-3 宇宙无敌加法器 - 令人激动的一道题目 感觉好久没有这么认真的做一道题了,今天看到一句话, 说是编程是一个工程型的工作,想要学好,"无他,唯手熟尔" 之前觉得自己笨,怀疑 ...
- Bugku - 好多压缩包 - Writeup
bugku - 好多压缩包 - Writeup M4x原创,转载请注明出处 这道题前前后后做了好几天,这里记录一下 题目 文件下载 分析 解压下载后的文件,发现有68个压缩文件,并且每个压缩文件里都有 ...
- js 一道题目引发的正则的学习
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...
- xctf的一道题目(77777)
这次比赛我没有参加,这是结束之后才做的题目 题目链接http://47.97.168.223:23333 根据题目信息,我们要update那个points值,那就是有很大可能这道题目是一个sql注入的 ...
- 巧用string中的contains巧解一道题目
题目:求0—7所能组成的奇数个数.假设最高八位数字. package edu.yuliang.lianxiti50; /* 题目:求0—7所能组成的奇数个数. *程序分析:最少也是1位数,最多能组成8 ...
- 编程使用缓冲流读取试题文件,test6_5.txt 内容如下所示。 每次显示试题文件中的一道题目,读取到字符“*”时暂停读取, 等待用户从键盘输入答案。用户做完全部题目后,程序给出用户的得分。
test6_5.txt内容如下: (1)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做( ). A.封装象 B.继承 C.抽象 D.多态 ******************** ...
- Poj 3233 矩阵快速幂,暑假训练专题中的某一道题目,矩阵快速幂的模板
题目链接 请猛戳~ Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 ...
- wap网测一道题目
1. 给定一个字符串s, 1 <= len(s) <= 3000, 定义odd palindrome string为长度为奇数的回文串, 求s中该奇回文串的个数. 比如axbcba , 结 ...
- jwt(JSON Web Tokens)的一道题目代码分析
题目链接https://github.com/wonderkun/CTF_web/tree/5b08d23ba4086992cbb9f3f4da89a6bb1346b305/web300-6 参考链接 ...
随机推荐
- WebClient实现文件下载详解(二)
.Net2.0中新增了很多组件,WebClient就是其中一个,功能也很强大,今天拿WebClient做了一个小实验,只用到了一些很简单的功能就可以实现以前不好实现的功能,很方便. 简单介绍一下Web ...
- [QualityCenter]设置工作流脚本-根据某字段是否包含指定字符串来判断其他字段的选值
需求:当在创建或更改值时,自动判断A字段是否包含B值,然后自动填写相应的内容. 如以下例子: 在脚本编辑器新建一个函数TestPlan_Test_New,然后编写脚本如下: '通过主题判断项目内容 ...
- Webstrom使用手册小记
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10883350.html,多谢~=.= 1.从git上拉取项目 或者 2.切换分支(webstro ...
- An incomplete guide to LaTex
LATEX入门与提高.陈志杰数理学院喜闻乐见的电子书.这本电子书由于是图片版本,所以无法使用搜索功能,幸亏目录详细. LaTeX Beginner's Guide.latex使用者都是从模版开始学习, ...
- IOS Quarzt2D 手动的释放
- (void)drawRect:(CGRect)rect { // 1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.绘制 ...
- POJ-3436 ACM Computer Factory---最大流+拆点
题目链接: https://vjudge.net/problem/POJ-3436 题目大意: 每台电脑有p个组成部分,有n个工厂加工电脑.每个工厂对于进入工厂的半成品的每个组成部分都有要求,由p个数 ...
- 【洛谷4287】[SHOI2011] 双倍回文(Manacher算法经典题)
点此看题面 大致题意: 求一个字符串中有多少个长度为偶数的回文串,它的一半也是回文串. \(Manacher\)算法 这应该是\(Manacher\)算法一道比较好的入门题,强烈建议在做这题之前先去学 ...
- ScriptMaker
0x00 前言 pwn脚本千篇一律,之前也是保存了一份模板,每次都用它,但还是觉得每次都复制一次各种名字还是有的累,于是就写了一份脚本生成器 0x01 ScriptMaker #!/usr/bin/e ...
- 关于后台获取不到HiddenField值的有关问题
服务器加载aspx程序时,首先要执行后台cs文件中的page_load等方法中的代码,其它按钮事件等是不执行的,生成页面发送到客户端.客户端执行时会响应js脚本,提交到服务器后除了执行page_loa ...
- Linux yum安装
一.安装Apache软件步骤:1.安装 yum install httpd 2.启动,关闭 重启等命令systemctl start httpd.service(启动)systemctl restar ...