BUUCTF MISC刷题笔记(三)
BUUOJ
- Misc
- [MRCTF2020]pyFlag
- Business Planning Group
- [ACTF新生赛2020]剑龙
- [GWCTF2019]huyao
- [UTCTF2020]File Carving
- [GUET-CTF2019]soul sipse
- [watevrCTF 2019]Evil Cuteness
- [UTCTF2020]sstv
- [UTCTF2020]spectogram
- 我爱Linux
Misc
[MRCTF2020]pyFlag
三个图片尾部都有额外数据
按顺序拼在一起,另存为zip文件,里面有俩txt,爆破得到密码1234
hint.txt:
我用各种baseXX编码把flag套娃加密了,你应该也有看出来。
但我只用了一些常用的base编码哦,毕竟我的智力水平你也知道…像什么base36base58听都没听过
提示:0x10,0x20,0x30,0x55
flag.txt:
G&eOhGcq(ZG(t2*H8M3dG&wXiGcq(ZG&wXyG(jtG&eOdGcq+aG(t5oG(jqG&eIeGcq+aG)6Q<G(jrG&eOdH9<5qG&eLvG(jsG&nRdH9<8rG%++qG%__eG&eIeGc+|cG(t5oG(jsG&eOlH9<8rH8C_qH9<8oG&eOhGc+_bG&eLvH9<8sG&eLgGcz?cG&3|sH8M3cG&eOtG%_?aG(t5oG(jtG&wXxGcq+aH8V6sH9<8rG&eOhH9<5qG(<E-H8M3eG&wXiGcq(ZG)6Q<G(jtG&eOtG%+<aG&wagG%__cG&eIeGcq+aG&M9uH8V6cG&eOlH9<8rG(<HrG(jqG&eLcH9<8sG&wUwGek2)
根据hint可以知道可能有base16、32、48、85
先用Python进行base85解码一次
再base16解码一次
GU2DKNRUIE2DINJWGQ2TKQJTG42TONJUGQZDGMJVHAZTANBWG44TKQJVGYZTQMZQGU4DGMZUGE3UCNRTGZBDKQJWIM2TSMZTGUZDMNRVIE2DONJWGZATIRBUG42TENSDGYZTMRJTGAZUI===
然后base32
54564A4456455A3757544231583046795A5638305833417A636B5A6C593352665A47566A4D47526C636E303D
再16
TVJDVEZ7WTB1X0FyZV80X3AzckZlY3RfZGVjMGRlcn0=
最后来一下base64
MRCTF{Y0u_Are_4_p3rFect_dec0der}
Business Planning Group
图片结尾有点东西,这个其实是bpg文件,misc入门的misc3考过
提取出来保存为bpg文件,不过windows下不能直接查看,参考上面那篇博客,下载工具查看
图片里有字符串
YnNpZGVzX2RlbGhpe0JQR19pNV9iM3R0M3JfN2g0bl9KUEd9Cg==
base64解码得到bsides_delhi{BPG_i5_b3tt3r_7h4n_JPG}
[ACTF新生赛2020]剑龙
先看hint.zip的内容,里面有两个文件
看一下txt
゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
到在线网址解密一手,得到welcom3!
得到的这个应该是密码,说明hh.jpg应该是某种隐写,测试发现是steghide
解出的内容如下:
想要flag吗?解出我的密文吧~
U2FsdGVkX1/7KeHVl5984OsGUVSanPfPednHpK9lKvp0kdrxO4Tj/Q==
U2F开头,应该是AES
或者DES
这种,不过一般需要密码,再去找一下密码的线索,在图片的exif信息中
这里解出来让找一下stegosaurus
,在github上找到https://github.com/AngelKitty/stegosaurus
这个工具我以前做题的时候用过,详细介绍可以看这篇博客
题目中给的O_O其实是一个pyc
文件,改回后缀后使用这个工具解一下就行
[GWCTF2019]huyao
给了两张一样的图片,应该是盲水印
盲水印的话我遇到过三种,具体在另一篇博客介绍过
这里试了一下发现是频域盲水印
,上脚本
# coding=utf-8
import cv2
import numpy as np
import random
import os
from argparse import ArgumentParser
ALPHA = 5
def build_parser():parser = ArgumentParser()parser.add_argument('--original', dest='ori', required=True)parser.add_argument('--image', dest='img', required=True)parser.add_argument('--result', dest='res', required=True)parser.add_argument('--alpha', dest='alpha', default=ALPHA)return parser
def main():parser = build_parser()options = parser.parse_args()ori = options.oriimg = options.imgres = options.resalpha = options.alphaif not os.path.isfile(ori):parser.error("original image %s does not exist." % ori)if not os.path.isfile(img):parser.error("image %s does not exist." % img)decode(ori, img, res, alpha)
def decode(ori_path, img_path, res_path, alpha):ori = cv2.imread(ori_path)img = cv2.imread(img_path)ori_f = np.fft.fft2(ori)img_f = np.fft.fft2(img)height, width = ori.shape[0], ori.shape[1]watermark = (ori_f - img_f) / alphawatermark = np.real(watermark)res = np.zeros(watermark.shape)random.seed(height + width)x = range(height / 2)y = range(width)random.shuffle(x)random.shuffle(y)for i in range(height / 2):for j in range(width):res[x[i]][y[j]] = watermark[i][j]cv2.imwrite(res_path, res, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
if __name__ == '__main__':main()
命令:python BlindWaterMarkplus.py --original 1.png --image 2.png --result res.png
拿到flag{BWM_1s_c00l}
[UTCTF2020]File Carving
尾部有额外数据,提取出来另存为zip文件
解压后拿到文件hidden_binary
,看了一下发现是ELF文件,果断放进kali里运行一下
这里遇到一个小问题,但是顺利解决了 ,同时学到一个命令
chmod u+x somefile 只授予这个文件的所属者执行的权限
[GUET-CTF2019]soul sipse
下载得到out.wav,拿Audacity分析下,没啥东西
那应该就是隐写了,一般情况下是mp3stego
,不过这题居然是steghide
,属实少见
这里没有密码,解出一个txt
https://share.weiyun.com/5wVTIN3
把文件下载下来,显示异常,原来是文件头有问题
修复好文件头,图片内容如下
unicode解码一下
两个数加起来就是flag:flag{5304}
[watevrCTF 2019]Evil Cuteness
尾部有额外数据,另存为zip
解压得到无后缀文件abc
就这…
[UTCTF2020]sstv
又是一个wav,百度一下题目名sstv,发现这玩意有点神奇啊
这里用到工具QSSTV
在linux下安装:apt install qsstv
安装完打开qsstv
,操作一波即可,关于qsstv的具体使用参考这篇文章
[UTCTF2020]spectogram
直接看频谱图…
我爱Linux
下载的图片打不开,发现是png的文件头,jpg的文件尾
定位到jpg尾部之后,发现后面的数据比较奇怪,看了大佬的wp得知这种数据格式是Python的序列化文件
把这些数据提取出来,保存在1.txt中
找到一篇Python反序列化的文章:https://jingyan.baidu.com/article/0bc808fcb7f91e5bd585b97d.html,跟着步骤写脚本
import pickle
f=open("1.txt","rb")
result=pickle.load(f)
f.close()
f1=open("out.txt","w")
f1.write(str(result))
f1.close()
得到一些坐标:
写一手脚本给它画出来:
f=open("out.txt","r")
txt=eval(f.read())
for i in range(len(txt)):s=""for j in range(1,77):n=0for k in txt[i]:if k[0] == j:n=1breakif n:s+=k[1]else:s+=" "print(s)
f.close()
flag{a273fdedf3d746e97db9086ebbb195d6}
BUUCTF MISC刷题笔记(三)相关推荐
- BUUCTF MISC刷题笔记(一)
BUUOJ Misc 喵喵喵 弱口令 [安洵杯 2019]easy misc [XMAN2018排位赛]通行证 蜘蛛侠呀 [RCTF2019]draw [MRCTF2020]Hello_ misc [ ...
- BUUCTF MISC刷题笔记(五)
BUUOJ Misc [MRCTF2020]摇滚DJ(建议大声播放 [SCTF2019]Ready_Player_One [XMAN2018排位赛]file [INSHack2019]gflag [X ...
- BUUCTF MISC刷题笔记(六)
BUUOJ Misc [DDCTF2018]第四扩展FS [INSHack2018]42.tar.xz 大流量分析(一) 大流量分析(二) 大流量分析(三) [NPUCTF2020]碰上彩虹,吃定彩虹 ...
- BUUCTF刷题笔记
BUUCTF刷题笔记 [极客大挑战 2019]BabySQL 从这句话我们可以看出,这个网站的后台是做了过滤处理的 这个时候我们先用万能密码实验一下看看,是什么类型的SQL注入 输入1',看看返回的结 ...
- LeetCode刷题笔记- 15.三数之和
LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...
- Github最强算法刷题笔记.pdf
资料一 昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙 ...
- 我收藏的谷歌和阿里大佬的刷题笔记
金三银四大家在准备校招.社招,或者闲暇的时候,都可以刷刷 Leetcode,保持良好的手感. 之前刷题,一直觉得漫无目的地刷,效率很低.后来发现了两个刷题笔记,谷歌大佬高畅和BAT大佬霜神写的 Lee ...
- 【c++算法刷题笔记】——洛谷2
1. 洛谷练习--P1579 哥德巴赫猜想(升级版) 题目描述: 现在请你编一个程序验证哥德巴赫猜想. 先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数. 输入格式: 仅有一行,包含一 ...
- Google 资深软件工程师 LeetCode 刷题笔记首次公开
BAT 等国内的一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察.但算法易学难精,我的很多粉丝技术能力不错,但面试时总败在算法这一关,拿不到好 Offer.但说实话,数据结构和算法花点时间 ...
最新文章
- SQL Server 备份还原造成孤立用户的问题
- 【人脸识别】人脸识别必读论文
- 怎样下载并使用soapUI进行webservice接口测试
- 第4章:介绍python对象类型/4.1 python的核心数据类型/4.7 集合
- 算法与数据结构(一)
- python执行sqlserver存储过程_python – 从SqlAlchemy调用MSSQL存储过程
- IBM服务器显示系统恢复,苏州数据恢复_IBM X3850服务器数据恢复中处理SAS硬盘故障的恢复案例...
- python做接口自动化测试仪器经销商_Python接口自动化测试的实现
- 【肥朝】看源码,我为什么推荐IDEA?
- 全网首发Oreo易支付开源+教程
- container view_高级UI晋升之常用View(三)中篇
- WEB站点服务器安全配置
- android调用webservice发送header身份验证不成功
- CentOS Linux服务器实现攻防演练
- 老韩思考:一个卖豆腐的能转行IT吗? 你的卖点在哪里?
- mysql 批量 插入或更新
- DDR扫盲——DDR中的名词解析
- matplotlib报错Line2D‘ object has no property ‘linestyle‘或‘linewidth‘
- Ubuntu及window的配置 java变量和快捷键
- 数字图像处理--傅里叶(逆)变换
热门文章
- IOS:UIImage的剪切,尺寸缩小、压缩、添加水印
- 图的遍历——深度优先搜索和广度(宽度)优先搜索(含例题)
- [HarmonyOS][鸿蒙专栏开篇]快速入门OpenHarmony的LiteOS微内核
- sql中1=1,1=0 ,1 大于 1,1 小于 1代表什么
- 数据库身份证号用什么类型_油罐内壁防腐施工用什么类型的升降机?
- Xshell 免密连接云主机(以Vultr云服务为例)
- 前端 115道 面试题总结【持续更新...】
- 阿里云服务器ECS搭建EMQ快速实现MQTT通信
- java 向下转型有什么用_java向下转型,有啥作用。求解
- 基于Unity尝试唇同步/LipSync/OVRLipSync(附Demo及源码)