首页 > 其他分享 >BUUCTF 大白

BUUCTF 大白

时间:2023-12-25 20:00:52浏览次数:43  
标签:bin BUUCTF 大白 hex crc FF crc32 data

下载题目zip,解压得到一张png图片

点击能够用电脑自带的照片软件打开,拖入tweakpng试试

猜测是图片的长度不对,用以下python脚本爆破一下:

import zlib
import struct
import argparse
import itertools


parser = argparse.ArgumentParser()
parser.add_argument("-f", type=str, default=None, required=True,
                    help="输入同级目录下图片的名称")
args  = parser.parse_args()


bin_data = open(args.f, 'rb').read()
crc32key = zlib.crc32(bin_data[12:29]) # 计算crc
original_crc32 = int(bin_data[29:33].hex(), 16) # 原始crc


if crc32key == original_crc32: # 计算crc对比原始crc
    print('宽高没有问题!')
else:
    input_ = input("宽高被改了, 是否CRC爆破宽高? (Y/n):")
    if input_ not in ["Y", "y", ""]:
        exit()
    else:
        for i, j in itertools.product(range(4095), range(4095)): # 理论上0x FF FF FF FF,但考虑到屏幕实际/cpu,0x 0F FF就差不多了,也就是4095宽度和高度
            data = bin_data[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + bin_data[24:29]
            crc32 = zlib.crc32(data)
            if(crc32 == original_crc32): # 计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
                print(f"\nCRC32: {hex(original_crc32)}")
                print(f"宽度: {i}, hex: {hex(i)}")
                print(f"高度: {j}, hex: {hex(j)}")
                exit(0)

得到结果:

接下来只要把长度改回正确值,用010editor打开图片,并更改图片第二行第八个字节改为DF,保存得到图片

成功得到flag

标签:bin,BUUCTF,大白,hex,crc,FF,crc32,data
From: https://www.cnblogs.com/lemonsdrinker/p/17926873.html

相关文章

  • buuctf:crypto
    鸡藕椒盐味  首先用海明校验码将正确的二进制得出来是110110100000,再用md5进行解码,得出两个flag,一个一个试咯,好嘛,第一个就对了【MRCTF2020】古典密码知多少  打开就像猪圈密码一样的玩意儿,但是又不完全是,就发现还有一些其他的新鲜玩意儿,标准银河字母+圣堂武士+猪圈,解密......
  • buuctf和ctfshow:misc
    rar  需要密码,直接进行暴力破解,但是他说了是四位数字就将范围改成4,选择0-9就好了得出密码之后再打开就可以看到flag了qr  扫码就可以了,看wp发现用工具qrresearch也可以ningen  出来是一张照片,根据题目,将他进行压缩,然后打开发现需要密码,就和上面第一道题一样,得出密......
  • ctfshow:misc入门+buuctf:misc
    misc34. 根据题干,得知宽度要大于900,又看wp限制为1200,我就倒着试,试到了1123就可以得出flag了 misc35. 同理上面,改宽度就好misc36. 一样的misc37. 点开是动态的,但其实仔细看可以看见部分flag的,就放进gif里面,一帧一帧看,得出之后按顺序拼凑出来就可以了misc38. ......
  • buuctf:crypto
    RSA. 用RSA—Tool工具,把e转化为十六进制丢失的MD5. python里面运行出来就可以了Alice与Bob.  题目都已经给出了做法,首先进行素数分解,最后再利用md5的32位小写哈希Windows系统密码.  看到ctf就先解密它,放在md5里面信息化时代的步伐. 用工具中文电码在线查询......
  • Buuctf-Crypto-之深夜刷题部分wp
    萌萌哒的八戒     首先下载好附件,解压,是一幅猪图,图的下方是一串看不懂的字,百度输入关键词猪、密码,可知这是猪圈密码,手撸得WHENTHEPIGWANTTOEAT     大写不对,换成小写。     whenthepigwanttoeat   传统知识+古典密码       首先下载好......
  • Web_XCTF/BUUCTF_WriteUp | warmup
    题目分析F12查看源码,发现注释<!--source.php-->,作为参数接入url提交,得到php代码:稍做分析:<?phphighlight_file(__FILE__);//对当前文件进行PHP语法高亮显示classemmm//构造类emmm{publicstaticfunctioncheckF......
  • 大白话说Python+Flask入门(六)Flask SQLAlchemy操作mysql数据库
    写在前面这篇文章被搁置真的太久了,不知不觉拖到了周三了,当然,也算跟falsk系列说再见的时候,真没什么好神秘的,就是个数据库操作,就大家都知道的CRUD吧。FlaskSQLAlchemy的使用1、FlaskSQLAlchemy简介FlaskSQLAlchemy是基于Flaskweb框架和SQLAlchemyORM(对象关系映射)的工具......
  • buuctf 加固题 babypython WriteUp
    原题wp参考链接:https://www.cnblogs.com/karsa/p/13529769.html这是CISCN2021总决赛的题,解题思路是软链接zip读取文件,然后伪造admin的session读取flag回到buuctf的这个题:ssh连上去,查看文件/app/y0u_found_it/y0u_found_it_main.py关键代码:random.seed(uuid.getnode())a......
  • BUUCTF-RE-49-[羊城杯 2020]easyre
    BUUCTF-RE-[羊城杯2020]easyre进入main,简单分析之后进入encode_oneint__cdeclmain(intargc,constchar**argv,constchar**envp){intv3;//eaxintv4;//eaxintv5;//eaxcharStr[48];//[rsp+20h][rbp-60h]BYREFcharStr1[64];//[rsp+50h]......
  • Misc_BUUCTF_WriteUp | 另外一个世界
    题目分析一套检查下来,在StegSolve切换通道的时候发现甜饼怪左上角有一部分像素不正常:但在切换通道的过程并没有发现什么异常。binwalk也没有发现隐藏文件:唯一可疑的只剩文件最后的二进制串:将二进制字符转换为文本:套上格式后提交成功。Flagflag{koekj3s}参......