攻防世界misc进阶

004眼见非实

下载附件
打开后解压,发现了.docx文件
我尝试了改后缀,转格式,编码都失败了,最后在winhex打开,查看文件头

50 4B 03 04

发现这是一个zip文件,改后缀为.zip 直接解压,拿到了一堆.xml文件 **猜测在最外面的文件里**

攻防世界misc进阶_第1张图片
但是并没有flag
还有word文件夹,首先打开,找到document.xml
在sublime下打开,find flag
攻防世界misc进阶_第2张图片

What-is-this

下载附件,发现是个压缩包文件,改名为.zip压缩打开
发现还是压缩文件,一路解压,最终发现两张图片
攻防世界misc进阶_第3张图片
攻防世界misc进阶_第4张图片
对两张图片进行对比,用Stegsolve.jar

得到了一张图片
攻防世界misc进阶_第5张图片
图像过于清晰,导致大写的i,看成了小写的l,提交了n次,这里给出flag,留出时间做其他

AZADI TOWER

** 千万不要加上任何前缀**

Training-Stegano-1

图片用winhex打开,直接得到flag,不要想太多

steganoI

easycap

用winshark打开文件
ctrl+F查找flag,发现条目
攻防世界misc进阶_第6张图片

在第81条,右键tcp跟踪,得到flag

Test-flag-please-ignore

下载附件发现是个zip,并没有伪加密,直接解压,并将打开的文件重命名为.txt
打开后发现了一串字符,英文最大不超过F

用进制转换工具,将16进制转为字符串,得到flag

flag{hello_world}

4-2

难度系数:
题目来源: WDCTF-2017

垃圾wp,根本无法得到,做出来的大佬请留言
WDCTF-2017:4-2
【原理】

字频分析
【目的】

简单了解字频分析
【环境】

windows,linux
【工具】


【步骤】

字频分析得到flag,

flag{classical-cipher_is_not_security_hs}


【总结】

glance-50

这个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
这里参考博客原创主
最后得到拼接好的图片
攻防世界misc进阶_第7张图片

得到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

Cephalopod

打开附件后发现这是一个pcap文件,将它用winshark打开
搜索flag,发现了flag.png,几乎每个条目里都有,但是并不能分离出来
在这里插入图片描述
攻防世界misc进阶_第8张图片
最终还是向writeup低了头,发现了一款新的工具
tcpxtract
在linux环境下,用binwalk对图片进行分析:

用dd if 文件名 of 1.png skip=26441
分离出的图片不能被打开,才发现图片需要恢复,用简单的提取是不行的

Tcpxtract是一种基于文件签名从网络流量中提取文件的工具。基于文件类型的页眉和页脚(有时称为“雕刻”)提取文件是一种古老的数据恢复技术。Foremost这样的工具使用这种技术可以从任意数据流中恢复文件,其是专门用于通过网络传输的拦截文件的应用。填补类似需求的其他工具有流网和EtherPEG。driftnet和EtherPEG是用于在网络上监控和提取图形文件的工具,网络管理员通常使用它来警告用户的互联网活动。driftnet和EtherPEG的主要局限性在于它们只支持三种文件类型,不需要添加更多方法。他们使用的搜索技术也是不可扩展的,不会跨数据包边界搜索

由于它没有kali版本,只好安装在redhat里rpm安装包地址如下:

下载地址
分离命令:

tcpxtract -f 40150e85ac1b4952f1c35c2d9103d8a40c7bee55.pcap Found file of type "png" in session 

分离出两张图片,还是不能查看,但是放入winhex发现,它的头部少了89
加上后保存,其中一张可以打开,出现了flag
攻防世界misc进阶_第9张图片

2-1

难度系数:
题目来源: WDCTF-finals-2017

本题给出一张图片,但是并无法显示出内容,放到hex里面,发现它的数据头是错的
攻防世界misc进阶_第10张图片
将它改为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.

攻防世界misc进阶_第11张图片

小小的pdf

下载附件,发现pdf文件,习惯的用linux的命令查看pdf的内容,所以命令:

pdfinfo 2333.pdf

结果并没有什么东西,对它进行火狐的命令行
在控制台输入:

document.documentElement.textContent

查看信息,并没有出现隐藏flagd的内容
binwalk分离一下,发现了三张图片,有戏

攻防世界misc进阶_第12张图片
**用foremost 分离,得到隐函flag的图片 **
攻防世界misc进阶_第13张图片

2017_Dating_in_Singapore

【原理】

日历中的日期隐藏flag
【目的】

了解日历中隐藏flag的方法
【环境】

linux
【工具】

2017年新加坡日历
【步骤】

通过题目描述可以发现按-分割是12组,然后数字似乎都是两位的,于是按两位分割之后发现都是0-31范围内的,于是联想到月份,找出一份2017新加坡日历:

01081522291516170310172431-050607132027162728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-04051213192625

将每个数字标记,然后连接得到flag:
攻防世界misc进阶_第14张图片

4-1

攻防世界misc进阶_第15张图片

用formost图片分离出压缩包,解压后为两张图片和一个tip.txt
攻防世界misc进阶_第16张图片
攻防世界misc进阶_第17张图片
看似一样,用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:
攻防世界misc进阶_第18张图片

神奇的modbus

拿到了流量分析的文件,打开有很多包
找了个tcp流跟踪了一下,发现了flag
攻防世界misc进阶_第19张图片
巨坑的是,提交不对,最终改为sctf{Easy_Modbus}成功通过

5-1

考察xortool工具的使用
安装
linux下:

pip2 install xortool

攻防世界misc进阶_第20张图片
可以看到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
攻防世界misc进阶_第21张图片

MISCall

得到未知名的文件,用binwalk 分析下,发现是bz2压缩包,在linux下解压得到一个git仓库的文件夹

tar -xjvf bz2文件

解压缩命令
攻防世界misc进阶_第22张图片
进入目录下,找到flag.txt
在这里插入图片描述
用git命令查看日志,但是没有找到这个文件
攻防世界misc进阶_第23张图片
首先补充
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

攻防世界misc进阶_第24张图片

can_has_stdio?

得到一个用±<>这样符号组成的五角星,结合题目stdio,估计是c语言编译后的文件
查到BrianFuck语言,找个在线编译器或者找到编译码(c++)得到flag
攻防世界misc进阶_第25张图片
在线编译网站
brainfuck

或者c的编译码
地址

你可能感兴趣的:(网络安全misc)