下载附件 打开后解压,发现了.docx文件 我尝试了改后缀,转格式,编码都失败了,最后在winhex打开,查看文件头
但是并没有flag 还有word文件夹,首先打开,找到document.xml 在sublime下打开,find flag
下载附件,发现是个压缩包文件,改名为.zip压缩打开 发现还是压缩文件,一路解压,最终发现两张图片 对两张图片进行对比,用Stegsolve.jar
得到了一张图片 图像过于清晰,导致大写的i,看成了小写的l,提交了n次,这里给出flag,留出时间做其他
AZADI TOWER** 千万不要加上任何前缀**
图片用winhex打开,直接得到flag,不要想太多
steganoI用winshark打开文件 ctrl+F查找flag,发现条目
在第81条,右键tcp跟踪,得到flag
下载附件发现是个zip,并没有伪加密,直接解压,并将打开的文件重命名为.txt 打开后发现了一串字符,英文最大不超过F
难度系数: 题目来源: WDCTF-2017
垃圾wp,根本无法得到,做出来的大佬请留言 WDCTF-2017:4-2 【原理】
字频分析 【目的】
简单了解字频分析 【环境】
windows,linux 【工具】
无 【步骤】
字频分析得到flag,
无
这个GIF皮的很啊,用了好多方法分离,最终还是败在了convert这个工具里了 在kali用分离命令将图片分离
convert glance.gif flag.png得到了一大堆的.png图片,足足200多个 然后横向合成,用montage,
montage flag*.png -tile x1 -geometry +0+0 a.png-tile是拼接时每行和每列的图片数,这里用x1,就是只一行
-geometry是首选每个图和边框尺寸,我们边框为0,图照原始尺寸即可 *的意思指的所有的.png 这里参考博客原创主 最后得到拼接好的图片
得到flag
TWCTF{Bliss by Charles O'Rear}下载附件发现是个压缩包,解压需要密码,首先想到的就是伪加密。 在winrar 修复之后,发现并不能将它解压出来,只好使用杀手锏,对它进行分析 在winhex下打开,看到16进制的编码,zip的开头是50 4B 03 04 50 4B 01 02:目录中文件文件头标记 3F 00:压缩使用的 pkware 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了) 压缩源文件目录结束标志 :50 4B 05 06:目录结束标记 在winhex里面搜索,50 4B 将全局方式位标记全部改为00 00 发现压缩包能够正常的打开 发现了一张图片和一个flag.txt 重点在图片上,进行stegsolve打开,得到flag
打开附件后发现这是一个pcap文件,将它用winshark打开 搜索flag,发现了flag.png,几乎每个条目里都有,但是并不能分离出来 最终还是向writeup低了头,发现了一款新的工具 tcpxtract 在linux环境下,用binwalk对图片进行分析: 用dd if 文件名 of 1.png skip=26441 分离出的图片不能被打开,才发现图片需要恢复,用简单的提取是不行的
下载地址 分离命令:
tcpxtract -f 40150e85ac1b4952f1c35c2d9103d8a40c7bee55.pcap Found file of type "png" in session分离出两张图片,还是不能查看,但是放入winhex发现,它的头部少了89 加上后保存,其中一张可以打开,出现了flag
难度系数: 题目来源: WDCTF-finals-2017
本题给出一张图片,但是并无法显示出内容,放到hex里面,发现它的数据头是错的 将它改为89 50,发现并没有显示出图片的内容。 试试放到tweakpng 工具中,发现它的检验值是错的,显示为0x932f8a6b 所以需要将它的校验值为0x932f8a6b,查看下,宽度是0,而高度760,所以这道题就需要改宽度 脚本如下:
import os import binascii import struct misc = open("misc4.png","rb").read() for i in range(1024): data = misc[12:16] + struct.pack('>i',i)+ misc[20:29] crc32 = binascii.crc32(data) & 0xffffffff if crc32 == 0x932f8a6b: print (i)大致解释一下脚本: 爆破crc校验所需要了解到的PNG文件头知识
- (固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头 - (固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13 - (固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH) - (可变)13位数据块(IHDR) - 前四个字节代表该图片的宽 - 后四个字节代表该图片的高 - 后五个字节依次为: Bit depth、ColorType、Compression method、Filter method、Interlace method - (可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。参考链接 binascii bianscii库是一个进制转换库,可以实现二进制与ASCII的转换,将图片以二进制打开,存到misc变量中, 用struct.pack对i进行转换,转换为一层包装的python大端整型字节,用binascii.crc32得到校验值,与0xffffffff做与运算,得到16进制,与正确的0x932f8a6b比较,爆破出i,修改宽度,得到flag.
下载附件,发现pdf文件,习惯的用linux的命令查看pdf的内容,所以命令:
pdfinfo 2333.pdf结果并没有什么东西,对它进行火狐的命令行 在控制台输入:
document.documentElement.textContent查看信息,并没有出现隐藏flagd的内容 binwalk分离一下,发现了三张图片,有戏
**用foremost 分离,得到隐函flag的图片 **
【原理】
日历中的日期隐藏flag 【目的】
了解日历中隐藏flag的方法 【环境】
linux 【工具】
2017年新加坡日历 【步骤】
通过题目描述可以发现按-分割是12组,然后数字似乎都是两位的,于是按两位分割之后发现都是0-31范围内的,于是联想到月份,找出一份2017新加坡日历:
01081522291516170310172431-050607132027162728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-04051213192625将每个数字标记,然后连接得到flag:
用formost图片分离出压缩包,解压后为两张图片和一个tip.txt 看似一样,用stegsolve的拼图功能,对比不出结果,查了查,发现了盲水印的存在 gitHub地址 由于盲水印的脚本运行环境为python2,还得需要安装python2的库,我的过程如下:
python2 -m pip install --upgrade pip由于用到cv2这个库,所以安装
pip install opencv-python最后安装:
pip install matplotlib之后就可以成功运行脚本,执行以下命令
python2 bwm.py decode day1.png day2.png flag.png得到flag.png:
拿到了流量分析的文件,打开有很多包 找了个tcp流跟踪了一下,发现了flag 巨坑的是,提交不对,最终改为sctf{Easy_Modbus}成功通过
考察xortool工具的使用 安装 linux下:
pip2 install xortool可以看到13机率最大 其中-l就是指定密钥长度,-c表示出现频率最高的字符。这个需要根据经验,比如文本内容一般是空格(20),二进制文件一般是00
解密脚本
import os c = open("1",'rb').read() key = "GoodLuckToYou" def xor(c,k): keylen = len(k) res = "" for pos,c in enumerate(c): res +=chr(ord(c) ^ ord(k[pos % keylen])) return res print xor(c,key)在输出结果下找到flag
得到未知名的文件,用binwalk 分析下,发现是bz2压缩包,在linux下解压得到一个git仓库的文件夹
tar -xjvf bz2文件解压缩命令 进入目录下,找到flag.txt 用git命令查看日志,但是没有找到这个文件 首先补充 git stash 的作用
git stash用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上.
通过git stash存储的修改列表,可以通过git stash list查看.git stash show用于校验,git stash apply用于重新存储.直接执行git stash等同于git stash save.
原文链接:https://blog.csdn.net/zz_Caleb/article/details/89331985 https://www.jianshu.com/p/14afc9916dcb
用如下命令查看修改的文件列表
git stash list有东西,然后校验一下存储的文件列表
git stash show发现了s.py,将他们重新储存,运行s.py得到flag
git stash apply得到一个用±<>这样符号组成的五角星,结合题目stdio,估计是c语言编译后的文件 查到BrianFuck语言,找个在线编译器或者找到编译码(c++)得到flag 在线编译网站 brainfuck
或者c的编译码 地址
得到附件后解压,看出为rar文件,直接解压得到一个流量包,并搜寻flag
进行tcp流跟踪,在第六个流里看到了flag.rar,和一个加解密脚本,还有一串base64码 将rar文件提取出来,字符串码也复制出来。
# coding:utf-8 from Crypto import Random from Crypto.Cipher import AES import sys import base64 IV = 'QWERTYUIOPASDFGH' def decrypt(encrypted): aes = AES.new(IV, AES.MODE_CBC, IV) return aes.decrypt(encrypted) def encrypt(message): length = 16 count = len(message) padding = length - (count % length) message = message + '\0' * padding aes = AES.new(IV, AES.MODE_CBC, IV) return aes.encrypt(message) str = '19aaFYsQQKr+hVX6hl2smAUQ5a767TsULEUebWSajEo=' example = decrypt(base64.b64decode(str)) print example print decrypt(example)运行解密脚本,得到rar压缩包的密码,解压得到flag.txt,打开得到flag.
起初对图片进行了各种操作,但是仍然没有结果,最终在细看了题目,发现了图片上有日历内容是有特殊的显示,0405111218192526 这时,在工具oursecret中找到隐藏文件 拿到try.zip,在zip的属性中找到了提示信息 生日一般是8位数字,我们爆破密码可以得到 解压后还是有密码的压缩包,readme.txt 压缩包和外部都有,我们进行明文掩码攻击 解压后又是密码,这次没有提示信息了,我们考虑压缩包伪加密。 将01改为00,密码消失,解压得到flag.txt的内容
qddpqwnpcplen%prqwn_{_zz*d@gq}很明显了,直接凯撒加栅栏解密,得到flag
