赛博杯2020WP misc

我的二维码,时尚时尚最时尚

formost分离得到两张图,但是图片大小不一,需要P成大小一样的然后两张图XOR

α层

考点重复了,同样是两张图XOR

python2-人工智障

python2下的input函数有风险
学习网站https://www.jianshu.com/p/668bfbdb6813
在这里插入图片描述没想清楚这句话到底是在说什么,以为是一个很重要的点

payload:import(‘os’).system(‘cat /flag’)

sign_in

十六进制转字符串

⎛⎝WDNMD⎠⎞

IDA打开寻找字符串,前一段在data行里 后一段是竖着的十六进制数

hacked by PTT0

下载来一个流量包,wireshark进行分析。
在这里插入图片描述发现可疑的压缩包,复制原始数据,粘贴到winhex上再导出文件获得一个zip压缩包。里面有很多xml文件,其中有一个xml文件打不开,拖到winhex里,原来是png文件。修改结尾依旧打不开在这里插入图片描述在这里插入图片描述在这里插入图片描述随便弄张png对比一下发现多了个20,把它去掉得到flag。
在这里插入图片描述卡在了各种地方在这里插入图片描述

Broken RedLine

首先CRC爆破高和宽,这里给出py脚本

import zlib
import struct

filename = 'Find_right_width_and_hieht_by_CRC32.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)

在这里插入图片描述得到一张这样的图片,这里需要用到PIL脚本,太菜了不会写,引用Craner大佬的脚本

from PIL import Image
def swap(pixel,data):
    return pixel[data:]+pixel[:data]

im=Image.open('Find_right_width_and_hieht_by_CRC32.png').convert('RGB')
wide,high=im.size
pixel=[]
for x in range(0,wide):
    t=[]
    for y in range(0,high):
        t.append(im.getpixel((x,y)))
    pixel.append(t)

location=[]
for i in pixel:
    for j in range(0,len(i)):
        if i[j]==(255,0,0):
            location.append(j)
            break

pixel_swap=[]
for i in range(0,len(location)):
    pixel_swap.append(swap(pixel[i],location[i]))

im1=Image.new('RGB',(wide,high))
for x in range(0,wide):
    for y in range(0,high):
        im1.putpixel((x,y),pixel_swap[x][y])
im1.save('flag.png')

PIL模块有必要学习一下

guess

猜数字游戏,输入1-10000。通过计算,2的20次方×100大于10000 在常规输入中是不可能有解的
有一个特例,nan也是数字类型。
在这里插入图片描述

make_misc_great_again

一直没想清楚神秘代码是什么,卡了很久,等知道的时候为时已晚。知识盲区,没见过这种取证题。
下载得到一个raw文件和一个压缩包文件
在这里插入图片描述过程之后补上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值