buuctf  misc:

你猜我是个啥

下载之后,是一个zip文件,解压,提示不是解压文件

放进HxD中进行分析,发现这是一个png文件,改后缀

打开后,发现是一张二维码,我们尝试用CQR进行扫描,发现flag不在这里

丢进HxD中进行分析,发现flag在最后

flag就是flag{i_am_fl@g},本题完成

2、神奇的二维码

下载解压后是一个二维码文件,我们尝试用CQR进行扫描

发现flag并不在这里

我们丢进HxD中进行分析,发现无任何有用的信息

我们放在kali中用binwalk进行分析,发现4个rar的文件

因为是rar文件,所以我们使用binwalk -e命令进行解压文件,最后可以得到4个rar文件

我们逐个打开这些文件,发现18394.rar和716A.rar文件中的看看flag在不在里面^ ^.rar文件含有密码

我们先打开7104.rar文件,发现里面有一个txt文件,里面的内容是base64内容

可以知道这个是716A.rar文件中的看看flag在不在里面^ ^.rar中的密码,通过分析,发现无用

打开17012.rar文件,可以发现里面有一个flag.doc

通过经验,可以知道这个文件是base64的多次编码形式

所以我们使用脚本进行分析,也可以使用cap软件逐次分析

附上base64多次编码的脚本

import base64

def decode(f):
n = 0;
while True:
try:
f = base64.b64decode(f)
n += 1
except:
print('[+]Base64共decode了{0}次,最终解码结果如下:'.format(n))
print(str(f,'utf-8'))
break if __name__ == '__main__':
f = open('./base64.txt','r').read()
decode(f)

发现这个是18394.rar的密码,打开后可以发现是一个good.mp3的文件,我们使用Audacity进行分析

记录下来,可以知道是-- --- .-. ... . .. ... ...- . .-. -.-- ...- . .-. -.-- . .- ... -.--

使用在线网站进行解密(摩斯电码)

可以知道本题的答案是MORSEISWERYVERYEASY,但根据经验我们可以知道它这个是需要小写的,所以我们直接提交小写的答案

flag就是flag{morseisveryveryeasy},本题完成

3、一叶樟目

方法1:

这个题我们使用查看属性,HxD,binwalk,formoest,lsb均无异常

我们考虑是不是图片的宽高出现了问题

发现其实是有这个可能的我们尝试修改,发现好像不大对

查看wp,发现02,03应该是01 E7 06,07应该是07,77,最后可以发现:

这样的一个图片,可以知道flag就是xaflag{66666}

方法2:当我们使用010打开的时候,可以发现crc错误,我们用脚本进行修复,也可完成此题

脚本:

#coding=utf-8
import zlib
import struct
#读文件
file = '1.png' #注意,1.png图片要和脚本在同一个文件夹下哦~
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
#crc32key = 0xCBD6DF8A #补上0x,copy hex value
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex
n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了
for w in range(n):#高和宽一起爆破
width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
#print(data)
crc32result = zlib.crc32(data)
if crc32result == crc32key:
print(width,height)
#写文件
newpic = bytearray(fr)
for x in range(4):
newpic[x+16] = width[x]
newpic[x+20] = height[x]
fw = open(file+'.png','wb')#保存副本
fw.write(newpic)
fw.close

本题完成

4、鸡你太美

下载解压后可以发现是一个gif的文件,我们丢进HxD中进行分析

可以发现篮球副本这个gif文件文件头错误,所以我们加上一个gif的文件头,47 49 46

就可以发现:

flag也就是flag{zhi- yin- ryou-are -beautiful}

5、just_a _rar

下载解压后发现是一个名为4位数的rar文件,且被加密,我们用软件进行解密:

密码就是2016,解压后可以发现一张图片

我们查看属性:发现flag就在其中

flag就是flag{Wadf_123}

crypto:

1、Windows系统密码

通过这些已知信息,我们可以知道它是属于md5加密的,md5加密(小写字母,数字),32位字符

我们使用在线网站进行md5的解密,最后发现a7fcb22a88038f35a8f39d503e7f0062它所借出来的数据是对的

md5:https://www.cmd5.com/

所以flag就是flag{good-luck}

2、cat_flag

下载之后,发现是一个图片

我们观察可以发现他只有2种图形

鸡腿当1,饭团当0

我们可以知道它的数据是

0100010 二进制转10进制  66

01001010  二进制转10进制  74

01000100 二进制转10进制  68

01111011 二进制转10进制  123

01001101 二进制转10进制  77

00100001 二进制转10进制  33

01100001 二进制转10进制  97

00110000  二进制转10进制   48

01111110  二进制转10进制   126

01111101  二进制转10进制  125

转ascii码后可以发现flag就是BJD{M!a0~},也就是flag{M!a0~}

3、燕言燕语

题目:79616E7A69205A4A517B78696C7A765F6971737375686F635F73757A6A677D20

这显然是一串16进制的数字,我们考虑转换一下,看能不能发现什么东西

转换后可以发现,查找资料,它属于维吉尼亚加密,所以我们直接进行加密,密码就是yanzi,因为那个16进制数给了我们2个答案,一个是维吉尼亚加密,另一个就是秘钥yanzi

答案就是flag{bjdyanzijiushigeshabi},也就是BJD{yanzi_jiushige_shabi}

ctf每周一练的更多相关文章

  1. 一步一步 Pwn RouterOS之ctf题练手

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文目的是以一道比较简单的 ctf 的练手,为后面的分析 Rout ...

  2. 每周一练 之 数据结构与算法(Stack)

    最近公司内部在开始做前端技术的技术分享,每周一个主题的 每周一练,以基础知识为主,感觉挺棒的,跟着团队的大佬们学习和复习一些知识,新人也可以多学习一些知识,也把团队内部学习氛围营造起来. 我接下来会开 ...

  3. 每周一练 之 数据结构与算法(LinkedList)

    这是第三周的练习题,原本应该先发第二周的,因为周末的时候,我的母亲大人来看望她的宝贝儿子,哈哈,我得带她看看厦门这座美丽的城市呀. 这两天我抓紧整理下第二周的题目和答案,下面我把之前的也列出来: 1. ...

  4. 每周一练 之 数据结构与算法(Set)

    这是第四周的练习题,五一放假结束,该收拾好状态啦. 下面是之前分享的链接: 1.每周一练 之 数据结构与算法(Stack) 2.每周一练 之 数据结构与算法(LinkedList) 2.每周一练 之 ...

  5. 每周一练 之 数据结构与算法(Queue)

    这是第二周的练习题,这里补充下咯,五一节马上就要到了,自己的计划先安排上了,开发一个有趣的玩意儿. 下面是之前分享的链接: 1.每周一练 之 数据结构与算法(Stack) 2.每周一练 之 数据结构与 ...

  6. 每周一练 之 数据结构与算法(Tree)

    这是第六周的练习题,最近加班比较多,上周主要完成一篇 GraphQL入门教程 ,有兴趣的小伙伴可以看下哈. 下面是之前分享的链接: 1.每周一练 之 数据结构与算法(Stack) 2.每周一练 之 数 ...

  7. 每周一练 之 数据结构与算法(Dictionary 和 HashTable)

    这是第五周的练习题,上周忘记发啦,这周是复习 Dictionary 和 HashTable. 下面是之前分享的链接: 1.每周一练 之 数据结构与算法(Stack) 2.每周一练 之 数据结构与算法( ...

  8. 蓝桥杯 每周一练 第一周(3n+1问题)

    [问题描述] 考虑如下的序列生成算法:从整数 n 开始,如果 n 是偶数,把它除以 2:如果 n 是奇数,把它乘 3 加1. 用新得到的值重复上述步骤,直到 n = 1 时停止.例如,n = 22 时 ...

  9. java基础学习周计划之3--每周一练

    每周一练第一周 一. 关键代码:1.斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...数列第一项和第二项是1, 从第三项开始, ...

随机推荐

  1. NuGet微软官方中国镜像地址

    https://nuget.cdn.azure.cn/v3/index.json

  2. 第14章:部署Java网站项目案例

    1 说明 (1) 项目迁移到k8s平台的流程 1) 制作镜像 dockerfile.docker+jenkins持续集成.镜像分类:基础镜像.中间镜像.项目镜像 2) 控制器管理pod 控制器管理po ...

  3. 22、lnmp_nginx反向代理(负载均衡)、高可用

    负载均衡,根据ip和端口号找到相应的web服务器站点(即端口区分): 22.1.nginx的负载均衡: 1.介绍: 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器.分 ...

  4. Gym 101334A Area 51 数学

    大致题意: 给出n个建筑的二维坐标,每个建筑名称为一个字母,不同坐标的建筑可以有同一名称,并保证这些坐标都是在y轴上半轴.给出一串建筑名称的字符串,在X轴上找出一个或多个区间,使Nick在这个区间上从 ...

  5. Linux:linux网路路由命令

    查看路由 #查看所有路由信息 route -n 删除路由 #删除路由 route del default 修改路由 #修改路由 #先删除路由 route del default #在新建 route ...

  6. 关于scrollview的无限滚动效果实现

    起因及需求:做过阅读器的朋友应该知道,一般的阅读器都会有仿真.平移等特效.最近赶上真空期,项目不忙,有点时间,于是想抓起来,总结点干货. 仿真翻页及平滑翻页的基本实现: 仿真翻页,使用系统自带的UIP ...

  7. Spring学习总结(一)---谈谈对Spring IOC的理解(一:理论知识理解)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  8. asp.net mvc中的路由

    [Route] 路由 [Route("~/")] 忽略路由前缀 [Route("person/{id:int}")] 路由内联约束 [Route("h ...

  9. 「CF1438D」 Powerful Ksenia

    「CF1438D」 Powerful Ksenia 题目大意 给定 \(n\) 个正整数,你可以任选三个数 \(a_i,a_j,a_k\),使这三个数都变为 \(a_i\oplus a_j\oplus ...

  10. Python使用笔记005-文件操作(二)

    1.1 打开文件模式 # r r+ r+读是没问题的,写的话,会覆盖原来的内容,文件不存在时会报错# w w+ w+用来新的文件没问题,旧的文件会覆盖原来的内容# a a+ a+写是追加,读不到是因为 ...