【wp】2021春秋杯-BabySteg
这次个人赛难度真的undingable,就只能做做杂项苟着这样子,re手转行做misc警告(
拿到题目是看到有一个flag1.txt
和一个加密压缩包password.7z
file一下txt文件可以看到:
是uuencode文件,所以用python跑一下解出flag.7z
:
然后password.7z
的密码什么提示都没有,一度以为是从txt里找线索,后来放了hint才知道是6-8位数字,弱口令猜了一轮都没用以后果断用cRARk-7z爆破:
password.def
里写的是:
(定义密码规则,这里是遍历纯数字,具体可以看readme
爆破出密码是321456
解开password.7z
,得到flag.7z
的password是7324623c
。
解开能看到一张图片和一个encode.py
,很容易就猜到是flag的图片经过encode.py
以后得到的challenge.png
,所以我们需要对着encode.py
写逆算法。
简单分析一下encode.py
:
逻辑很清晰,就是用了一个乱序对flag图片进行了处理。
这里涉及到np.random.shuffle的工作机制,大概就是对某个长度的一维数组进行位置上的随机乱序,而对相同的随机数种子和相同长度的数组来说打乱的效果是一样的,它不关心数组的数据是啥,只关心什么位置的该被打乱到什么位置。
所以关键乱序部分的逆算法是:
接下来就剩爆破520-540这个随机数种子了,注意random.randint的区间是前闭后闭,不要爆破少了(
exp:
可以解出challenge540.png
有:
得到flag:flag{931549887f0a1398807eb68a656180ef}
__EOF__

本文链接:https://www.cnblogs.com/c10udlnk/p/14827644.html
关于博主:欢迎关注我的个人博客-> https://c10udlnk.top/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程