2023VNCTF-PZGalaxy
创始人
2025-05-31 10:20:11
0

样本链接-PZGalaxy

一、搭建环境

(其实没啥用,可以帮助理解代码逻辑吧)
在当前文件夹下使用命令:

python2 -m SimpleHTTPServer
python3 -m http.server

二、题目主要代码逻辑:




获取一个日期,使用RC4加密(Leaf函数),将date作为RC4的密钥keyenc作为明文(对称加密算法,感觉叫法无所谓),经过RC4算法,的到flag,只要输入正确的日期就能alert出正确的flag

RC4加密算法的特征:
①使用变量s,指s盒,s盒中的,且s盒对应的s数组的长度为256
②在加密过程中,RC4算法通过对S盒的不断更新和元素的交换来生成伪随机序列,对应Leaf函数中的也有使用临时变量x进行s盒元素交换的地方
③最后使用刚刚生成的伪随机序列对明文进行按位异或运算,得到密文

三、exp.py

import datetime
# enc = ['¦', 'p', ':', 'Ü','\x92', 'Ã', '\x97', 'ó', '\x1A', 'ß', '\b', 'Ö', 'A', ' ', '5', '\x90', '{', '\x06', 'Ô', '÷', 's', '_', '\x1D', ':', 'I', 'L', 'C', 'X', 'Ñ', '¹', 'O', '\x99', '\x85', '3', 'à', 'i', '|']
enc = ['¦', 'p', ':', 'Ü','\x92', 'Ã', '\x97', 'ó', '\x1A', 'ß', '\b', 'Ö', 'A', ' ', '5', '\x90', '{', '\x06', 'Ô', '÷', 's', '_', '\x1D', ':', 'I', 'L', 'C', 'X', 'Ñ', '¹', 'O', '\x99', '\x85', '3', 'à', 'i', '|']
for m in range(1, 13):for d in range(1, 32):try:key = '2023{:02d}{:02d}'.format(m, d)s = list(range(256))j = 0for i in range(256):j = (j + s[i] + ord(key[i % len(key)])) % 256s[i], s[j] = s[j], s[i]i = j = 0res = ''for c in enc:i = (i + 1) % 256j = (j + s[i]) % 256s[i], s[j] = s[j], s[i]res += chr(ord(c) ^ s[(s[i] + s[j]) % 256])if 'flag{' in res:print('Found key:', key)print('Plaintext:', res)breakexcept:pass

另一种使用Cypto库的方法

from Crypto.Cipher import ARC4
# enc = [b'\xa6', b'p', b':', b'\xdc', b'\x92', b'\xc3', b'\x97', b'\xf3', b'\x1a', b'\xdf', b'\x08', b'\xd6', b'A', b' ', b'5', b'\x90', b'{', b'\x06', b'\xd4', b'\xf7', b's', b'_', b':', b'I', b'L', b'C', b'X', b'\xd1', b'\xb9', b'O', b'\x99', b'\x85', b'3', b'\xe0', b'i', b'|']
enc = ['¦', 'p', ':', 'Ü','\x92', 'Ã', '\x97', 'ó', '\x1A', 'ß', '\b', 'Ö', 'A', ' ', '5', '\x90', '{', '\x06', 'Ô', '÷', 's', '_', '\x1D', ':', 'I', 'L', 'C', 'X', 'Ñ', '¹', 'O', '\x99', '\x85', '3', 'à', 'i', '|']
enc = bytes([ord(c) for c in enc])
for m in range(1, 13):for d in range(1, 32):try:key = '2023{:02d}{:02d}'.format(m, d)cipher = ARC4.new(key.encode())res = cipher.decrypt(enc)if b'flag{' in res:print('Found key:', key)print('Plaintext:', res)breakexcept:pass

ps:ARC4的方法只能接受字节串变量

相关内容

热门资讯

Scala中Array常用的方...         在scala中,Array有大量的方法。定义一个数组arr后ÿ...
C++基础学习笔记(四)——核... 参考链接:https://www.bilibili.com/video/BV1et41...
超详细-安装vCenterv ... 目录 介绍: 第一阶段安装: 第二阶段安装: 最近在玩虚拟...
第14届蓝桥杯STEMA测评真... [导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,...
ChatGPT助力校招----... 1 ChatGPT每日一题:简述SPI通信协议 问题:简述SPI通信协议...
新版PMP考试难不难? 1.新版考试题量和答题时间的变化? 总题量从200道减少到180道,所以...
HBase客户端、服务器端、列... HBase客户端、服务器端、列簇设计、HDFS相关优化,HBase写性能优化切入点&#...
linux 全局环境变量删除后... linux 全局环境变量删除后 还有 仍然存在1、编辑 /etc/profile2、设置REDISC...
网站流量飙升背后:外贸企业谷歌... 自从我涉足外贸行业,我逐渐认识到谷歌SEO优化在提升网站流量和吸引潜在客户方面的重要性...
一、trino406系列 之 ... 文章目录前言Trino不是什么?Trino是什么?概览服务类型Coord...
基于Java+SpringBo...  博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系&...
财经时评|破除“内卷式”竞争 ... 作者 中国汽车工程学会理事长张进华“十四五”以来,我国智能网联新能源汽车产业坚持以科技创新引领和推动...
二十六、对象的实例化内存布局与... 一、对象的实例化 1.判断对象对用的类是否加载、链接、初始化。 2.为对象分配内存。 3.处理并发...
C语言简单工厂模式和工程创建 一,设计模式概念引入① 什么是设计模式设计模式通常被面向对象的软件开发人员所采用&#x...
新势力车企5月销量:零跑汽车再... 红星资本局6月1日消息,今日,新势力车企陆续公布5月销量数据。零跑汽车(09863.HK)再创历史新...
150.网络安全渗透测试—[C... 我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!...
微服务注册中心做了什么事——服... 是否被一大堆的注册中心八股文淹没,不知道哪个是哪个,有啥区别甚至于不知道...
财经时评|反内卷不能只靠自觉 ... 作者 汽车工业协会原常务副会长兼秘书长、中国动力电池产业联盟理事长董扬去年四季度以来,政府工作报告及...
Lua打表 参考:https://www.likecs.com/show-308547984.ht...
Python-伪数据构造库fa... 目录 radar lipsum fake2db radar 可用来生成随机时间 import r...