当前位置:网站首页>xctf攻防世界 MISC薪手进阶区
xctf攻防世界 MISC薪手进阶区
2022-06-27 16:28:00 【l8947943】
0x01. this_is_flag
进入环境查看内容,如图:
提示flag在描述中,最终答案为:flag{th1s_!s_a_d4m0_4la9}
0x02. pdf
进入环境,下载附件,给的是一个pdf文件,我们直接打开如图:
按照经验,图片要么有内容,要么图片覆盖着什么东西,我们使用Acrobat DC打开,编辑pdf文档,并移除图片,如图:
最终的flag为:flag{security_through_obscurity}
0x03. 如来十三掌
进入环境,下载附件,打开后发现是一段乱七八糟看不懂的佛语:
其实就是一堆加密的话,使用在线佛曰加密地址:https://www.keyfc.net/bbs/tools/tudoucode.aspx,如图:
得到了解密信息,还是很乱,想到如来十三掌,想到ROT13,使用在线ROT13小工具进行解密:https://www.qqxiuzi.cn/bianma/kaisamima.php,如图:
还是乱,尝试base64解码:如图:
最终答案为:flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
0x04. give_you_flag
进入环境,下载附件,发现是一个gif图片,猜测需要提取帧,果断将图片放入Photoshop,如图:
发现第50帧有一张二维码,但是缺少定位符:
我们把他p上去,如图:
使用手机扫码二维码后,得到最终的结果为:flag{e7d478cf6b915f50ab1277f78502a2c5}
0x05. stegano
进入环境,下载附件,如图:
猜想可能pdf存在什么东西,使用AcrobatDC进行编辑,删除页面的内容,发现真的有一串字符,如图:
发现其中均为AB两种字符,猜测为摩斯电码,使用.代替A,使用-代替B,上代码:
s = 'BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB'
res = s.replace('A', '.').replace('B', '-')
print(res)
得到莫斯编码如下:
-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--
使用在线莫斯电码翻译器http://www.all-tool.cn/Tools/morse/?&rand=b6f9a70b7d48e5f823c9b52c7cbb6af5,如图:
将其解码,按照题目要求转换大小写,最终的flag为:flag{1NV151BL3M3554G3}
0x06. 坚持60s
进入环境,下载附件,如图,给的一个jar文件,需要电脑提前配置java环境,打开jar文件后,上下左右移动图标:
按照做题经验,其实就是需要在jar包中找到flag文件,我们使用vscode,并安装java的反编译软件decompiler,右键项目中的jar,选择decompile,如图:
搜索flag,发现内容如图:
有等号,估计是base64编码了,我们尝试解码,如图:
解码内容为:DajiDali_JinwanChiji
最终答案为:flag{DajiDali_JinwanChiji}
0x07. gif
进入环境,下载附件,发现题目给出的是一个zip压缩包。打开压缩包观察后,发现只有黑色和白色方块,猜想可能是01编码,因此解题思路是将白色块认为0,黑色块认为1,进行编码。直接上代码:
import os
import PIL.Image as Image
# 对每一张图片进行判断,若为白色则记录为0,若为黑色记录为1
data = ''
filenames = os.listdir(r'C:\Users\Mr.fa\Desktop\gif')
filenames.sort(key=lambda x: int(x.split('.')[0])) # 防止文件名乱序
for filename in filenames:
path = os.path.join("C:\\Users\\Mr.fa\\Desktop\\gif\\", filename)
hands_mask = Image.open(path)
r, g, b = hands_mask.getextrema()
# 判断图片的色块
if r[1] == 255 and g[1] == 255 and b[1] == 255:
data += '0'
else:
data += '1'
print(data)
# 将0101代码按照八位一组,对应ASCII码表转成对应的字符
for i in range(0, len(data), 8):
byte = data[i: i + 8]
print(chr(int(byte, 2)), end='')
最终答案为:flag{FuN_giF}
0x08. 掀桌子
进入环境,题目没有给附件,给了一串字符串,想必字符串中蕴含着秘密。而且字符串中的信息范围在0-F之间,也就是16进制的信息,猜测转数据对应ASCII码,但是ASCII码范围在0-128之间,因此尝试减去128,再转成字符得到最终的结果。直接上代码:
strings = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
flag = ''
# 尝试将字符两个一组,再缩小范围
for i in range(0, len(strings), 2):
hexdata = '0x' + strings[i] + strings[i + 1]
flag += chr(int(hexdata, 16) - 128)
print(flag)
因此最终答案为:hjzcydjzbjdcjkzkcugisdchjyjsbdfr
0x09. ext3
进入环境,下载附件,题目给出的是一个无后缀文件,题目提示linux的光盘文件,我们在kali系统下进行挂载:
mount f1fc23f5c743425d9e0073887c846d23 /mnt/
如果提示权限不够,请使用sudo。进入到/mnt/文件夹下,打开终端,使用命令查找关键词flag:
find | grep 'flag'
如果提示权限不够,请使用sudo。命令后如图:
找到文件后,打开flag,如图:
对其进行base64解码,如图:
最终答案为:flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}
0x10. SimpleRAR
进入环境,下载附件,发现题目只给了一个RAR压缩包文件,打开后报错,且只显示了一个txt文件,双击打开后显示没有flag,如图:
提示的错误信息中有某个png图片格式损坏,猜测可能是压缩包文件头校验问题,遂用winhex打开文件,如图:
将如图中的A8 3C 7A 改为A8 3C 74
修改完后,双击压缩文件,打开后一切正常,如图:
尝试进行解压,使用ps打开文件,提示not a png file,猜测可能是文件尾缀是png,但是头有问题,使用winhex查看如图:
发现头是个GIF文件,将文件后缀修改成gif,猜测需要帧分离,因此使用Photoshop进行打开,发现有两个图层:
分别对两个图层进行提取,并使用stegsolve进行分析,发现两个图层都是半张二维码,使用Photoshop进行合成,如图:
使用手机扫一下,得到最终的答案:flag{yanji4n_bu_we1shi}
0x11. base64stego
进入环境,下载附件,题目给出的是一个压缩包,解压发现需要密码,如图:
猜测可能是伪加密,使用winhex打开文件,如图:
我们直接拖到最后,修改伪加密部分,如图:
将09 00 修改为00 00,并保存修改,重新进行解压,发现一切ok啦!!!或者使用小工具ZipCenOp.jar,使用如下命令修复zip文件。(需要安装java环境)
java -jar ZipCenOp.jar r xxx.zip
修复完成后,接着打开txt文档,如图:
其实就是base64的解码工作而已。接着需要了解一下什么是base64编码,附带自己一篇博客Base64编码和解码(手写和调包)
在知道了base64的原理后,解题思路如下:
- 依次读取每行,从中提取出隐写位。
- 如果最后没有‘=’,说明没有隐写位,跳过。
- 如果最后是一个‘=’,说明有两位隐写位,将倒数第二个字符转化为对应的二进制索引,然后取后两位。
- 如果最后是两个‘=’,说明有四位隐写位,将倒数第三个字符转化为对应的二进制索引,然后取后四位。
- 将每行提取出的隐写位依次连接起来,每8位为一组转换为ASCII字符,最后不足8位的丢弃。
直接上代码:
# base64通过字符定位其编码索引
def base64decode(s):
table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for i in range(len(table)):
if table[i] == s:
return i
with open(r'C:\Users\Mr.fa\Desktop\stego.txt', 'r') as file:
lines = file.readlines()
flag_bin = ''
for line in lines:
line = line.replace('\n', '')
if line[-1] == '=':
# 如果是两个等号,说明是倒数第三位是隐写,取倒数第三位编码二进制的后四位
if line[-2] == '=':
flag_bin += bin(base64decode(line[-3]))[2:].zfill(4)[-4:]
# 如果是一个等号,说明是倒数第二位是隐写,取倒数第二位编码二进制的后二位
else:
flag_bin += bin(base64decode(line[-2]))[2:].zfill(2)[-2:]
flag = ''
# 对隐写的编码进行转码,8位转一个ASCII字符,得到最终答案
for i in range(0, len(flag_bin), 8):
flag += chr(int(flag_bin[i: i + 8], 2))
print(flag)
最终答案为:flag{Base_sixty_four_point_five}
0x12. 功夫再高也怕菜刀
进入环境,下载附件,题目给出了一个pcapng文件,直接扔进kali中进行打开,我们搜索字符flag,如图:
1150编号的流量包包含txt文件和jpg文件,说明有隐藏文件,我们使用binwalk查看一下,如图:
有一个zip压缩包,包含flag.txt文件,我们尝试用foremost分离一下,如图:
嗯,果然是有东西的,但是zip解压是需要解压码的,猜测刚才的jpg有内容。。。追踪1150编号的包,右键追踪流->tcp流,如图:
我们需要知道一个知识点,jpg格式是以:FFD8FF开头,以FFD9结尾的。所以复制所有内容,用winhex新建一个文件,改名后缀jpg便可得到解压缩密钥的jpg图,如图:
使用该密码Th1s_1s_p4sswd_!!!解压压缩包,得到最终的flag如图:
最终答案为:flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
边栏推荐
- Redis系列2:数据持久化提高可用性
- 手把手教你在Windows 10安装Oracle 19c(详细图文附踩坑指南)
- Project team management - Tuckman ladder theory
- JS event binding and common events
- 【协会通知】关于举办人工智能与物联网领域暑假专题师资培训的通知
- IDEA 官网插件地址
- Current market situation and development prospect forecast of global concrete shrinkage reducing agent industry in 2022
- Simple anti shake for wechat applet
- 【网络研讨会】MongoDB 携手 Google Cloud 加速企业数字化创新
- Add in address of idea official website
猜你喜欢

Wanzhou gold industry: what are the common gold investment and warehouse building modes?

Asemi rectifier bridge kbp307 parameters, kbp307 details, kbp307 pictures

Wechat applet payment countdown

【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩

Space calculation of information and innovation industry in 2022

新产品新人事新服务,英菲尼迪继续深耕中国未来可期!

中国工业软件市场研究报告出炉,力控SCADA、MES丰富国产工业软件生态

Push NFT out of the regulatory dilemma, and BSN launched NFT supporting infrastructure network

Asemi rectifier bridge kbp310 function pin diagram

Allocate aligned heap space
随机推荐
Wanzhou gold industry: what are the common gold investment and warehouse building modes?
[webinar] mongodb and Google cloud accelerate enterprise digital innovation
Teach you to use elastic search: run the first hello world search command
如何制作登录界面
Why migrate from opentsdb to tdengine
Market status and development prospect forecast of global off-road recovery rope industry in 2022
推荐几个开源的物联网平台
Contest3182 - the 39th individual training match for 2021 freshmen_ E: ringring
Summary of domestic database certification test guide (updated on June 16, 2022)
Hikvision Tools Manager海康威视工具大全(含SADP、录像容量计算等工具)百万安防从业者的实用工具
利用OpenCV执行相机校准
广汽三菱全新欧蓝德首次国内亮相于年内上市 产品力全面焕新
国产数据库认证考试指南汇总(2022年6月16日更新)
The data synchronization tool dataX has officially supported reading and writing tdengine
Galaxy Kirin V10 system activation
Explain the distributed computing of Apache skywalking OAP in detail
TDengine在数控机床监控中的应用
电脑安全证书错误怎么处理比较好
Wanzhou gold industry: a common technical term in gold t+d transaction?
云原生数据库:数据库的风口,你也可以起飞