题目介绍


题目名称 Baby_steg
类型 Misc

题目分析


题目提供了一个7z的加密压缩包password.7z 、一个txt文件flag1.txt

flag1.txt内容:

password.7z内容:

通过flag1.txt内容中flag.7z 盲猜是个7z压缩文件。

解题过程


修改后缀

flag1.txt后缀改为7z,打开之后发现…(盲猜正确)

那么这题至此就可以放弃了。

尝试把它丢进windows虚拟机,使用WinRAR成功打开。(这锅Mac OS背)发现存在一个加密压缩包flag.7zflag.7z内存在一张png格式图片challenge.png和一个python脚本文件encode.py


猜测password.7z里的password.txt文件存在解压flag.7z的密码。

7z压缩包密码破解

计算Hash值

使用John的脚本7z2john.pl计算出password.7z的hash值。

password.7z的hash值:

$7z$2$19$0$$16$abc477f84f711f5530432e64418c8392$3167568243$16$12$40a31f0f88ac7b9a9acdc6cbb7d23f23$8$00

Hashcat密码爆破

使用hashcat进行密码爆破(Mac OS的终端会对$进行转义,因此hash值处需加上\):

Hashcat停止运行,破解成功。打开pass.txt得到压缩包password.7z的解压密码321456

解压password.7z,打开password.txt,得到flag.7z的解压密码7324623c。然而现实…

那么这题至此又可以放弃了。

发现password.7z在MacOS上解压不出来显示密码错误,只能尝试丢到虚拟机里解压,成功解压。

解压flag.7z,得到图片challenge.png和加密脚本encode.py

图片恢复

encode.py

import numpy as np
import cv2
import sys
import randomdef encode(image):i = random.randint(520,540)np.random.seed(i)# image = 1298 * 695to_hide = cv2.imread(image)to_hide_array = np.asarray(to_hide)for i in range(to_hide_array.shape[0]):np.random.shuffle(to_hide_array[i])  gray = cv2.cvtColor(to_hide_array, cv2.COLOR_BGR2GRAY)cv2.imwrite('challenge.png', gray)print("encode!")def main():if len(sys.argv) != 2:print('error!')exit(1)encode(sys.argv[1])if __name__ == '__main__':main()
脚本分析
#选取520-540的一个随机数,并确定为随机种子。
i = random.randint(520,540)np.random.seed(i)
#导入图片,将图片像素转换为三维矩阵。
to_hide = cv2.imread(image)
to_hide_array = np.asarray(to_hide)
#利用shuffle函数随机扰乱每一行各列的相对顺序,实际上是伪随机。
for i in range(to_hide_array.shape[0]):np.random.shuffle(to_hide_array[i])
#将扰乱后的矩阵进行灰度图转换并恢复图片
gray = cv2.cvtColor(to_hide_array, cv2.COLOR_BGR2GRAY)
cv2.imwrite('challenge.png', gray)
解密脚本编写

decode.py

import numpy as np
import cv2
import sys
import randomdef decode(seed,image):np.random.seed(seed)to_hide = cv2.imread(image)to_hide_array = np.asarray(to_hide)temp = [list(range(to_hide_array.shape[1]))]*to_hide_array.shape[0]temp = np.asarray(temp)for i in range(to_hide_array.shape[0]):np.random.shuffle(temp[i])re = [[[0,0,0]]*to_hide_array.shape[1]]*to_hide_array.shape[0]re = np.asarray(re)for i in range(to_hide_array.shape[0]):for j in range(to_hide_array.shape[1]):re[i][temp[i][j]]=to_hide_array[i][j]cv2.imwrite('decode-'+str(seed)+'.png', re)for i in range(520,541):decode(i,'challenge.png')print("decode!")

Get Flag

运行decode.py,查看生成的图片,获得flag~

【write up】2021春秋杯-BabySteg相关推荐

  1. 2021年“春秋杯”新年欢乐赛--十二宫的挑衅

    前言 没怎么打,随便玩了一下.发现有一道十二宫杀手密码比较有趣.总结一下 题目说明 标题:十二宫的挑衅 题目文件:Twelve_palaces_of_serial_killers.png(翻译:十二宫 ...

  2. 2021天翼杯 密码官方wp

    2021天翼杯 crypto TryHash 审计题目代码,题目给出了一个feistel结构的加密算法,密钥长度为8字节.用随机生成的密钥对flag进行了加密.攻击者可以提供一段明文让服务器用同样的密 ...

  3. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(3)签到题3题

    2021"MINIEYE杯"中国大学生算法设计超级联赛(3) Start Time : 2021-07-27 12:00:00 End Time : 2021-07-27 17:0 ...

  4. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(1)签到题15869

    2021"MINIEYE杯"中国大学生算法设计超级联赛(1) Start Time : 2021-07-20 12:10:00 End Time : 2021-07-20 17:1 ...

  5. “东华春秋杯”上海大学生网络安全技能大赛决赛收官 聚焦高校人才培养

    11月21日, 由上海市教育委员会.上海计算机开放系统协会指导,东华大学主办,北京永信至诚科技有限公司协办,阅文集团.上海盛大网络发展有限公司.上海勋立信息科技有限公司.上海犇众信息技术有限公司支持的 ...

  6. 2021 长安杯 Re

    2021 长安杯 Re 忙了半天,就肝了两个Re,其中一个还是比赛结束后才出的,菜的令人发指,呜呜呜!!! 1.Fantasy apk逆向,查了一下,没有加固,直接在 jadx-gui 当中打开,可以 ...

  7. 2021美亚杯(个人赛)练习记录

    因为当时没有参加比赛,用的奇哥给的镜像和参考答案,然后自己重新做了一遍,记录一下自己的思路(我自封大娘级记录,保姆级懂吧). 指路奇哥(奇哥带好人 (๑•̀ㅂ•́)و✧):2021第七届美亚杯中国电子 ...

  8. [2021绿城杯] [Misc] 流量分析 + cobaltstrike 流量解密

    [2021绿城杯] [Misc] 流量分析 + cobaltstrike 流量解密 2021年"绿城杯"网络安全大赛-Misc-流量分析 [2021绿城杯] [Misc] 流量分析 ...

  9. 2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析

    2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析 前言 sql_debug sql_debug 题⽬介绍 dsn_from_uri 触发phar反序列化 Linux下PHP内核调试⼩知识 ...

最新文章

  1. centos查看cached内部文件
  2. vue 表单验证按钮事件交由父组件触发
  3. 人脸识别有什么漏洞,活体检测又是怎么防伪?
  4. NYOJ 663 弟弟的作业
  5. iis10.0 php多版本,IIS7 IIS8 中多个版本php共存的方法
  6. web前端基础之JS
  7. 矩阵广义逆求解(QR、svd、LU)
  8. 让IIS只监听一个IP上的80端口
  9. 怎么调用html调色板,JS实现仿PS的调色板效果完整实例
  10. pytdx 获取板块指数_通达信板块代码,怎么查看各行业板块指数?
  11. python好用的内置库_python内置的高效好用各种库
  12. html仿excel冻结 css,如果做类似Excel 冻结首列的效果_html/css_WEB-ITnose
  13. QT 即时聊天软件(一)
  14. Html-照片的逐步出现 、心形动画制作、3d立方体魔方、鼠标划过box阴影练习
  15. 如何在matlab中表达点集,matlab练习程序(点集配准的SVD法)
  16. 名帖108 鲜于枢 行楷《麻徵君透光古镜歌》
  17. 关于react hook视频讲解笔记
  18. 人机界面和组态软件有什么区别?
  19. QPainter::drawPixmapFragments - the source rect is not contained by the pixmap‘s rectangle
  20. 盘点世上最牛的5篇博士论文,跪拜!

热门文章

  1. miix4linux双系统,miix4怎么装系统
  2. MPLS隧道——跨域解决方案A、B讲解
  3. html css星级评分,纯css实现星级评分效果
  4. 计算机显示无法打开打印机,添加打印机时电脑弹出错误窗口“Windows无法打开添加打印机”(适用 Windows OS)...
  5. 仅用Python三行代码,实现数据库和excel之间的导入导出
  6. 动态加载烘培贴图与Terrain转mesh
  7. 论文中文翻译——Automated Vulnerability Detection in Source Code Using Deep Representation Learning
  8. 我是用的是NetBeans8.0急需一个jsp上传图片到网站并保存路径到数据库的实例。求大神解答,给点赞!
  9. 树的概念:层次、高度、深度、宽度
  10. css怪异盒子模型,CSS3弹性盒---怪异盒