BUUCTF-刷题记录-8
MISC
[MRCTF2020]摇滚DJ(建议大声播放
这个音频听起来就知道是什么了,无线电,用RX-SSTV
工具,不知道怎么用的可以去看我的上一篇博客,BUUCTF-刷题记录-7
[INSHack2018]Self Congratulation
左上角存在一些有像是二维码的黑白块
但是并不是二维码,把白色块转成0,黑色转成1,得到
00110001001
10010001100
11001101000
01101010011
01100011011
10011100000
将其转为字符串得到12345678
,也就是flag
key不在这里
扫码得到
https://cn.bing.com/search?q=key%E4%B8%8D%E5%9C%A8%E8%BF%99%E9%87%8C&m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568&qs=n&form=QBRE&sp=-1&sc=0-38&sk=&cvid=2CE15329C18147CBA4C1CA97C8E1BB8C
容易发现102
、108
、97
、103
就是16进制的flag,转成字符串即可,脚本如下
from urllib import parses = "10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568"
flag = ""
i = 0while(i <= len(s)):if int(s[i:i+3]) < 127:flag += chr(int(s[i:i+3]))i += 3else:flag += chr(int(s[i:i+2]))i += 2print(parse.unquote(flag))
# flag{5d45fa256372224f48746c6fb8e33b32}
[CFI-CTF 2018]webLogon capture
一个登陆的流量包,密码即为flag
很好的色彩呃?
可以发现其实6个灰色条的RGB的最后一位还是有点不一样的(QQ截图识色即可发现),将其转为字符即可得到flag
[SCTF2019]Ready_Player_One
开着飞机,一直往上冲就可以拿到flag了
[HDCTF2019]信号分析
观察它的波形,发现了这么一段很有规律的东西,每个周期的东西都是一样的
搜索到这么一篇帖子,里面说到一个编码规则
一长一短:F
两短:0
两场:1
然后进行翻译一下图中的波形图,得到
FFFFFFFF0001
这个也就是flag了,提交即可
[INSHack2019]gflag
搜索得到文件中的内容是G语言,放到在线网站跑一下即可得到flag:flag{3d_pr1nt3d_fl49}
。
[MRCTF2020]寻找xxx
打开音频,一股浓厚的电话音迎面而来,不过似乎有点杂音?用dtmf2num
工具识别一下
得到
18688422216D09
但是有杂音识别的不太准,对比频谱图
修复为
18684221609
把18684221609
发送到天璇Merak
公众号得到flag
[QCTF2018]X-man-Keyword
图片的内容给了个密码lovekfc
,于是想着往有密码的图片隐写方向走,用Stegsolve
工具进行通道分析的时候发现了点东西
想到使用lsb的一个有密码的隐写,即为cloacked-pixel-lsb
工具,跑一下得到一个文件
内容为
PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}
不过这个规律也是很奇怪
然后看到这个比赛叫做QCTF
,不过也是很奇怪
做不出来了,后来搜索出来是叫做Nihilist
密码,用脚本跑一下即可
import stringenc = 'PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}'
grid = 'LOVEKFC'+'ABDGHIJMNPQRSTUWXY'
flag = ''for i in enc:if i in string.ascii_lowercase:index = grid.lower().index(i)flag += string.ascii_lowercase[index]continueif i in string.ascii_uppercase:index = grid.upper().index(i)flag += string.ascii_uppercase[index]continueflag += i
print(flag)
# QCTF{cCgeLdnrIBCX9G1g13KFfeLNsnMRdOwf}
Beautiful_Side
foremost分离出来半张二维码
来这个网站上面手撸一份然后扫码即可,最后得到flag{OQWIC_4DS1A_S034S}
[XMAN2018排位赛]AutoKey
usb的流量包,使用如下命令提取出来数据
tshark -r usb.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
然后给其加上冒号,脚本如下
f=open('usbdata.txt','r')
fi=open('out.txt','w')
while 1:a=f.readline().strip()if a:if len(a)==16:out=''for i in range(0,len(a),2):if i+2 != len(a):out+=a[i]+a[i+1]+":"else:out+=a[i]+a[i+1]fi.write(out)fi.write('\n')else:breakfi.close()
然后解一下,脚本如下
mappings = { 0x04:"A", 0x05:"B", 0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G", 0x0B:"H", 0x0C:"I", 0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O", 0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5", 0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]", 0X2B:" ", 0x2C:" ", 0x2D:"-", 0x2E:"=", 0x2F:"[", 0x30:"]", 0x31:"\\", 0x32:"~", 0x33:";", 0x34:"'", 0x36:",", 0x37:"." }nums = []
keys = open('out.txt')
for line in keys:if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':continuenums.append(int(line[6:8],16))keys.close()output = ""
for n in nums:if n == 0 :continueif n in mappings:output += mappings[n]else:output += '[unknown]'print('output :\n' + output)
得到
[unknown]A[unknown]UTOKEY''.DECIPHER'[unknown]MPLRVFFCZEYOUJFJKYBXGZVDGQAURKXZOLKOLVTUFBLRNJESQITWAHXNSIJXPNMPLSHCJBTYHZEALOGVIAAISSPLFHLFSWFEHJNCRWHTINSMAMBVEXO[DEL]PZE[DEL]IZ'
也就是
MPLRVFFCZEYOUJFJKYBXGZVDGQAURKXZOLKOLVTUFBLRNJESQITWAHXNSIJXPNMPLSHCJBTYHZEALOGVIAAISSPLFHLFSWFEHJNCRWHTINSMAMBVEXPZIZ
也就是这个密码,链接,用上面的脚本跑一下,也就是这样子
# from ngram_score import ngram_score
from math import log10
from pycipher import Autokey
import re
from itertools import permutationsclass ngram_score(object):def __init__(self,ngramfile,sep=' '):''' load a file containing ngrams and counts, calculate log probabilities '''self.ngrams = {}for line in file(ngramfile):key,count = line.split(sep) self.ngrams[key] = int(count)self.L = len(key)self.N = sum(self.ngrams.itervalues())#calculate log probabilitiesfor key in self.ngrams.keys():self.ngrams[key] = log10(float(self.ngrams[key])/self.N)self.floor = log10(0.01/self.N)def score(self,text):''' compute the score of text '''score = 0ngrams = self.ngrams.__getitem__for i in xrange(len(text)-self.L+1):if text[i:i+self.L] in self.ngrams: score += ngrams(text[i:i+self.L])else: score += self.floor return scoreqgram = ngram_score('quadgrams.txt')
trigram = ngram_score('trigrams.txt')
ctext = 'MPLRVFFCZEYOUJFJKYBXGZVDGQAURKXZOLKOLVTUFBLRNJESQITWAHXNSIJXPNMPLSHCJBTYHZEALOGVIAAISSPLFHLFSWFEHJNCRWHTINSMAMBVEXPZIZ'
ctext = re.sub(r'[^A-Z]','',ctext.upper())# keep a list of the N best things we have seen, discard anything else
class nbest(object):def __init__(self,N=1000):self.store = []self.N = Ndef add(self,item):self.store.append(item)self.store.sort(reverse=True)self.store = self.store[:self.N]def __getitem__(self,k):return self.store[k]def __len__(self):return len(self.store)#init
N=100
for KLEN in range(3,20):rec = nbest(N)for i in permutations('ABCDEFGHIJKLMNOPQRSTUVWXYZ',3):key = ''.join(i) + 'A'*(KLEN-len(i))pt = Autokey(key).decipher(ctext)score = 0for j in range(0,len(ctext),KLEN):score += trigram.score(pt[j:j+3])rec.add((score,''.join(i),pt[:30]))next_rec = nbest(N)for i in range(0,KLEN-3):for k in xrange(N):for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':key = rec[k][1] + cfullkey = key + 'A'*(KLEN-len(key))pt = Autokey(fullkey).decipher(ctext)score = 0for j in range(0,len(ctext),KLEN):score += qgram.score(pt[j:j+len(key)])next_rec.add((score,key,pt[:30]))rec = next_recnext_rec = nbest(N)bestkey = rec[0][1]pt = Autokey(bestkey).decipher(ctext)bestscore = qgram.score(pt)for i in range(N):pt = Autokey(rec[i][1]).decipher(ctext)score = qgram.score(pt)if score > bestscore:bestkey = rec[i][1]bestscore = score print bestscore,'autokey, klen',KLEN,':"'+bestkey+'",',Autokey(bestkey).decipher(ctext)
发现flag
HELLOBOYSANDGIRLSYOUARESOSMARTTHATYOUCANFINDTHEFLAGTHATIHIDEINTHEKEYBOARDPACKAGEFLAGISJHAWLZKEWXHNCDHSLWBAQJTUQZDXZQPF
flag即为最后一段字符串
JHAWLZKEWXHNCDHSLWBAQJTUQZDXZQPF
[网鼎杯 2020 青龙组]虚幻2
一张png,很多个像素点,发现每一个像素点的RGB值不是255就是0,而且宽度是32,高度是12,高乘上个3也就是36了,然后255换成1,0换成0,再转个黑白块看看,可能是个二维码,脚本如下
from PIL import Imagex1 = 36
y1 = 12
x2 = 36
y2 = 36
s = ""im1 = Image.open('file.png')
im2 = Image.new("RGB", (x2,y2))for i in range(0,x1):for j in range(0,y1):rgb = im1.getpixel((i,j))if rgb[0] == 255:s += '1'else:s += '0'if rgb[1] == 255:s += '1'else:s += '0'if rgb[2] == 255:s += '1'else:s += '0'for i in range(0,x2):for j in range(0,y2):if s[i*36+j] == '0':im2.putpixel((i,j),(0,0,0))else:im2.putpixel((i,j),(255,255,255))im2.save('1.png')
然后通过简单的旋转以及翻转,得到一个汉信码,这里的旋转和翻转也可以通过py来完成,代码如下
im2 = im2.transpose(Image.FLIP_LEFT_RIGHT)
im2 = im2.transpose(Image.ROTATE_90)
然后通过扫一扫软件进行扫码,得到flag{eed70c7d-e530-49ba-ad45-80fdb7872e0a} ,
这个软件可能有点难找,给大家分享一下,链接,密码为a66b
。
[INSHack2017]hiding-in-plain-sight
foremost分离出来一张jpg,也就是flag
[MRCTF2020]小O的考研复试
跑一下即可
[NPUCTF2020]碰上彩虹,吃定彩虹!
解压文件出来的时候有警告信息,熟悉的NTFS隐写流,扫一下,得到
词频分析得到
ZW5jcnlwdG8=
base64解码得到
encrypto
第一个文件下面存在一些空格和制表符
转为莫斯即为
.- ..- - --- -.- . -.--
也就是
autokey
用autokey密码对上面这段内容进行一个爆破
得到一个密码,暂时不知道有什么用
vim查看maybehint.txt
可以很容易判断出来这是0宽度字符隐写,跑一下,得到
注意勾上这个,然后发现这么一段话
不过这个NTFS咱们早就发现了:(,浪费了一个线索,然后去百度搜索encrypto
,得知这是一个加密软件,同时将secret文件后缀修改为.crypto
,用上面得到的密码IANTHEPASSWD
进行解密,但是不对,在linux下使用strings命令查看文件发现这个
去010中将其删去,再次进行解密,得到一张彩虹的图片
发现其黄色的RGB最后一位有所不同,将其转为字符串得到p?ssWd
,同时foremost分离出来一个带有密码的压缩包,而密码尝试这个不对,所以中间的?
应该是要咱们爆破的,爆破一下即可,得到密码p@sswd
,这里使用工具爆破无果,我是手动爆破的。
下面有一些隐藏字符,不过没什么用
将上面一大段的字母钟的大写字母提取出来,也就是ALPHUCK
,百度得到一个在线解密网址,删去几个大写字母进行解密得到flag
BUUCTF-刷题记录-8相关推荐
- BUUCTF刷题记录(7)
文章目录 web [NPUCTF2020]ezinclude [NPUCTF2020]ReadlezPHP [GXYCTF2019]BabysqliV3.0 非预期1 非预期2 预期 [NCTF201 ...
- BUUCTF刷题记录(2)
文章目录 web [De1CTF 2019]SSRF Me(未完成) [极客大挑战 2019]PHP [极客大挑战 2019]Knife [极客大挑战 2019]LoveSQL [RoarCTF 20 ...
- buuctf刷题记录(6)
[MRCTF2020]Xor 查壳: 拖入IDA中: 跟进,但是我们无法对关键函数sub_401090查看伪代码: 然后我们就直接看: 再函数中可以看到v0和byte_4212c0按位异或,最后得到b ...
- 【BUUCTF刷题记录】[极客大挑战 2019] Http
1. 打开靶场,看起来给的不是一个完整的地址,复制一下访问 http://node4.buuoj.cn:26551/ 显示一个页面,找了一下没有用于输入的框. 右击查看源代码,发现一个名为Secret ...
- BUUCTF刷题记录 Pokémon
[GKCTF2020]Pokémon 下载安装包 进入游戏 来到天元镇 接着做任务 经过101道路 道吉镇 到103道路 发现flag
- buuctf刷题记录21 [网鼎杯 2020 青龙组]jocker
今天挑战一下,结果最后还是看了别人的wp才写出来的 无壳,ida查看发现不能f5,原因堆栈不平衡 进行栈指针修改 修改出错的地方的栈指针偏移,快捷键alt+k,值改为0 然后就能f5了, 逻辑也不难, ...
- [buuctf]刷题记录web
文章目录 反序列化 pingpingping [极客大挑战]http [极客大挑战 2019]PHP [极客大挑战 2019]Knife [极客大挑战 2019]Secret File [ACTF20 ...
- BUUCTF刷题记录 Ping Ping Ping
[GXYCTF2019]Ping Ping Ping 进入页面 然后/?ip=127.0.0.1|ls 进入 读取flag.php 再cat$IFS$1indnx.php 再变量拼接 ?ip=127. ...
- buuctf rsa刷题记录(记几种类型的RSA攻击二)
前言 最近学习了点儿rsa这里总结以下我的buctf rsa部分刷题记录 dp,dp泄露 场景描述: 假设题目仅给出p,q,dp,dq,c,即不给公钥e 这种参数是为了让解密的时候更快速产生的 dp= ...
- BUUCTF-2020寒假刷题记录
BUUCTF-2020寒假刷题记录 Web [RoarCTF 2019]Easy Calc 打开源码,看到calc.php,打开看到源码. 在 num 前面加个空格即可绕过 ? num=phpinfo ...
最新文章
- Android-Binder(一)
- Docker镜像与容器命令
- 【论文解读】IPM2020 | 长短期兴趣建模的图神经网络新闻推荐系统
- .Net Core3.0依赖注入DI
- Cassandra集群配置
- LeetCode-3. 无重复字符的最长子串
- 油猴脚本管理器的超详细下载安装使用教程—— 个性化浏览器
- CANOPEN 学习(一) CANFestival 字典工具 环境搭建
- 我在华为的十年----徐家俊
- DTOJ#5208. 蓝buff一吃就起飞
- Opencv访问图像像素的三种方法
- 2019.11.20 LS-Dyna与MSC.Dytran特点
- 【动手学深度学习】李沐——循环神经网络
- java实现计算器_Java 实现简单计算器
- 查看电脑已连接过的账号密码
- Android四大组件生命周期
- 英特尔® Distribution of OpenVINO™ toolkit 2021 版的发布说明
- 了解 什么是 22 端口
- linux如何解压.z文件,linux文件解压缩命令(史上最全教程)
- 时间管理的基础是精力管理
热门文章
- Android Studio导入工程项目一直处于gradle....而且一直卡在这个页面
- ZK指纹机二次开发中控F18
- java eav_entity-framework-4 – 实体框架4和ddd中的EAV
- 11台计算机的英语,世界第一台计算机英文缩写名为
- 计算机组成原理中的直接映像,计算机组成原理--cache存储器的直接映像与变换...
- bug:ValueError: multi_class must be in (‘ovo‘, ‘ovr‘)
- 为您的DC/DC 转换器选择最佳开关频率
- html5立体照片墙效果,HTML5特效可以 14种jQuery超酷3D网格照片墙动画特效源码
- 带货直播源码,浅谈直播实现过程和技术
- 计算机主机不通电,电脑主机不通电无法开机怎么解决