| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 陇原战疫2021网络安全大赛_Crypto_复现 -> 正文阅读 |
|
[网络协议]陇原战疫2021网络安全大赛_Crypto_复现 |
陇原战疫2021网络安全大赛_Crypto_复现mostlycommon
k
e
y
w
o
r
d
s
:
keywords:
keywords: D e c r y p t i o n ? c o d e Decryption~code Decryption?code
easytask
k
e
y
w
o
r
d
s
:
keywords:
keywords: 解题细节思路请见paper,(20条消息) GGH非对称密码体制破解方法_M3ng@L的博客-CSDN博客 简单来说,使用 D e c r y p t i o n ? c o d e Decryption~code Decryption?code
P e r f e r e n c e Perference Perferencehxp |伏尔加CTF 2016资格:crypto300"XXY"写 Mathematics of Public Key Cryptography (auckland.ac.nz) Nguyen’s Attack:Intended Solution to GGH in GYCTF 2020 | Soreat_u’s Blog (soreatu.com) Civet cat for Prince
k
e
y
w
o
r
d
s
:
keywords:
keywords: D e s c r i p t i o n Description Description
A n a l y s i s Analysis Analysis首先是执行 然后进入正题,第一段守卫处没有有用信息,需要输入你的
得到对
输入一段密文进行AES_CBC解密,其中
总共有三次询问的机会(循环次数为3),循环完成之后由守卫进行验证 提交给守卫某个
以上就是对题目代码的分析 简单来说,我们需要想办法把从 其中可以用到的是 显然没有办法知道 先令 m 1 = i n p u t _ n a m e m_1 = input\_name m1?=input_name m 2 = a _ c a t _ p e r m i s s i o n m_2 = a\_cat\_permission m2?=a_cat_permission n e e d _ m 1 = m 1 need\_m_1=m_1 need_m1?=m1? n e e d _ m 2 = P r i n c e p e r m i s s i o n need\_m_2=Princepermission need_m2?=Princepermission 由于AES_CBC加密是分块加密,而每一块的大小是 这就意味着加密得到的密文块会有特殊的性质 令
c
1
=
p
e
r
m
i
s
s
i
o
n
[
:
16
]
c_1=permission[:16]
c1?=permission[:16],
c
2
=
p
e
r
m
i
s
s
i
o
n
[
16
:
]
c_2=permission[16:]
c2?=permission[16:];其中
p
e
r
m
i
s
s
i
o
n
permission
permission是 通过图片明确一下AES_CBC加解密过程 加密过程是,先将明文按 解密过程是,将密文按 其中加密器和解密器在本题算是黑盒,只需要知道进去的数据和原来是不一样的即可 我们构造的密文要先经过一次解密器,这就意味着非经过AES_CBC加密产生的密文(比如
c
1
,
c
2
c_1,c_2
c1?,c2?)都会产生一个未知的数据;那么这时就需要用到 经过解密器之后会进行异或,那么这就是本题的关键之一了,异或的性质就是两个一样的数异或均为0,也就是说对其他一起的数不会有影响,利用这个性质我们构造 f a k e _ c 1 = c 1 ⊕ m 2 ⊕ n e e d _ m 2 fake\_c_1=c_1\oplus m_2\oplus need\_m_2 fake_c1?=c1?⊕m2?⊕need_m2? 使用系统给出的 先经过解密器得到 m 1 ⊕ i v ⊕ d e c r y p t e d _ m 2 ⊕ d e c r y p t e d _ n e e d _ m 2 m_1\oplus iv\oplus decrypted\_m_2\oplus decrypted\_need\_m_2 m1?⊕iv⊕decrypted_m2?⊕decrypted_need_m2? 在与初始化向量 接着构造 f a k e _ i v = m ⊕ m 1 ⊕ i v = d e c r y p t e d _ m 2 ⊕ d e c r y p t e d _ n e e d _ m 2 ⊕ i v fake\_iv=m\oplus m_1\oplus iv=decrypted\_m_2\oplus decrypted\_need\_m_2\oplus iv fake_iv=m⊕m1?⊕iv=decrypted_m2?⊕decrypted_need_m2?⊕iv 那么最后传入的密文是
f
a
k
e
_
c
1
+
c
2
fake\_c_1+c_2
fake_c1?+c2?,传入的 推导一下最后的解密过程,(AES_CBC是分块解密的) f a k e _ c 1 fake\_c_1 fake_c1?单独进行解密得到 m 1 ⊕ i v ⊕ d e c r y p t e d _ m 2 ⊕ d e c r y p t e d _ n e e d _ m 2 m_1\oplus iv\oplus decrypted\_m_2\oplus decrypted\_need\_m_2 m1?⊕iv⊕decrypted_m2?⊕decrypted_need_m2? 然后再与 f a k e _ i v fake\_iv fake_iv异或得到 m 1 ⊕ i v ⊕ d e c r y p t e d _ m 2 ⊕ d e c r y p t e d _ n e e d _ m 2 ⊕ d e c r y p t e d _ m 2 ⊕ d e c r y p t e d _ n e e d _ m 2 ⊕ i v m_1\oplus iv\oplus decrypted\_m_2\oplus decrypted\_need\_m_2\oplus decrypted\_m_2\oplus decrypted\_need\_m_2\oplus iv m1?⊕iv⊕decrypted_m2?⊕decrypted_need_m2?⊕decrypted_m2?⊕decrypted_need_m2?⊕iv = m 1 =m_1 =m1? 得到明文分组1,符合最后的判断条件 然后 c 2 c_2 c2?单独进行解密,得到 c 1 ⊕ m 2 c_1\oplus m_2 c1?⊕m2? 再与 f a k e _ c 1 fake\_c_1 fake_c1?进行异或得到 c 1 ⊕ m 2 ⊕ n e e d _ m 2 ⊕ c 1 ⊕ m 2 = n e e d _ m 2 c_1\oplus m_2\oplus need\_m_2 \oplus c_1\oplus m_2=need\_m_2 c1?⊕m2?⊕need_m2?⊕c1?⊕m2?=need_m2? 这就是明文分组2,符合最后的判断条件 D e c r y p t i o n ? c o d e Decryption~code Decryption?code
P e r f e r e n c e Perference Perference |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:46:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |