CTF学习记录

CTF学习记录

📅 2026-04-02 📝 119 字 ⏱️ 1 分钟
CTF 笔记 大一下

2018 DEFCON Quals ghettohackers: Throwback

题目描述

Anyo!e!howouldsacrificepo!icyforexecu!!onspeedthink!securityisacomm!ditytop!urintoasy!tem!

思路

  • 一种方法是补全叹号内容得到flag
    • flag{Anyone who would sacrifice policy for execution speed thinks security is a commodity to pour into a system}
    • 或者flag{nwltisoos}
    • 但都是错的
  • 另一种则是以!为分割点将字符分开,字符串长度对应字母表中字母的顺序,同时假设0个字符为空格

EXP

ori = 'Anyo!e!howouldsacrificepo!icyforexecu!!onspeedthink!securityisacomm!ditytop!urintoasy!tem!'
sp = ori.split('!')
result = ''.join(chr(97 + len(s) - 1) for s in sp)
print(result)

flag{dark logic}


判断图片类型

  • 给出了一个admin.exe文件,我们需要先判断其文件类型
    • 先用binwalk判断binwalk admin.exe得出为png文件
    • 再使用GHEX来进行十六进制验证ghex admin.exe,得到89 50 4E 47 0D 0A 1A 0APNG文件头
  • 于是我们将后缀改为PNG,得到一张二维码,用QRCode扫描即可得到flag
    • mv admin.exe admin.png

倒转文件byte

  • binwalk判断文件类型为jpg,于是用GHEX打开
  • 打开后并没有在开头看见PNG文件头,翻到最下面看见有倒转过来的PNGIHDR,于是使用脚本将其翻转,得到flag

EXP

  a = open('flag.jpg','rb')  #读取flag.jpg图片的byte数据
  b = open('png.png','wb')  #新建一个名为png.png的图片,写入byte数据
  b = b.write(a.read()[::-1])  #将flag.jpg图片的byte数据,倒着写入png.png图片里

添加文件头

  • 先用binwalk判断文件类型为PNG,用GHEX打开
binwalk no_hex
ghex no_hex
  • 打开后发现文件头缺失,INS -> 添加89 50 4E 47
  • 另存为CTRL + SHIFT + S

修改宽高

python Deformed-Image-Restorer.py -i demo.png

LSB图片隐写

前言:

作为一个不是十分勤奋的仍在入门苦苦挣扎的CTFer,之前做了几道Misc的图片题(因为简单),我的操作仅限于“打开随波逐流 –> 图片及文件隐写 –> binwalk文件提取”,最多延伸到用010打开修改文件头,这学期决定真的真的真的要入门CTF了,现在准备学一下之前看见就跑的LSB隐写题
另外,本来是想下载Stegsolve的,但我的能力有限,下载的全是精简版,ChatGPT教我的很多功能都找不到,放弃后又去询问ChatGPT,决定试试zsteg → StegoVeritas → StegOnline(最后确认)这样的流程
我总觉得我记性不是很好,所以我总是写的比较哆嗦