草庐IT

BUUCTF MISC zip伪加密

Hrain777 2023-05-15 原文

下载下来的压缩包是加密的,暴力破解也没有找到密码

题目是伪加密,看一下压缩包的十六进制内容

一个加密的压缩包,由三部分组成:压缩源文件数据区、压缩源文件目录区、压缩源文件目录结束标志(更详细的请见:一个zip文件由这样三个部分组成_一只独孤的程序猿的博客-CSDN博客)

以此题为例来分析一下压缩包的组成部分:

1.压缩源文件数据区:

50 4B 03 04 压缩包的文件头标记 4bytes

14 00 解压文件所需的pkware版本 2bytes

09 00 全局方式位标记 2bytes (这里可以来判断有无加密,0奇数 00 加密,0偶数 00 无加密)

08 00 压缩方式 2bytes

50 A3 最后修改文件时间 2bytes

A5 4A 最后修改文件日期 2bytes

21 38 76 65 CRC-32校验 4bytes

19 00 00 00 压缩后尺寸 4bytes

17 00 00 00 未压缩尺寸 4bytes

08 00 文件名长度 2bytes

00 00 扩展记录长度 2bytes

下面的不做介绍了

2.压缩源文件目录区(从第二个50 4B开始)

50 4B 01 02 目录中文件文件头标记 4bytes

1F 00 压缩使用的pkware 版本 2bytes

14 00 解压文件所需的pkware版本 2bytes

09 00 全局方式位标记 2bytes

(这里可以来判断有无加密,解决伪加密0奇数 00 加密,0偶数 00 无加密)

08 00 压缩方式 2bytes

50 A3 最后修改文件时间 2bytes

A5 4A 最后修改文件日期 2bytes

21 38 76 65 CRC-32校验 4bytes

19 00 00 00 压缩后尺寸 4bytes

17 00 00 00 未压缩尺寸 4bytes

08 00 文件名长度 2bytes

24 00 扩展字段长度 2bytes

00 00 文件注释长度 2 bytes

00 00 磁盘开始号 2 bytes

00 00 内部文件属性 2 bytes

20 00 00 00 外部文件属性 4bytes

00 00 00 00 局部头部偏移量 4bytes

下面的不做介绍了

3.压缩源文件目录结束标志(从第二个50 4B开始)

50 4B 05 06 目录结束标记 4bytes

下面的不做介绍了

 经过分析,关于压缩包的加密:

压缩源文件数据区(50 4B 03 04起)和压缩源文件目录区(50 4B 01 02起)的全局方式位标记均为 0偶数 00,则是未加密

压缩源文件数据区(50 4B 03 04起)和压缩源文件目录区(50 4B 01 02起)的全局方式位标记均为 0奇数 00,则是真加密

压缩源文件数据区(50 4B 03 04起)的全局方式位标记为 0偶数 00,压缩源文件目录(50 4B 01 02起)的全局方式位标记为 0奇数 00,则是伪加密

 此题的全局方式位标记均为奇数,只是迷惑一下,因为爆破过,没爆破出来

 所以按伪加密来处理,将09 00 改为04 00(只要改为偶数即可)

 解压得到flag.txt

 

 

有关BUUCTF MISC zip伪加密的更多相关文章

  1. ruby - 使用 AES 的 Rails 加密,过于复杂 - 2

    我在加密来self正在使用的第三方供应商的值时遇到问题。他们的指令如下:1)Converttheencryptionpasswordtoabytearray.2)Convertthevaluetobeencryptedtoabytearray.3)Theentirelengthofthearrayisinsertedasthefirstfourbytesontothefrontofthefirstblockoftheresultantbytearraybeforeencryption.4)EncryptthevalueusingAESwith:1.256-bitkeysize,2.25

  2. ruby - 如何使用私钥加密完全加密 Ruby 中的数据? - 2

    首先,关于我们系统的一些信息,它基本上是建筑行业的电子招标解决方案。所以:列表项我们的系统有多家公司每个公司都有多个用户每家公司可以创建多个拍卖然后其他公司可以为可用的拍卖提交他们的出价。一个出价包含数百或数千个单独的项目,我们只需要加密这些记录的“价格”部分。我们面临的问题是,我们的大客户不希望我们知道投标价格,至少在投标过程中是这样,这是完全可以理解的。现在,我们只是通过对称加密对价格进行加密,因此即使价格在数据库中有效加密,他们担心的是我们拥有解密价格的key。因此,我们正在研究某种形式的公钥加密系统。以下是我们对解决方案的初步想法:当一家公司注册时,我们会使用OpenSSL为其

  3. ruby-on-rails - 我如何比较 'Bcrypt' Gem解密的密码和加密的密码 - 2

    我正在尝试对某些帖子的评论使用简单的身份验证。用户使用即时ID和密码输入评论我使用“bcrypt”gem将密码存储在数据库中。在comments_controller.rb中像这样@comment=Comment.new(comment_params)bcrypted_pwd=BCrypt::Password.create(@comment.user_pwd)@comment.user_pwd=bcrypted_pwd当用户想要删除他们的评论时,我使用data-confirm-modalgem来确认数据在这部分,我必须解密用户输入的密码以与数据库中的加密密码进行比较我怎样才能解密密码,

  4. ruby - 如何在Elixir中使用AES CBC 128进行加密和解密 - 2

    我在Rails中有一个具有以下方法的应用程序,该方法可以加密和解密文本并与Java客户端通信。defencrypt(string,key)cipher=OpenSSL::Cipher::AES.new(128,:CBC)cipher.encryptcipher.padding=1cipher.key=hex_to_bin(Digest::SHA1.hexdigest(key)[0..32])cipher_text=cipher.update(string)cipher_textexcenddefhex_to_bin(str)[str].pack"H*"enddefbin_to_hex(

  5. ruby-on-rails - 如何生成用于 attr_encrypted 的加密 key - 2

    我正在考虑使用attr_encrypted在Rails应用程序中用于字段级加密的gem。如何生成用于此gem的加密key?更新:Encryptor的文档,它是attr_encrypted使用的底层加密,声明如下(在Usage|Basic下):secret_key=Digest::SHA256.hexdigest('asecretkey')encrypted_value=Encryptor.encrypt('somestringtoencrypt',:key=>secret_key)我猜想key可以是任意长度的随机字符串,而对hexdigest的调用将从中计算出适当的固定长度字符串。这是

  6. ruby - 在Ruby中访问pgp加密文件 - 2

    我有一个pgp加密文件,我需要在运行时从中提取数据。这可以通过仅解密到内存来完成吗(而不是创建解密文件并在完成后将其删除)? 最佳答案 名为OpenPGP的Ruby库几个月前发布。看起来它对你有用。 关于ruby-在Ruby中访问pgp加密文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1083546/

  7. 酷早报:10月21日全球Web3加密行业重大资讯大汇总 - 2

    2022年10月21日星期五【数据指标】加密货币总市值:$0.95万亿BTC市值占比:38.51%恐慌贪婪指数:23极度恐慌 【今日快讯】1、【政讯】1.1.1、美联储布拉德:市场预期美联储11月会加息75个基点1.1.2、美联储哈克:将维持加息一段时间1.2、美国10年期国债收益率触及4.197%,为2008年6月以来最高1.3、法国数字转型部长:政府将专注于DeFi和Web31.4、巴西ATM机将于11月3日起支持USDT1.5、美众议院副议长将于11月初加入a16zCrypto担任政府事务主管1.6、香港数字资产托管机构FirstDigitalTrust首席执行官:香港仍是安全

  8. Ruby OpenSSL 非对称加密——使用两个 key 对 - 2

    我想使用两个key对在两个通信系统之间实现具有不可否认性的安全消息传递。我使用以下方法生成并存储了两组key对:sys1_key=OpenSSL::PKey::RSA.generate(2048)sys2_key=OpenSSL::PKey::RSA.generate(2048)这两个key对都将其单独的公钥和私钥保存到文件中:sys1.pub.pemsys1.priv.pemsys2.pub.pemsys2.priv.pem系统1有自己的公钥和私钥以及系统2的公钥。系统2有自己的公钥和私钥以及系统1的公钥。在系统1上,我想获取消息“Helloworld”并使用系统1的私钥和系统2的公

  9. ruby - 在 Ruby 中实现 gpg 加密 - 2

    尝试将一些旧的shell/unix脚本转换为Ruby。我对一个文件进行了以下加密,这是通过Unix中的gpg工具完成的。我可以传入接收者key、我要加密的文件和输出文件到pgp加密一些东西。gpg--recipient"$my_recipient_key"\--encrypt"$my_file"\--output"$my_outfile"\--always-trust\--compress-algozip像上面那样进行简单加密的Ruby等价物是什么?经过一些挖掘,我看到:OpenPGP很流行,但是在RubyGems网站上没有文档,其他地方也很少有很好的例子。gpgme似乎很受欢迎,很有

  10. ruby - 加密空字符串 - 2

    我正在使用Ruby的OpenSSLbindings进行AES-256加密。我可以加密一个非空字符串。但是,当尝试加密空字符串时,Ruby会引发异常,提示数据不能为空。如何使用Ruby的OpenSSL绑定(bind)加密空字符串?重现问题的代码require"openssl"KEY=OpenSSL::Cipher::Cipher.new("aes-256-cbc").random_keydefencrypt(plaintext)cipher=OpenSSL::Cipher::Cipher.new("aes-256-cbc")cipher.encryptiv=cipher.random_i

随机推荐