当前位置: 首页 > article >正文

从伪加密ZIP到RSA解密:手把手带你复现BUUCTF那道ACTF新生赛Crypto题

从伪加密ZIP到RSA解密手把手带你复现BUUCTF那道ACTF新生赛Crypto题当你第一次接触CTF密码学题目时面对一个看似普通的ZIP压缩包和一堆加密参数很容易感到无从下手。本文将带你完整复现BUUCTF平台上那道经典的ACTF新生赛Crypto题目从ZIP伪加密破解到RSA解密一步步揭开谜题的面纱。1. 破解伪加密ZIP文件大多数CTF选手第一次遇到伪加密的ZIP文件时都会感到困惑——为什么密码明明不对却能解压这是因为ZIP文件格式中有一个鲜为人知的特性加密标志位可以被手动修改而不影响实际加密状态。1.1 识别伪加密特征使用WinHex或010 Editor打开题目提供的ZIP文件你会看到类似如下的十六进制数据50 4B 03 04 14 00 09 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00关键点在于第7-8字节示例中的09 00这组值决定了文件的加密状态。在标准的ZIP文件格式中无加密00 00真加密01 00伪加密09 00或08 001.2 修改加密标志位使用十六进制编辑器执行以下操作搜索50 4B 03 04定位到ZIP文件头将第7-8字节从09 00改为00 00保存文件后尝试解压注意某些ZIP工具会自动检测伪加密并拒绝解压推荐使用7-Zip或命令行unzip工具。2. 分析解压出的RSA脚本成功解压后通常会得到一个Python脚本和一个output文件。让我们先看脚本内容from Crypto.Util.number import * import gmpy2 p getPrime(512) q getPrime(512) n p * q e 65537 phi (p-1)*(q-1) d gmpy2.invert(e, phi) flag bACTF{...} m bytes_to_long(flag) c pow(m, e, n) print(fp {hex(p)}) print(fq {hex(q)}) print(fc {hex(c)})这是一个标准的RSA加密实现关键参数包括p, q两个大质数512位n模数p*qe公钥指数通常为65537d私钥指数c密文3. 理解output文件内容output文件通常包含加密过程中生成的参数格式如下p 0xabcdef123456... q 0x987654321abc... c 0x102030405060...这些十六进制字符串可以直接在Python中转换为整数p int(abcdef123456..., 16) q int(987654321abc..., 16) c int(102030405060..., 16)4. 编写RSA解密脚本现在我们已经有了所有必要的参数可以编写解密脚本了。以下是完整的解密流程from Crypto.Util.number import long_to_bytes import gmpy2 # 从output文件复制过来的参数 p 0xabcdef123456... # 替换为实际的p值 q 0x987654321abc... # 替换为实际的q值 c 0x102030405060... # 替换为实际的c值 # 计算必要的参数 n p * q e 65537 phi (p-1)*(q-1) d gmpy2.invert(e, phi) # 解密 m pow(c, d, n) flag long_to_bytes(m) print(flag)4.1 常见问题排查如果运行脚本时遇到错误检查以下几点gmpy2安装问题pip install gmpy2如果安装失败可以尝试pip install gmpy22.0.8 # 指定较旧版本大整数处理确保所有大整数都以正确的格式输入特别是在复制十六进制值时不要遗漏任何字符。字节转换最后的long_to_bytes步骤至关重要直接打印整数m会得到错误的flag。5. 进阶技巧与优化对于更复杂的RSA题目你可能需要以下技巧5.1 多素数RSA当n由多个素数组成时n pqr*...欧拉函数计算方式变为phi (p-1)*(q-1)*(r-1)*...5.2 中国剩余定理加速对于大数解密可以使用CRT加速dp d % (p-1) dq d % (q-1) qinv gmpy2.invert(q, p) m1 pow(c, dp, p) m2 pow(c, dq, q) h (qinv * (m1 - m2)) % p m m2 h * q5.3 小指数攻击当e很小时如e3可能直接开方就能得到明文m gmpy2.iroot(c, e)[0]在实际的CTF比赛中RSA题目往往不会这么直接。你可能需要结合多种攻击方式如模数分解当n较小时共模攻击当多个密文使用相同的nWiener攻击当d较小时Franklin-Reiter相关消息攻击记住每道CTF题目都是独特的关键在于理解基本原理并灵活应用。通过这道ACTF新生赛题目的完整复现你应该已经掌握了从伪加密ZIP处理到基础RSA解密的完整流程。下次遇到类似题目时不妨先冷静分析文件结构再逐步破解各个加密环节。

相关文章:

从伪加密ZIP到RSA解密:手把手带你复现BUUCTF那道ACTF新生赛Crypto题

从伪加密ZIP到RSA解密:手把手带你复现BUUCTF那道ACTF新生赛Crypto题 当你第一次接触CTF密码学题目时,面对一个看似普通的ZIP压缩包和一堆加密参数,很容易感到无从下手。本文将带你完整复现BUUCTF平台上那道经典的ACTF新生赛Crypto题目&#x…...

Beyond Compare 5密钥生成技术深度解密:从RSA加密到完整激活解决方案

Beyond Compare 5密钥生成技术深度解密:从RSA加密到完整激活解决方案 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 在软件开发与系统维护领域,Beyond Compare 5作为文件…...

AMD Ryzen隐藏性能调优利器:SMUDebugTool硬件调试工具完全指南

AMD Ryzen隐藏性能调优利器:SMUDebugTool硬件调试工具完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...

导师推荐 AI论文网站测评:2026最新好用工具全解析

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

跟着 MDN 学CSS day_17:(深入理解溢出机制与容器控制艺术)

在CSS的世界里,一切皆为盒子。当我们精心设定盒子的宽度和高度,试图构建完美的布局时,一个不可避免的问题就会悄然出现:**如果内容超出了盒子的承载能力,会发生什么?**这就是CSS中一个至关重要的概念——溢…...

跟着 MDN 学CSS day_16:(深入掌握背景与边框的艺术)

在网页设计的视觉语言中,背景与边框是两个最基础也最强大的工具。它们就像舞台的幕布和画框,共同构建了元素的视觉边界与氛围。MDN的技能测试为我们提供了一个绝佳的实践机会,通过两个具体任务,将理论知识转化为实战能力。本文将深…...

Linux网络编程基础(UDP socket编程)

UDP(用户数据报协议)是一种无连接的传输层协议,与TCP不同,它不保证数据包的顺序和可靠性,但其简单性和低延迟特性使其在实时应用中非常有用。一、UDP协议核心特性UDP作为传输层协议,与TCP的“可靠连接”不同…...

c++乱码问题

大家下载vs2026或者更新时,可能会出现乱码问题点击工具,进入选项,在环境列表里找到文档,下滑到底部,勾选使用特定编码保存文件然后退出就可以了。如果还是存在问题,将自己的代码保存,重新新建一…...

Windows安卓子系统终极优化指南:如何通过WSABuilds实现完美Android体验

Windows安卓子系统终极优化指南:如何通过WSABuilds实现完美Android体验 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or Ke…...

终极指南:3步免费搞定Android Studio中文界面,开发效率提升50%!

终极指南:3步免费搞定Android Studio中文界面,开发效率提升50%! 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseL…...

UE5.1实战:用MySQL插件做个游戏内数据查询器(附完整蓝图)

UE5.1实战:构建高性能游戏内MySQL数据查询系统在虚幻引擎5.1中集成数据库功能已经成为现代游戏开发的重要需求。无论是玩家排行榜、道具管理系统还是实时数据分析,直接访问数据库都能显著提升开发效率和游戏体验。本文将带你从零开始构建一个完整的游戏内…...

Windows热键冲突终极指南:3分钟找出偷走你快捷键的“小偷“

Windows热键冲突终极指南:3分钟找出偷走你快捷键的"小偷" 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

5分钟快速解锁中兴光猫:终极免费工具zteOnu完整指南

5分钟快速解锁中兴光猫:终极免费工具zteOnu完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 对于网络管理员和技术爱好者来说,中兴光猫的权限限制常常成…...

量子循环神经网络在混沌时序预测中的参数效率与架构对比

1. 项目概述 最近几年,量子机器学习(QML)的热度持续攀升,大家都想看看,用量子计算那套“叠加”和“纠缠”的玩法来处理经典问题,到底能不能带来点惊喜。时序预测,尤其是混沌系统预测&#xff0c…...

从酒店评论到情感分析:手把手教你用fastText做文本分类(Python实战避坑指南)

从酒店评论到情感分析:fastText文本分类实战全解析 当产品经理甩给你一份未经处理的酒店评论数据集,要求48小时内给出情感倾向分析报告时,作为工程师的你该如何应对?本文将带你用fastText这个轻量级工具,从原始数据到…...

对比直接使用官方API,Taotoken在计费透明性上的实际感受

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用官方API,Taotoken在计费透明性上的实际感受 1. 引言:从多模型调用到费用感知的转变 在同时接…...

Wand-Enhancer终极指南:三步免费解锁WeMod专业版所有功能

Wand-Enhancer终极指南:三步免费解锁WeMod专业版所有功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod免费版的限制而烦恼吗&…...

IDE 重构(Refactoring)详解 + 实例代码

IDE 重构(Refactoring)详解 实例代码 重构是指在不改变代码外部行为的前提下,对代码内部结构进行调整、优化,使代码更易读、易维护、易扩展的过程。IDE(集成开发环境)是重构的最强助手,它能自动…...

深入解析AlienFX Tools:从硬件直连到个性化灯光控制的完整技术方案

深入解析AlienFX Tools:从硬件直连到个性化灯光控制的完整技术方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 在Alienware设备生态中&…...

2026国安部重磅披露:境外间谍如何利用民用路由器构建窃密跳板?全链路技术解析与防御指南

一、引言:从"网速变慢"到国家级网络窃密 2026年5月20日,国家安全部官方微信公众号发布紧急通报,披露了一起严重的境外间谍情报机关网络窃密案件。与以往直接攻击政府或企业服务器不同,此次攻击者将目标锁定在了最容易被…...

Python调用WebAssembly破解APP签名算法实战

1. 这不是“调用JS”,而是把WebAssembly当真实CPU来调试你有没有遇到过这样的情况:抓包看到某资讯APP的请求里,sign参数像雪花一样每秒变一个,长度固定32位,全是小写字母加数字;Fiddler里点开响应&#xff…...

Python运算符:成员运算符(in/not in)的使用场景

Python运算符:成员运算符(in/not in)的使用场景📚 本章学习目标:深入理解成员运算符(in/not in)的使用场景的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与最…...

CVE-2026-35397深度解析:Jupyter Server路径遍历漏洞,CVSS 8.8高危威胁数据科学全生态

一、引言:数据科学基础设施的"心脏出血" Jupyter生态是全球数据科学与AI开发领域的事实标准,据Stack Overflow 2026年开发者调查显示,超过87%的数据科学家和AI工程师日常使用Jupyter Notebook/Lab进行代码开发、数据分析和模型训练…...

18分钟攻陷GitHub!Nx Console投毒事件深度复盘:3800个核心仓库泄露的供应链安全警示

摘要:2026年5月20日,全球最大代码托管平台GitHub遭遇史上最严重的供应链攻击之一。黑客组织TeamPCP通过投毒VS Code扩展市场中的Nx Console v18.95.0版本,仅用18分钟、28次下载就成功渗透GitHub内部网络,窃取了包括Copilot、CodeQ…...

5个理由告诉你为什么Mermaid Live Editor是图表创作的效率神器

5个理由告诉你为什么Mermaid Live Editor是图表创作的效率神器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

Android 13 HTTPS抓包失效原因与Proxyman实战解决方案

1. 为什么Android 13上抓HTTPS包突然变难了?从Fiddler/Charles失效说起 你是不是也遇到过:上周还能用Fiddler在Android 12真机上稳稳抓到某电商App的登录接口,升级到Android 13后,所有HTTPS请求全变成“Connection refused”或直接…...

JMeter中稳定获取与传递Token的三种实战方案

1. 为什么token获取总在JMeter脚本里“掉链子”做接口测试的同行应该都踩过这个坑:明明API文档写得清清楚楚,Postman里一调一个准,可一到JMeter里,登录接口返回了token,后续请求却始终401——Header里token字段空着、变…...

STM32F407 ADC采样值跳得厉害?HAL库时钟配置与软件滤波避坑指南

STM32F407 ADC采样值跳得厉害?HAL库时钟配置与软件滤波避坑指南 在嵌入式系统开发中,ADC(模数转换器)的稳定性直接关系到整个系统的测量精度。特别是对于STM32F407这类高性能MCU,当应用于电源监控、医疗设备或工业传感…...

Transformer解码器在量子纠错中的应用:突破表面码实时解码瓶颈

1. 项目概述与核心挑战 量子计算这行干久了,你总会遇到一个绕不开的“拦路虎”:量子纠错。这玩意儿是通往实用化、容错量子计算机的必经之路,但其中的解码问题,尤其是针对表面码这类稳定子码的解码,其复杂度和实时性要…...

中兴光猫深度管理:用zteOnu工具解锁隐藏的管理权限

中兴光猫深度管理:用zteOnu工具解锁隐藏的管理权限 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 想象一下,你正在管理一个企业网络,面对几十台中兴…...