攻防世界-杂项-Misc

Posted yichen115

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了攻防世界-杂项-Misc相关的知识,希望对你有一定的参考价值。

 

长期更新一波 攻防世界 的杂项题解

这东西主要靠积累吧

攻防世界:https://adworld.xctf.org.cn

 

新手练习区

 

1、this_is_flag

 

题目直接给出了 flag

 

 

2、ext3

 

主要考察 linux 下光盘的挂载

 

strings 文件名 | grep flag

搜索文件中的可打印字符 grep:全面搜索正则表达式并把行打印出来

技术图片

 

使用命令:mount linux ./linux_cd

将 linux(文件名) 挂载到 linux_cd 目录下,正常访问 O7avZhikgKgbF 文件夹即可看到 flag 文件,再经过 base64 解码得到最终 flag

 

 

3、give_you_flag

 

技术图片

 

动态图,一帧一帧看(我用的是爱奇艺万能播放器),在第50帧有个二维码,但是少了三个定位图案,用 PS 补上,扫码得到 flag

 

 

4、pdf

 

下载下来直接把编辑 PDF,把图片拿开就可以看到 flag

 

 

5、坚持60s

 

一个 java 小游戏,用 jd-gui 打开,直接搜索:flag,得到,结果需要 base64 解码

技术图片

 

 

6、如来十三掌

 

打开 doc,与佛论禅编码:http://www.keyfc.net/bbs/tools/tudoucode.aspx

 

解出来先 rot-13,然后 base64

 

 

7、gif

 

白为0,黑为1

 

01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101

 

二进制转字符串得到 flag

 

 

8、SimpleRAR

 

打开只有一个 flag.txt,但是用 winhex 打开发现应该还有一个 png 文件,

技术图片

 

将这里改成74

技术图片

 

再打开就看到了 png 文件,winhex 发现其实是个 gif 将后缀改成 gif

 

分离出来(我用的是 PS),然后用 Stegsolve 查看

技术图片

 

技术图片

 

把这个二维码拼起来,再把定位标志补上扫码得到 flag

 

 

9、掀桌子

网上师傅们给出的解密代码

 

string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"flag = ‘‘for i in range(0,len(string), 2):    s = "0x" + string[i] + string[i+1]    flag += chr(int(s, 16) - 128)print(flag)

 

每两个一组,将16进制转换为10进制,减去128以后输出 ascii

 

 

10、功夫再高也怕菜刀

 

下载到一个流量包,有 foremost 分离一下

(补充windows使用foremost:http://www.mamicode.com/info-detail-2283219.html

 

技术图片

 

得到一个压缩包,里面有 flag 文件,爆破就别想了(太复杂),

 

技术图片

 

分析流量包!!

ctrl+F 搜索字符

 

技术图片

 

选择第1150个,右键,追踪流 -> TCP 流

 

把这些保存下来

 

技术图片

 

从 FFD8FF 开始到 FFD9 复制出来

 

技术图片

 

技术图片

 

打开 winhex 新建一个文件,把上面的粘贴进去,注意,选择 hex 

 

技术图片

 

可以看出是个 jpg 了

 

技术图片

 

保存后打开图片:

技术图片

 

用这个密码打开压缩包里的 flag.txt

 

11、stegano

 

下载 PDF 在火狐浏览器打开,控制台输入:

document.documentElement.textContent

 

看一下内容,会有一串

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

 

把“A”换成“.”,把“B”换成“-”,得到:

-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--

 

解密摩斯密码,得到:

CONGRATULATIONSFLAG1NV151BL3M3554G3

 

真正的 flag 是:flag1NV151BL3M3554G3

 

这里因为格式不对,浪费了几个金币查看 writeup,结果 writeup 也没说格式,还是自己试出来的技术图片

 

 

12、base64stego

 

这个题接触了一种叫 base64 隐写的类型

python2 解密脚本:

#coding=utf-8def get_base64_diff_value(s1, s2):    base64chars = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/‘    res = 0    for i in xrange(len(s2)):        if s1[i] != s2[i]:            return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))    return res?def solve_stego():    with open(‘1.txt‘, ‘rb‘) as f:        file_lines = f.readlines()        bin_str = ‘‘        for line in file_lines:            steg_line = line.replace(‘\n‘, ‘‘)            norm_line = line.replace(‘\n‘, ‘‘).decode(‘base64‘).encode(‘base64‘).replace(‘\n‘, ‘‘)            diff = get_base64_diff_value(steg_line, norm_line)            print diff            pads_num = steg_line.count(‘=‘)            if diff:                bin_str += bin(diff)[2:].zfill(pads_num * 2)            else:                bin_str += ‘0‘ * pads_num * 2            print goflag(bin_str)?def goflag(bin_str):    res_str = ‘‘    for i in xrange(0, len(bin_str), 8):        res_str += chr(int(bin_str[i:i + 8], 2))    return res_str?if __name__ == ‘__main__‘:    solve_stego()

 

高手进阶区

 

1、Excaliflag

 

使用 Stegsolve 在蓝色通道为0的时候发现 flag

 

2、签到题

 

base64 -> 凯撒 -> 栅栏

 

注意根据题目背景,是SSCTF,凯撒的时候看到 ssC 选择那一个进行栅栏

 

未完待续...

 

 

 

技术图片

 

以上是关于攻防世界-杂项-Misc的主要内容,如果未能解决你的问题,请参考以下文章

攻防世界-杂项-SimpleRAR

攻防世界-Misc-新手区

攻防世界 Misc高手进阶区 4分题 normal_png

攻防世界-MISC:simple_transfer

攻防世界 Misc高手进阶区 2分题 Ditf

攻防世界MISC新手练习