Fork me on GitHub

攻防世界--misc--新手区

参考:https://blog.csdn.net/zz_Caleb/article/details/89287031
files

0x01 this_is_flag

Most flags are in the form flag{xxx}, for example:flag{th1s_!s_a_d4m0_4la9}

1
flag{th1s_!s_a_d4m0_4la9}

0x02 ext3

今天是菜狗的生日,他收到了一个linux系统光盘

将linux系统光盘放在linux下,在linux光盘目录下使用

linux|grep flag```,查找与flag相关的文件;root模式下使用```mount linuxO7avZhikgKgbF/flag.txt```命令即可对flag内容进行读取,发现是一个base64编码,解密后得到flag.
1
>![](https://upload-images.jianshu.io/upload_images/9223646-5029a291129eb68d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

1
2
3
4
5
### 0x03 give_you_flag
菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包

一个.gif图片,用stegsolve的查看帧的功能模块查看,发现一个缺少三个定位部分的二维码,将其补全,扫一扫即可。
>![](https://upload-images.jianshu.io/upload_images/9223646-151859448385d89b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

flag{e7d478cf6b915f50ab1277f78502a2c5}

1
2
3
4
5
6
7
8
9
10
11
>![](https://upload-images.jianshu.io/upload_images/9223646-bffc19e0ebf3558d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

https://cli.im/news/help/10601
https://blog.csdn.net/hk_5788/article/details/50839790
https://zhuanlan.zhihu.com/p/21463650
https://www.jianshu.com/p/8208aad537bb
### 0x04 pdf
菜猫给了菜狗一张图,说图下面什么都没有

将文件打开,删除掉最外面的图片,flag便显示出来了
>![](https://upload-images.jianshu.io/upload_images/9223646-3d80b9cd625f1e14.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

flag{security_through_obscurity}

1
2
3
4
5
### 0x05 坚持60s
菜狗发现最近菜猫不爱理他,反而迷上了菜鸡

下载发现是一个.jar的游戏,使用java反编译工具,查看源码,得到flag.
>![](https://upload-images.jianshu.io/upload_images/9223646-26b031da84ba690b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}

1
2
3
4
5
### 0x06 如来十三掌
菜狗为了打败菜猫,学了一套如来十三掌。

在“[与佛论禅](http://www.keyfc.net/bbs/tools/tudoucode.aspx)”解密,得到一段疑似base64的编码,如来十三掌,rot13一下,再base64解密即可得到flag.
>![](https://upload-images.jianshu.io/upload_images/9223646-cf017a8cb575f275.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

1
2
3
4
### 0x07 gif
菜狗截获了一张菜鸡发给菜猫的动态图,却发现另有玄机

打开压缩包发现许多张黑白颜色的图片,将黑白图片分别记为1,0,得到01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101,转化为字符串形式即可。

gif 二进制转字符串

import re

a = ‘01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101’
b = re.findall(r’.{8}’,a)

flag = ‘’
for i in b:
flag += chr(int(i,2))

print(flag)

1
2
```
flag{FuN_giF}

0x08 SimpleRAR

菜狗最近学会了拼图,这是他刚拼好的,可是却搞错了一块(ps:双图层)

将压缩包直接解压,发现压缩包损坏,但得到了一个flag.txt,根据提示flag应该在剩余的文件中,将压缩包放在winhex下,根据flag.txt的内容,补齐图片格式再次解压得到一个空白图片,放在winhex下,发现是一个.gif图片,使用stegsolve帧功能模块,得到两张不同的帧图片,调节颜色,得到两张残缺的二维码图片,合并补齐后,扫一扫即可。

1
flag{yanji4n_bu_we1shi}

0x09 stegano

菜狗收到了图后很开心,玩起了pdf(flag格式为大写)

在google上安装插件PDF Viewer,控制台输入

. ,B变为 - ,摩斯解密为CONGRATULATIONSnullFLAGnull1NV151BL3M3554G3,即flag为1NV151BL3M3554G3
1
>![](https://upload-images.jianshu.io/upload_images/9223646-59b3380c26b6f5c8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

flag{1NV151BL3M3554G3}

1
2
3
4
### 0x10 掀桌子
菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻

通过观察,试着将16进制字符转为字符串,发现不能直接转化,试着将ascii码值减去128再转化,得到flag.

掀桌子脚本,十六进制转字符串

import re

a = ‘c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2’
b = re.findall(r’.{2}’,a)
flag = ‘’
for i in b:
flag += chr(int(int(i,16)-128))
print(flag)

1
2
```
flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}

0x11 功夫再高也怕菜刀

菜狗决定用菜刀和菜鸡决一死战

foremost分离文件,得到一个加密的压缩包,点进去查看发现一个flag.txt文件,wireshark下查找flag.txt字符串,追踪TCP流,最终在第1150个包发现一段图片的16进制编码,将其用winhex另存为一个图片,得到压缩包的密码,解压得到flag.

1
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

0x12 base64stego

菜狗经过几天的学习,终于发现了如来十三掌最后一步的精髓

无法直接解压压缩包,将其放在winhex下,查找rar标志位,发现是一个RAR伪加密,将第二个504B后的0900改为0000,解压得到一个内容全是base64编码的文件,发现是base64文件隐写,python2环境下直接利用脚本即可解出flag.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# base64文件隐写脚本
#!/user/bin/env python
# -*-coding:utf-8 -*-
def get_base64_diff_value(s1, s2):
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
res = 0
for i in xrange(len(s1)):
if s1[i] != s2[i]:
return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
return res

def solve_stego():

with open('E://stego.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)
pads_num = steg_line.count('=')
if diff:
bin_str += bin(diff)[2:].zfill(pads_num * 2)
else:
bin_str += '0' * pads_num * 2

res_str = ''

for i in xrange(0, len(bin_str), 8):

res_str += chr(int(bin_str[i:i+8], 2))
print res_str

solve_stego()
1
flag{Base_sixty_four_point_five}