• Bugku Misc 1 (1-20)


    Bugku Misc 1 (1-20)

    1. 签到

    扫码关注微信公众号Bugku,回复flag 得到flag

    flag{BugKu-Sec-pwn!}
    

    2.社工-进阶收集

    先留着

    3. 1和0的故事

    下载附件得到一个txt文本文件,观察内容发现是一个25X25的01矩阵。可以联想到为一个25X25规格的二维码,0表示黑色方块,1表示白色方块。编写脚本转换:

    from PIL import Image
    x = 25
    y = 25
     
    im = Image.new('RGB', (x, y))
    white = (255, 255, 255)
    black = (0, 0, 0)
     
    with open('1和0的故事.txt') as f:
        for i in range(x):
            ff = f.readline()
            for j in range(y):
                if ff[j] == '1':
                    im.putpixel((i, j), black)
                else:
                    im.putpixel((i, j), white)
    im.resize((500,500)).show()
    im.save("1.jpg")
    

    运行到得到的是个缺角的二维码

    image-20211002160259565

    做到这一步解决方法有很多,可以手动找一个定位角PS上去,也可也将缺角处的01对换,也可也完善脚本直接添加定位角,脚本贴上:

    from PIL import Image
    
    with open("1和0的故事.txt", "r") as f:
        data = [list(i.strip()) for i in f.readlines()]
    
    # 7*7的定位标志
    flag = [
        [1, 1, 1, 1, 1, 1, 1],
        [1, 0, 0, 0, 0, 0, 1],
        [1, 0, 1, 1, 1, 0, 1],
        [1, 0, 1, 1, 1, 0, 1],
        [1, 0, 1, 1, 1, 0, 1],
        [1, 0, 0, 0, 0, 0, 1],
        [1, 1, 1, 1, 1, 1, 1]
    ]
    
    img = Image.new("1", (25, 25))
    for i in range(len(data)):
        for j in range(len(data[1])):
            # 左上角定位标志
            if i < 7 and j < 7:
                img.putpixel((i, j), flag[i][j] ^ 1)
            # 左下角定位标志
            elif i > 17 and j < 7:
                img.putpixel((i, j), flag[i-18][j] ^ 1)
            # 右上角定位标志
            elif i < 7 and j > 17:
                img.putpixel((i, j), flag[i][j-18] ^ 1)
            else:
                img.putpixel((i, j), int(data[i][j]) ^ 1)
    
    img.resize((500, 500)).show()
    
    

    image-20211002160839369

    扫描二维码得到flag

    flag{QR_c0de_1s_1nterest1n9}
    

    4. easy_nbt

    下载得到nbt文件,搜索得到为我的世界游戏的存档文件,下载对应的nbt explorer 搜索flag字段可以得到。

    我的做法是将level.dat改为压缩包文件,在解压得到level,再用16进制编辑器打开,搜索字段就可以得到flag

    image-20211005161541063

    flag: flag{Do_u_kN0w_nbt?}
    

    5.这是一张单纯的图片

    下载附件得到file.jpg文件,用16进制编辑器打开,发现尾部有可疑字符串

    image-20211002162546923

    &#107;&#101;&#121;&#123;&#121;&#111;&#117;&#32;&#97;&#114;&#101;&#32;&#114;&#105;&#103;&#104;&#116;&#125;
    

    Html Entity转码 得到flag

    key{you are ritht}
    

    6.隐写

    下载附件得到2.png

    image-20211002162914706

    打开显示不正常,用16进制编辑器打开,显示CRC32报错,猜测宽高被修改过。

    用脚本爆出正确宽高

    import zlib
    import struct
    
    filename = '2.png'
    with open(filename, 'rb') as f:
        all_b = f.read()
        crc32key = int(all_b[29:33].hex(),16)
        data = bytearray(all_b[12:29])
        n = 4095            #理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了
        for w in range(n):          #高和宽一起爆破
            width = bytearray(struct.pack('>i', w))     #q为8字节,i为4字节,h为2字节
            for h in range(n):
                height = bytearray(struct.pack('>i', h))
                for x in range(4):
                    data[x+4] = width[x]
                    data[x+8] = height[x]
                crc32result = zlib.crc32(data)
                if crc32result == crc32key:
                    print("宽为:",end="")
                    print(width)
                    print("高为:",end="")
                    print(height)
                    exit(0)
    

    爆出正确宽高

    宽为:bytearray(b'x00x00x01xf4')
    高为:bytearray(b'x00x00x01xf4')
    

    修改正确宽高 得到

    image-20211004093254876

    flag: BUGKU{a1e5aSA}
    

    7.telnet

    下载附件 得到一个pacpl流量包,用Wireshark打开,根据题目telnet,在搜索框过滤出telnet的流量,追踪该流

    image-20211004094217110

    发现Telnet的连接密码就是flag

    flag : flag{d316759c281bf925d600be698a4973d5}
    

    8.眼见非实

    下载得到一个docx格式文件,打开报错

    image-20211004094835717

    将docx文件后缀改为zip,作为压缩包打开。

    解压发现

    image-20211004095749537

    里面还是一层文件夹“眼见为实”,docx文档格式虽然实际是zip,但是解压缩后的xml文件应该在压缩包的第一层,而这里真正的word文件还在第二层的文件夹里,说明这个第二层文件才是真的word文件,解题方法有两种。

    1.将这层真正的文件夹压缩回zip,然后在更改为docx格式,可以得到一个word文档。

    显示隐藏字符:

    image-20211004100241051

    1. 也可以直接在真的word文档那层文件夹里搜索关键字符串“flag” 或者“{”

      image-20211004100403011

    显示在document.xml文件存在flag字符,

    image-20211004100520074

    flag: flag{F1@g}
    

    9.啊哒

    下载附件得到一张jpg文件,用exiftool 查看了一下文件属性信息,发现相机信息栏有一段16进制字符串image-20211004101827075

     73646E6973635F32303138
    

    转为字符串为

    sdnisc_2018
    

    应该是一个密码,还没用到,继续分析。

    binwalk 分析,发现图标隐藏一个zip文件

    image-20211004102053196

    binwalk -e 分离出压缩包,发现有密码。

    image-20211004102206717

    用刚刚找到的字符串解码,可以打开 得到flag.txt

    image-20211004102229229

    flag: flag{3XiF_iNf0rM@ti0n}
    

    10. ping

    下载附件得到ping.pacp 流量包 ,用wireshark打开 发现全是ICMP 请求包,点开包查看数据,发现数据部分只有第一个字节有内容,其他都是0,连续点开几条,合起来看,就发现了flag字段

    image-20211004125859778

    逐条提取 就可以得到flag,不嫌累的话,可以手动,这里贴一下提取脚本

    # coding = utf-8
    # --author:valecalida--
    from os import system as get_hex
    # 调用tshark时需要将tshark加入环境变量,且脚本需要与流量包在一个路径下
     
    get_hex("tshark -r ping.pcap -Y "icmp && icmp.type==8" -T fields -e data > flag.txt")
    f = open('flag.txt', 'r')
    flag = ''
    for line in f.readlines():
        flag += chr(int(line[0:2], 16)) #line[0:2] 这个是从data部分开始算
    print(flag)
    f.close()
    
    flag: flag{dc76a1eee6e3822877ed627e0a04ab4a}
    

    11. Snowfall

    不会 先留坑

    https://blog.csdn.net/weixin_45696568/article/details/111413521

    12.赛博朋克

    下载附件 得到一个zip压缩包,但是解压提示要密码,用010Editor打开i看一下是不是存在伪加密

    image-20211004151209698

    改为00 提示没密码,解药得到 txt文档,打开乱码

    image-20211004151304101

    用010editor 打开,看见很明显的PNG头

    image-20211004151402349

    修改伪png 格式后,图片显示正常。

    image-20211004151509368

    用Stegsolve 打开 看是否存在lsb 隐写,RGB 0通道发现隐写

    image-20211004151740740

    这里也可也使用zsteg 工具 一把梭

    image-20211004151943212

    flag: flag{Hel1o_Wor1e}
    

    13.贝斯手

    下载附件 解压得到

    image-20211004152815566

    flag.zip有密码,打开介绍.txt 在末尾找打提示

    image-20211004152909351

    女生剧照为古力娜扎 ,百度得到出生年份为1992 与提示 申侯,闰年也对上了。

    解压可以打开flag.zip,得到flag.txt,里面内容为

    5+58==327a6c4304ad5938eaf0efb6cc3e53dcCFmZknmK3SDEcMEue1wrsJdqqkt7dXLuS
    

    根据题目贝斯手,以及5+58 猜测58 为base58编码,前面的5 为MD5编码,分别解码

    md5:327a6c4304ad5938eaf0efb6cc3e53dc   ——> flag
    base58:CFmZknmK3SDEcMEue1wrsJdqqkt7dXLuS  ——> {this_is_md5_and_base58}
    

    得到flag 为

    flag: flag{this_is_md5_and_base58}
    

    14.blind_injection

    下载附件得到cap.pacp包,题目为blind_injection,题目提示盲注,注入一般为http,导出http对象,再按大小拍下,注入末尾发现flag字段。

    image-20211004165933617

    提取出e6d3da86fe34a83bbfbdb9d3177a641,提交发现不对。在评论区中发现中间缺少一个15,1 序列。

    image-20211004170105789

    19,az 猜测 得到 为2,正确flag为

    flag: flag{e62d3da86fe34a83bbfbdb9d3177a641}
    

    15.可爱的故事

    low题 没玩过原神,也不知道这个叫提瓦特文。

    贴一个字母对比图,按 hint.txt 里面说flag为大兔子说的一句带bugku的话,找bugku对应的文字就行了。

    image-20211004172133314

    没意义的题。flag 直接抄吧

    flag: bugku{iamlearningteyvatinbugku}
    

    16.FileStoragedat

    复现:

    参考思路:https://blog.csdn.net/fi0stBlooder/article/details/118530327

    下载附件得到一个dat后缀格式的文件,搜索得到这个是微信存储数据的一个文件夹,该文件加下存放的是经过加密后微信中发送、接受的图片而形成的文件后缀为dat的文件。

    搜索找到以为大佬写的解密工具:https://github.com/PiaoZhenJia/WeChatDatFileDecoder

    image-20211005160030084

    使用工具,解密得到

    image-20211005160110692

    flag: bugku{WeChatwithSteg0}
    

    17.where is flag 番外篇

    复现:

    思路来源:https://blog.csdn.net/fi0stBlooder/article/details/118632099

    下载附件解压得到key.rar 和出师表.rar。其中,出师表rar是加密的压缩包,里面有一张PNG图片

    key.rar里面有12个txt文档,猜测是通过这个12个txt文档获取key来解压另外一个压缩包。

    解压得到12个txt文档,大小都是1kb。连续打开几个文档,发现内容为出师表,但是尾部都有填充字符。

    image-20211005153338766

    一开始的做法是把尾部填充的字符都摘取出来,看一下有什么规律,但是后面看了思路才知道,这个只是为了凑字数补充文档大小的。看思路得到是观察比较压缩前和压缩后的大小

    image-20211005153945607

    计算差值得到:75 101 121 58 90 104 117 71 76 64 64 46 48

    看着很像ascii码,尝试解码:Key:ZhuGL@@.0

    解压得到

    image-20211005155151430

    用16进制编辑器打开 搜索flag 得到 flag in here {LjFWBuxFNTzEWv6t2NfxjNFSH1sQEwBt5wTTLD1fJ}

    这里还编码了,看着很像base家族的编码,逐个尝试,发现是base58编码。

    编码得到flag

    flag: bugku{th1s_1s_chu_Sh1_B1A0!!@}
    

    18.又一张图片,还单纯吗

    下载附件得到jpg文件,显示正常,binwalk 分析有多张jpg文件,但是binwalk 分离不出来。

    image-20211005105432118

    尝试用foremost 分离出两张图片

    image-20211005105555161

    其中一张为flag

    image-20211005105620804

    得到flag 为

    flag{NSCTF_e6532a34928a3d1dadd0b049d5a3cc57}
    

    19.猜

    下载图片得到一张png图片,图片显示正常,但看起来头部上半部分被裁剪了。

    file

    根据题目描述,flag为人物名字全拼image-20211005110409433

    直接百度识图 得到

    image-20211005110522416

    flag:  key{liuyifei}
    

    20.宽带信息泄露

    下载附件得到一个bin文件,题目描述 flag为宽带用户名,猜测文件网络或者路由器配置文件,尝试用binwalk 分离该文件,无果。搜索找到RouterPassView这款软件。

    用软件打开View文件,全局查找关键字Username

    image-20211005142907015

    拿到用户名,得到flag。

    flag: flag{053700357621}
    
  • 相关阅读:
    java strtus2 拦截器(Interceptors)
    java ssm框架入门(三)正式项目的web.xml配置
    java Web监听器导图详解
    java web hello world(二)基于Servlet理解监听
    java ssm框架入门(二)添加语言滤器
    java web 自定义filter
    Java内存分配全面浅析
    Velocity !$ 和$!区别
    spring ioc原理(看完后大家可以自己写一个spring)
    Spring的AOP简单理解
  • 原文地址:https://www.cnblogs.com/JhonnyLee/p/15368870.html
Copyright © 2020-2023  润新知