GKCTF2020_Misc_复现

code obfuscation

keywods:keywods:keywods: js混淆替换密码

得到一张斜着的二维码图片,中间还被分割了一下

使用PS把分割的部分接回去(不要留白),扫描二维码得到

base(gkctf)

使用editor010打开图片数据,数据报错,显然是加了一些其他的东西进去;最简单的方式:binwalk一下

得到一个压缩包,需要密码

根据题目hint

压缩包密码是加密过的

那么这个base(gkctf)就是用在这的了

把常见的base都加密gkctf一下,比如base32,base52,base64等等;最后是base52的加密结果可以解压压缩包

得到一张图片以及

eval(function(p,a,c,k,e,d){e=function©{return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!’’.replace(/^/,String)){while(c–)d[e©]=k[c]||e©;k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(’\b’+e©+’\b’,‘g’),k[c]);return p;}(‘15 n 14 a b c d e f g h i j k l m n o p q r s t u v w x y z 10 11 17="n"12 15 n 14 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10 11 17="n"12 13=0 15 n 14 a b c d e f g h i j 10 11 16="n"13=$((13+1))12 1g("1f=’ ‘;1e=’"’;16=’#’;1j=’(’;1i=’)’;1h=’.’;1a=’;’;19=’<’;18=’>’;1d=‘1c’;1b=’{’;1k=’}’;1t=‘0’;1u=‘1’;1s=‘2’;1r=‘3’;1n=‘4’;1m=‘5’;1l=‘6’;1q=‘7’;1p=‘8’;1o=‘9’;")’,62,93,’||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||do|eval|done|num|in|for|Bn|An|Ce|Cc|Cb|Cn|_|Cl|Bm|Bk|alert|By|Bt|Bs|Cp|Dg|Df|De|Dj|Di|Dh|Dd|Dc|Da|Db’.split(’|’),0,{}))

根据js压缩、混淆、加密的特点 js压缩、混淆和加密 - 简书 (jianshu.com)

压缩:删除 Javascript 代码中所有注释、跳格符号、换行符号及无用的空格,从而压缩 JS 文件大小,优化页面加载速度。

混淆:经过编码将变量和函数原命名改为毫无意义的命名(如function(a,b,c,e,g)等),以防止他人窥视和窃取 Javascript 源代码,也有一定压缩效果。

加密:一般用eval方法加密,效果与混淆相似,也做到了压缩的效果。

那么可以判断这就是js压缩混淆了(也对应了题意:代码混淆),在线工具 JS混淆加密压缩 - 站长工具 (chinaz.com)

解密之后得到

for n in a b c d e f g h i j k l m n o p q r s t u v w x y z do eval An = "n"done
for n in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z do eval An = "n"donenum = 0
for n in a b c d e f g h i j do eval Bn = "n"num =$((num + 1)) done alert("Bk=' ';Bm='"';Bn='#';Bs=' (';Bt=')';By='.';Cb=';';Cc=' < ';Ce=' > ';Cl='_ ';Cn=' {';Cp='}';Da='0 ';Db='1 ';Dc='2 ';Dd='3 ';De='4 ';Df='5 ';Dg='6 ';Dh='7 ';Di='8 ';Dj='9 ';")

仔细观察发现就是替换密码表,注意一点就是字母的替换是以A开头的密文,比如Ai实际上明文中是i

解密脚本

c = "$Bn$Ai$An$Ac$Al$Au$Ad$Ae$Bk$Cc$As$At$Ad$Ai$Ao$By$Ah$Ce$Ai$An$At$Bk$Am$Aa$Ai$An$Bs$Bt$Cn$Ap$Ar$Ai$An$At$Bs$Bm$Aw$Dd$Al$Ac$Da$Am$Ae$Cl$De$Ao$Cl$Dj$Ak$Ac$At$Df$Bm$Bt$Cb$Ar$Ae$At$Au$Ar$An$Bk$Da$Cb$Cp"
dic = {"Bk":' ',"Bm":'"',"Bn":'#',"Bs":"(","Bt":")","By":".","Cb":";","Cc":"<","Ce":">","Cl":"_","Cn":"{","Cp":"}","Da":"0","Db":"1","Dc":"2","Dd":"3","De":"4","Df":"5","Dg":"6","Dh":"7","Di":"8","Dj":"9"}
ls = c.split("$")
print(ls)
for i in ls:if "A" in i:print(i[1],end="")if i in dic:print(dic[i],end="")

Harley Quinn

keywords:keywords:keywords: FreeFileCamouflage电话音

开局得到一个wav文件以及图片

hint:电话音&九宫格

hint:FreeFileCamouflage

关于Free File Camouflage Free File Camouflage免费版下载_文件伪装图片工具下载_3DM软件 (3dmgame.com)

Free File Camouflage(文件伪装图片工具)是一款能够将文件伪装成图片隐藏的工具,利用软件用户能将一些自己的私密日记或者私密软件伪装成图片存放

所以很可能有信息藏在了得到的jpg中(由于Free File Camouflage只识别jpg文件,而题目给的是jpeg,改一下后缀名即可,两者是等价的)

但是发现要使用Free File Camouflage解密需要密钥;进而转向wav文件看一下

audacity打开wav文件,发现文件末尾有疑似电话音的部分

使用DTMF2NUM进行识别 DTMF2NUM 0.2

dimf2num.exe -w Heathens.wav

得到数字 222833344477773338866

根据提示九宫格,转换为字母

使用得到的字符串作为密钥对jpg文件进行解密,得到flag

Sail a boat down the river

keywrods:keywrods:keywrods: Morse数独AES_ECBOvertrue

开局得到一个mp4文件和rar压缩包

压缩包需要密码,先打开mp4看看

是一段监控视频,中间有几帧是二维码,接下来用cqr扫一扫得到一个百度网盘的网址,需要密码

根据题目提示

hint:闪烁的光芒

这个提示显然是对应着视频的,仔细观察,停车杆那里的POS机,在几个时间段会很快地闪烁(一闪一闪的东西很容易联想到Morse密码或者二进制)

使用Kinovea打开,一帧一帧地仔细看闪烁的部分(注意Kinovea没有帧数的说法,每0.03秒的时长即是一帧)

发现闪烁只有两种形式,连续三帧都有闪烁,或者只有一帧闪烁之后熄灭(由于所展现的信息很短,多半是Morse),那么分别对应-.

解码得到

JW8G

带到前面百度网盘中成功进入,网盘内容如下

0 8 1 7 4 0 0 0 0
3 0 2 0 6 8 0 0 0
4 0 6 5 0 0 8 2 0
0 3 0 0 0 0 0 5 6
7 0 4 3 0 9 2 0 1
1 2 0 0 0 0 0 4 0
0 5 9 0 0 4 1 0 8
0 0 0 1 8 0 9 0 2
0 0 0 0 9 7 4 6 0
密文:
efb851bdc71d72b9ff668bddd30fd6bd
密钥:
第一行九宫格从左到右从上到下(原文是第一列,但是根据题目提示是第一行,这就直接改过来了)

第一段是由0到9的数字构成的,完全没想到是数独;原本以为可能是棋盘密码之内的

数独的玩法

需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复

所以这里的0应该是空格,需要我们自己来填1到9的数字

可以自己来解(看wp说是简单难度);也可以使用在线网站进行直接求解

數獨解算器 (sudoku.name)

得到解出来的数独

根据对密钥的描述

第一行九宫格从左到右从上到下

数独是分为九个宫,在每个宫内也要填入1-9而不重复,所以“第一行九宫格”就意味着前三个宫格,且在这三个宫格中分小行从左到右从上到下提取数字(提取我们自己填的数字而不包括原来题目有的数字,第一次做的话可能都试试才会出正确结果,但是联系到之后的解题过程真的自己解很难解出来)

得到

52693795149137

需要密钥的密文,再根据题目提示

hint:加密方式很常见

首先试试AES和DES

AES的模式选择,因为没有偏移量的提示条件,很可能就是ECB模式

注意这里只能用解密网站来求,自己写脚本推的话会报错(至少我是这样)

# 会报错: Incorrect AES key length (14 bytes)
from Crypto.Cipher import AESpassword = b'52693795149137'
aes = AES.new(password,AES.MODE_ECB)
c = b'efb851bdc71d72b9ff668bddd30fd6bd'
m = aes.decrypt(c)
print(m)

解密网站:在线AES加密解密、AES在线加密解密、AES encryption and decryption–查错网 (chacuo.net)

设置

输出设置为hex,其他设置随意

得到:

GG0kc.tf

应该就是rar压缩包的密码了,解压得到一个ovea文件,百度知道是乐谱文件需要用Overture打开(网上的Overtrue破解包似乎都下不起了,只能先用试用选项了)

【亲测能用】Overture 5.0中文版【Overture 5破解版】中文破解版下载-羽兔网 (yutu.cn)

打开ovea文件在乐谱之间发现flag的各个片段

应该就是rar压缩包的密码了,解压得到一个ovea文件,百度知道是乐谱文件需要用Overture打开(网上的Overtrue破解包似乎都下不起了,只能先用试用选项了)

【亲测能用】Overture 5.0中文版【Overture 5破解版】中文破解版下载-羽兔网 (yutu.cn)

打开ovea文件在乐谱之间发现flag的各个片段

GKCTF2020_Misc_复现相关推荐

  1. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易

    近日,PyTorch 社区发布了一个深度学习工具包 PyTorchHub, 帮助机器学习工作者更快实现重要论文的复现工作.PyTorchHub 由一个预训练模型仓库组成,专门用于提高研究工作的复现性以 ...

  2. 【目标检测】yolo系列:从yolov1到yolov5之YOLOv1详解及复现

    检测器通常能够被分为两类,一类是two-stage检测器,最具代表的为faster R-CNN:另一类是one-stage检测器,包括YOLO,SSD等.一般来说,two-stage检测器具有高定位和 ...

  3. CV算法复现(分类算法2/6):AlexNet(2012年 Hinton组)

    致谢:霹雳吧啦Wz:https://space.bilibili.com/18161609 目录 致谢:霹雳吧啦Wz:https://space.bilibili.com/18161609 1 本次要 ...

  4. 【神经网络】(17) EfficientNet 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现 EfficientNet 卷积神经网络模型. EfficientNet 的网络结构和 MobileNetV3 比较相似,建议大家在学 ...

  5. 【神经网络】(16) MobileNetV3 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 MobileNetV3 轻量化网络模型. MobileNetV3 做了如下改动(1)更新了V2中的逆转残差结构:(2)使用NAS搜索 ...

  6. 【神经网络】(15) Xception 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 Xception 神经网络模型. 在前面章节中,我已经介绍了很多种轻量化卷积神经网络模型,感兴趣的可以看一下:https://blo ...

  7. 【神经网络】(14) MnasNet 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现谷歌轻量化神经网络 MnasNet  通常而言,移动端(手机)和终端(安防监控.无人驾驶)上的设备计算能力有限,无法搭载庞大的神经网络 ...

  8. 【神经网络】(13) ShuffleNetV2 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络 ShuffleNetV2. 为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...

  9. 【神经网络】(11) 轻量化网络MobileNetV1代码复现、解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络模型 MobileNetV1.为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...

最新文章

  1. mySQL教程 第10章 事务和锁
  2. function “printf“ declared implicitly
  3. xss 表单劫持(from通用明文记录)
  4. Java类加载器 以及类加载器的委托模型
  5. PE系统加载RAID驱动
  6. 教师资格证考试计算机知识题库,教师资格考试《高中信息技术》试题
  7. 智能语言处理之依存树计算句子结构相似度计算
  8. bzoj2286: [Sdoi2011]消耗战
  9. Vue组件间通信:父传子(props),子传父($emit)
  10. 计算机关闭多重网络协议,Win7多重网络问题
  11. python 解决问题的集合-No JSON object could be decoded
  12. PowerDesigner 15破解版下载
  13. 有哪些日记app可以用来记录生活?
  14. Less学习--注释、变量、转义、可变插值
  15. NOIP 2017 逛公园 记忆化搜索 最短路 好题
  16. 新型基础测绘体系建设试点技术大纲-思维导图
  17. unity 粒子系统
  18. 微信每日推送天气预报每日情话-利用堡塔实现每天自动推送!
  19. 第一部分 思科九年 一(11)
  20. 将移动市场细分将移动市场细分

热门文章

  1. Oracle Execution Plan -- Operation
  2. 用户对计算机调查,用户使用调查报告
  3. 三种人永远不适合做老板
  4. A*算法详解(个人认为最透彻的一个)
  5. 数据库第六次作业--查询数据--多条件
  6. 《疯狂Java讲义》学习笔记 第六章 面向对象(下续)
  7. This week at Dozer #6
  8. 极速office(Word)里面的文字怎么添加备注
  9. ALERT! /dev/disk/by-uuid/xxxxxxxxx does not exist. Dropping to a shell!
  10. 技巧|iPhone清理扬声器灰尘,iPhone隐藏相机和手电筒方法教程