Bugku 蜘蛛侠【MISC】

从0开始学CTF[MISC篇]

Bugku 蜘蛛侠【MISC】

大家好,作为一个CTF方面的小白,以后我也希望每做一次题目就和大家分享分享自己的解题过程
今天我们要讲的是:
在这里插入图片描述

首先看题:
在这里插入图片描述
尝试点一点会发现需要密码,然后我们会发现在右边有这样一些奇怪的东西,我也不认识,不认识咋办,直接复制上网看看就可以了
在这里插入图片描述
得到规律了,那么这就是数字4 4 1 10 6 9 9 8 10 1
不过别着急,我们会发现下面还有几个单词:capital_num
其实就是大写单词的意思,那么我们转换一下就可以了
得到:肆肆壹拾陆玖玖捌拾壹
就可以得到密码了,输入密码就可以得到py文件和两张照片,我们先观察一下Py代码

import os
data_jpg = open('key.jpg','wb')
def jpg_encode():
    with open('file.jpg','rb') as handle:
        size = os.path.getsize('file.jpg')
        print(size)
        i = 0
        while i<size:
            bytedata = handle.read(1)
            process_data = data_encode(bytedata)
            data_write(process_data)
            i = i + 1

def data_encode(bytedata):
    data = int.from_bytes(bytedata,byteorder='big')
    if (data % 2 == 0):
        data = (data + 1) ^ 128
    else:
        data = (data - 1) ^ 128
    data = bytes([data])
    return data

def data_write(process_data):
    data_jpg.write(process_data)


if __name__ == '__main__':
    jpg_encode()
    data_jpg.close()

好吧,我老实承认对于python库里的一些函数我不是很了解,因为我不是很习惯用Py,作者还给我们留下了一张字条在这里插入图片描述
哦哦,那我大概懂了,逆向解码嘛,解码就是一个返回的过程,既然代码都给我们了我们就简易修改一下将key.jpg和file.jpg互换,还有bytedata和data换一换就可以了,然后我们就可以得到这样的代码,我随意修改了一下函数名那里问题不大

import os
data_jpg = open('file.jpg', 'wb')


def jpg_code():
    with open('key.jpg', 'rb') as handle:
        size = os.path.getsize('key.jpg')
        print(size)
        i = 0
        while i < size:
            bytedata = handle.read(1)
            process_data = data_decode(bytedata)
            data_write(process_data)
            i += 1
 

def data_code(data):
    bytedata = int.from_bytes(data, byteorder="big")
    if bytedata % 2 == 0:
        bytedata = (bytedata + 1) ^ 128
    else:
        bytedata = (bytedata - 1) ^ 128
    data = bytes([bytedata])
    return data

def data_write(process_data):
    data_jpg.write(process_data)


if __name__ == '__main__':
    jpg_code()
    data_jpg.close()

将文件夹里的key放在和py同一个文件夹里就可以得到一个新的jpg在这里插入图片描述
用常见的方法打开file
在这里插入图片描述
一堆乱码,我们随意翻找一下发现了最后有几个颜色不一样的,大胆猜测就是这些,我们再解码一下尝试一下在这里插入图片描述
base的我一个一个尝试到最后发现是base92,得到:
在这里插入图片描述
好熟悉,哦哦这个我以前还用到过这个工具,嘿嘿还好没删除在这里插入图片描述
然后我们打开flag.jpg嘛,因为毕竟作者给它命名叫flag肯定是有他的道理的,前面的jpg我们都用过了,应该就是这个了在这里插入图片描述
在这里插入图片描述
最后就可以得到啦,输入Bugku就可以了
嘿嘿,你学废了嘛~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酱油牌酱油菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值