攻防世界--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}

flag{th1s_!s_a_d4m0_4la9}

0x02 ext3

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

将linux系统光盘放在linux下,在linux光盘目录下使用strings linux|grep flag,查找与flag相关的文件;root模式下使用mount linux /mnt命令将linux光盘挂载在mnt目录下,切换到mnt目录,使用cat O7avZhikgKgbF/flag.txt命令即可对flag内容进行读取,发现是一个base64编码,解密后得到flag.

攻防世界--misc--新手区_第1张图片
flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

0x03 give_you_flag

菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包

一个.gif图片,用stegsolve的查看帧的功能模块查看,发现一个缺少三个定位部分的二维码,将其补全,扫一扫即可。

攻防世界--misc--新手区_第2张图片
flag{e7d478cf6b915f50ab1277f78502a2c5}
攻防世界--misc--新手区_第3张图片

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便显示出来了

攻防世界--misc--新手区_第4张图片
flag{security_through_obscurity}

0x05 坚持60s

菜狗发现最近菜猫不爱理他,反而迷上了菜鸡

下载发现是一个.jar的游戏,使用java反编译工具,查看源码,得到flag.

攻防世界--misc--新手区_第5张图片
flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}

0x06 如来十三掌

菜狗为了打败菜猫,学了一套如来十三掌。

在“与佛论禅”解密,得到一段疑似base64的编码,如来十三掌,rot13一下,再base64解密即可得到flag.

攻防世界--misc--新手区_第6张图片
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

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)
flag{FuN_giF}

0x08 SimpleRAR

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

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

攻防世界--misc--新手区_第7张图片
攻防世界--misc--新手区_第8张图片
flag{yanji4n_bu_we1shi}

0x09 stegano

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

在google上安装插件PDF Viewer,控制台输入document.documentElement.textContent,得到一串AB编码而成的字符串,将A变为 . ,B变为 - ,摩斯解密为CONGRATULATIONSnullFLAGnull1NV151BL3M3554G3,即flag为1NV151BL3M3554G3

攻防世界--misc--新手区_第9张图片
flag{1NV151BL3M3554G3}

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)
flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}

0x11 功夫再高也怕菜刀

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

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

攻防世界--misc--新手区_第10张图片
攻防世界--misc--新手区_第11张图片
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

0x12 base64stego

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

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

攻防世界--misc--新手区_第12张图片
# 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()
flag{Base_sixty_four_point_five}

你可能感兴趣的:(攻防世界--misc--新手区)