好久没有打CTF了,做几道misc玩玩吧
直接binwalk看一下,发现存在三张图片,,,
binwalk -e一下没发现有什么东西,,,,
直接使用dd命令吧:dd if=7e5ab2e7587d4a4abf9c705dfb935a92.pdf of=1 skip=82150 bs=1
得到flag:
不明白以前为什么不会写,,,
下载下来是一个pcap文件,用strings大法先看看:
有图片???binwalk一下:
binwalk -e无用,foremost也无用,难受
试试dd命令:dd if=1.pcap of=1 skip=82150 bs=1
emmmm,图片出来了但是看不了,无用,,,,,,
在windows下wireshark也无用,没看见能提取的文件,,,
最后查阅资料得知tcpxtract可以从网络流量中提取文件,然而kali上没有,需要安装,,,
安装直接百度其他人的吧,装好直接利用命令:tcpxtract -f 1.pcap
能够得到flag图片,,,,,
HITB{95700d8aefdc1648b90a92f3a8460a2c}
下载文件发现图片打不开,拖入winhex,发现文件头不对,修改文件头:
修改之后还是打不开,突然发现表示宽度的地方显示为0???
怪不得打不开,,,随便修改一下宽度,然后发现:
没什么用,估计要crc爆破宽度了,,,
import struct
import binascii
import os
m = open("1.png","rb").read()
for i in range(0,65535):
c = m[12:16] + struct.pack('>i', i) + m[20:29]
crc = binascii.crc32(c) & 0xffffffff
if crc == 0x932f8a6b:
print(hex(i))
下载一个压缩包解压之后一个未命名的文件,查看一下发现是PK:
改名为.zip,解压需要密码,,,发现不是伪加密
直接使用工具爆破,得到密码:fish
彻底怀疑自己以前是不是没带脑子,,,,
下载解压得到一个文件,发现:
trainfuck编码,,,在线解密:
再次怀疑,,,,
下载文件放到kali中使用file查看一下文件:
是一个bzip2的压缩文件,直接使用命令:tar -xvjf 123
的到文件:
好像是.git目录???进入目录看一下:
好像“.”开头的文件都被隐藏了???flag.txt中没有flag,估摸着.git中隐藏了什么东西。。。。
查看了一下.git列表好像没有什么特别的地方,,,,
最后得知一个git stash命令,
git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录
查看现有stash:git stash list
查看列表:git stash show
复原文件:git stash apply
出现一个s.py文件,运行得到flag,,,,,
下载文件解压发现是一张图片!!放入stego中查看一下,发现存在二维码:
利用二维码扫描工具扫到内容:
扣下来:
03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000
怀疑是一个文件之类的,查找一下是否为文件头:
原来是pyc的文件头,直接用winhex保存为pyc文件
利用在线反编译工具的到源码:
def flag():
str = [
102,
108,
97,
103,
123,
51,
56,
97,
53,
55,
48,
51,
50,
48,
56,
53,
52,
52,
49,
101,
55,
125]
flag = ''
for i in str:
flag += chr(i)
print flag
下载文件下来,发现是一个rar压缩包,解压得到一个文件,发现是一个pcap文件
wireshark打开文件来,没找到什么,直接搜索字符串flag找到一个flag.rar文件??
save下来,发现需要密码???难受了,返回去继续看wireshark,emmmm
在tcp.stream eq 6中发现可疑内容:
[root@localhost wireshark]# llss
1 2 3 test
[root@localhost wireshark]# ccaatt 11
Rar!....3...
.............TU..<..... .+......flag.txt0.....n.Kr..z....uEo.Bn&=i.S..>....4.B..~...xj.".
...u......3.....jWj..%m..!.+h...+s..q#.]...3Ks.y.....r.2...wVQ....[root@localhost wireshark]# ccaatt 22
19aaFYsQQKr+hVX6hl2smAUQ5a767TsULEUebWSajEo=[root@localhost wireshark]# ppiinngg bbaaiidduu..ccoomm
PING baidu.com (111.13.101.208) 56(84) bytes of data.
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=1 ttl=48 time=33.4 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=2 ttl=48 time=32.1 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=3 ttl=48 time=34.7 ms
64 bytes from 111.13.101.208 (111.13.101.208): icmp_seq=4 ttl=48 time=31.9 ms
...^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3037ms
rtt min/avg/max/mdev = 31.921/33.067/34.784/1.155 ms
[root@localhost wireshark]# ccaatt 33
# coding:utf-8
.
.
__author__ = 'YFP'
.
.
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 = 'this is a test'
.
.
example = encrypt(str)
.
.
print(decrypt(example))
.
一串字符串:19aaFYsQQKr+hVX6hl2smAUQ5a767TsULEUebWSajEo=
还有一个python脚本,,,,emmmm,估摸着要我们解密!!
直接修改一下脚本:
# coding:utf-8
__author__ = 'YFP'
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)
example = base64.b64decode("19aaFYsQQKr+hVX6hl2smAUQ5a767TsULEUebWSajEo=")
print(decrypt(example))