MISC

some misc subjects

Posted by JBNRZ on 2022-10-03
Estimated Reading Time 10 Minutes
Words 2.1k In Total
Viewed Times

建议考虑的方向

  • LSB
  • foremost
  • stegdetect
  • 010editor
  • outguess
  • binwalk
  • image combiner
  • F5
  • CRC

面具下的 flag

mask

题解

  1. 下载附件,binwalk 查看是否隐藏文件
    mask 1
  2. 分离
    mask 2
  3. 得到一个 压缩包和虚拟机文件,尝试用 7z 解压
    mask 3
  4. 得到一个文件夹,打开 part one 和 part two,发现 brainfuck & ook,解密得 flag
    mask 4
    mask 5

flag{N7F5_AD5_i5_funny!}

九连环

题解

  1. 下载附件得到图片
    nine
  2. binwalk 扫一下,有东西
    nine 1
    nine 8
    nine 2
  3. 可能是伪加密,尝试解压得到的压缩文件
    nine 3
    nine 4
  4. 成功,再用 binwalk 扫一下 good 图片
    nine 5
  5. 没东西,但是换一种工具 steghide

steghide extract -sf good-已合并.jpg
密码为空
nine 6

  1. 读取 fo.txt
    nine 7
  2. 解压缩文件,得到 flag

flag{1RTo8w@&4nK@z*XL}

flag

题解

  1. 下载图片
    f
  2. stegsolve 打开,尝试 LSB 隐写,发现 zip
    f 1
  3. 尝试压缩发现有损坏,binwalk 强制解压缩
    f 2
  4. 得到一个二进制文件,用 IDA 打开,得到 flag
    f 3

flag{dd0gf4c3tok3yb0ard4g41n}

刷新过的图片

题解

  1. 啊,题目很新,第一次见到,网上查过后发现是 F5 隐写下载工具

git clone https://github.com/matthewgao/F5-steganography
java Extract Misc.jpg
f5 1

  1. 打开 output.txt 发现是个 zip,修改后缀,解压缩
    f5 2
    f5 3
  2. (binwalk yyds!) 得到 flag

flag{96efd0a2037d06f34199e921079778ee}

被偷走的文件

题解

  1. 下载得到流量文件
    cang 1
  2. 发现 ftp 协议,同时找到 flag.rar,binwalk 分离
    cang 2
  3. 得到 flag.rar ,爆破密码
    cang 3
  4. 得 flag

flag{6fe99a5d03fb01f833ec3caa80358fa3}

菜刀666

题解

  1. 下载文件附件,打开,追踪数据流,发现存在 zip
    666 1
    666 2
  2. 尝试寻找密码,最终在 tcp.stream ea 7 中找到
    666 3
  3. 根据 base64 加密过后的文字判断

RDpcd2FtcDY0XHd3d1x1cGxvYWRcNjY2Ni5qcGc%3D
D:\wamp64\www\upload\6666.jpg
666 4

  1. 猜测下一个参数 z2 为 6666.jpg,全部复制,导入至 010 导出图片
    666
  2. 得到密码,解压压缩包得 flag

Th1s_1s_p4sswd_!!!
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

一叶障目

题解

  1. 根据 RCR 爆破宽高
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#coding=utf-8
import zlib
import struct
#读文件
file = '1.png' #注意,1.png图片要和脚本在同一个文件夹下哦~
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
#crc32key = 0xCBD6DF8A #补上0x,copy hex value
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex
n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了
for w in range(n):#高和宽一起爆破
width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
#print(data)
crc32result = zlib.crc32(data)
if crc32result == crc32key:
print(width,height)
#写文件
newpic = bytearray(fr)
for x in range(4):
newpic[x+16] = width[x]
newpic[x+20] = height[x]
fw = open(file+'.png','wb')#保存副本
fw.write(newpic)
fw.close
  1. 得 flag

xaflag{66666}

梅花香自苦寒来

这题好啊

题解

  1. 下载附件,010 打开,在文件尾部发现大量 16进制
    mh 1
  2. 转化为 ascii 码
1
2
3
4
5
6
7
8
9
10
11
12
with open('hex.txt', 'r') as h:     # hex.txt为要转换的文本文件
val = h.read()
h.close()

with open('result.txt', 'w') as re: # 转换完成后写入result.txt
tem = ''
for i in range(0, len(val), 2):
tem = '0x' + val[i] + val[i+1]
tem = int(tem, base=16)
print(chr(tem), end="")
re.write(chr(tem))
re.close()
  1. 很明显是坐标,我也想到了,但不知道应该怎么画(使用 gnuplot 画图,先转化为可识别的格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
with open('result.txt', 'r') as res:  # 坐标格式文件比如(7,7)
re = res.read()
res.close()

with open('gnuplotTxt.txt', 'w') as gnup: # 将转换后的坐标写入gnuplotTxt.txt
re = re.split()
tem = ''
for i in range(0, len(re)):
tem = re[i]
tem = tem.lstrip('(')
tem = tem.rstrip(')')
for j in range(0, len(tem)):
if tem[j] == ',':
tem = tem[:j] + ' ' + tem[j+1:]
gnup.write(tem + '\n')
gnup.close()

  1. 安装 gnuplot,在安装目录 bin 文件夹下执行(安装包将上传至 github

plot ‘gnuplotTxt.txt’

  1. 扫描二维码,得到 flag

flag{40fc0a979f759c8892f4dc045e28b820}

谁赢了比赛

题解

  1. 下载,得到png,binwalk 文件分离,得到 rar,爆破,ps 打开,发现有问题的一帧,提取,stegsolve打开,不同通道,二维码扫描
    game 1
    game 2
    game 3
    game 4
    game 5
    game 6
    game 7

flag{shanxiajingwu_won_the_game}

gakki

题解

  1. 下载图片,binwalk查看,分离,rar 爆破密码,字频分析
    gakki 1
    gakki 2
    gakki 3
    gakki 4
  2. 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
strings = open('flag.txt').read()

result = {}
for i in alphabet:
counts = strings.count(i)
i = '{0}'.format(i)
result[i] = counts

res = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:
print(data)

for i in res:
flag = str(i[0])
print(flag[0],end="")
# 代码来自:mochu7
# https://blog.csdn.net/mochu7777777/article/details/109377328
  1. flag

flag{gaki_IsMyw1fe}

sqltest

题解

摘自:https://www.cnblogs.com/yunqian2017/p/15124198.html
sqltest

john-in-the-middle

题解

  1. 下载文件,发现流量中传输了很多的文件,全部导出
    http 1
  2. 发现可疑文件
    http 2
  3. stegsolve 打开(有先后顺序,我不理解)
    http 3
  4. 发现 flag
    http 4

flag{J0hn_th3_Sn1ffer}

喵喵喵

题解

  1. 下载得到图片,没有发现隐藏文件,看看 LSB 隐写
    mmm 1
  2. 保存文件,010 打开,删除文件头多余的内容
    mmm 2
    mmm 3
  3. 修改图片高度,得到完整二维码
    mmm 4
  4. 扫描得到网址,下载压缩包,解压,啥都没有
    mmm 5
    mmm 6
  5. nfts 查看流
    mmm 7
  6. 得到 pyc文件,进行反编译
    mmm 8

https://tool.lu/pyc/

  1. 得到代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
# Version: Python 2.7

import base64

def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))

return ciphertext[::-1]

ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']

  1. exp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def decode(arg1):
ciphertext = arg1[::-1]
flag = ''
for i in range(len(ciphertext)):
if i % 2 == 0:
s = int(ciphertext[i]) - 10
else:
s = int(ciphertext[i]) + 10
s = s ^ i
flag += chr(s)
print(flag)

if __name__ == '__main__':
ciphertext = [
'96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112'
]
decode(ciphertext)

  1. flag

flag{Y@e_Cl3veR_C1Ever!}

SXMgdGhpcyBiYXNlPw==

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import base64

def int2Bin(digit):
return bin(digit)[2:] #将索引转成二进制,去掉'0b';


def binAsc(string): #二进制转成ASCII码
temp = ''
for i in range(int(len(string) / 8)):
temp += chr(int(string[i * 8 : i* 8 + 8] , 2))
return temp

def readBase64FromFile(filename):
Base64Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" #Base64字符集 已按照规范排列
result = ''
with open(filename ,'r') as f:
for data in f.readlines():
if data.find('==') > 0:
result += int2Bin(Base64Char.index(data[-4]))[-4:] #根据隐写原理,‘==’情况取等号前最后一个字符转换后取后4位
elif data.find('=') > 0:
result += int2Bin(Base64Char.index(data[-3]))[-2:] #根据隐写原理,‘=’情况取等号前最后一个字符转换后取后2位
print(binAsc(result))

readBase64FromFile('flag.txt')
原文链接:https://blog.csdn.net/wangjin7356/article/details/122237992

Mysterious

题解

  1. ida ida打开
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4)
{
int v4; // eax
char Source[260]; // [esp+50h] [ebp-310h] BYREF
CHAR Text[5]; // [esp+154h] [ebp-20Ch] BYREF
char v8[252]; // [esp+159h] [ebp-207h] BYREF
__int16 v9; // [esp+255h] [ebp-10Bh]
char v10; // [esp+257h] [ebp-109h]
int Value; // [esp+258h] [ebp-108h]
CHAR String[260]; // [esp+25Ch] [ebp-104h] BYREF

memset(String, 0, sizeof(String));
Value = 0;
if ( a2 == 16 )
{
DestroyWindow(hWnd);
PostQuitMessage(0);
}
else if ( a2 == 273 )
{
if ( a3 == 1000 )
{
GetDlgItemTextA(hWnd, 1002, String, 260);
strlen(String);
if ( strlen(String) > 6 )
ExitProcess(0);
v4 = atoi(String);
Value = v4 + 1;
if ( v4 == 122 && String[3] == 120 && String[5] == 122 && String[4] == 121 )
{
strcpy(Text, "flag");
memset(v8, 0, sizeof(v8));
v9 = 0;
v10 = 0;
_itoa(Value, Source, 10);
strcat(Text, "{");
strcat(Text, Source);
strcat(Text, "_");
strcat(Text, "Buff3r_0v3rf|0w");
strcat(Text, "}");
MessageBoxA(0, Text, "well done", 0);
}
SetTimer(hWnd, 1u, 0x3E8u, TimerFunc);
}
if ( a3 == 1001 )
KillTimer(hWnd, 1u);
}
return 0;
}

v4 == 122 && String[3] == 120 && String[5] == 122 && String[4] == 121
v4 = 122xyz

  1. flag

flag{123_Buff3r_0v3rf|0w}

小易的u盘

题解

  1. 没有题解,只是想说,遇到 iso 的题,不要急着解压,先看16进制,再开隐藏文件
  2. flag

flag{29a0vkrlek3eu10ue89yug9y4r0wdu10}

哥们在这儿给你说唱(0xGame)

题解

  1. 描述知存在 deepsound,提取文件,密码在 slienteye 中
  2. flag

0xGame{5d4d7df0-6de7-4897-adee-e4b3828978f8}

不太普通的图片

题解

  1. stegsolve 中发现某个通道存在密码

0xGameyyds

  1. 在 rgb0 存在 lsb 特征,但是解不出来,带密码的 LSB 隐写,用 cloacked-pixel 解

https://github.com/livz/cloacked-pixel

1
2
3
4
5
6
7
$ python lsb.py 
LSB steganogprahy. Hide files within least significant bits of images.

Usage:
lsb.py hide <img_file> <payload_file> <password>
lsb.py extract <stego_file> <out_file> <password>
lsb.py analyse <stego_file>

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !