buu-8

蜘蛛侠呀

流量包里说没有压缩包,确实,这一次分离不出来,然后每一个

image-20210725203301812

所有的icmp包后面都跟了一串数据,使用tshark把这些全部提取出来

1
tshark -r out.pcap -T fields -e data > data.txt

image-20210725214344375

之后就是去重,把十六进制转为字符,去掉$$–START–$$ 和多余的空格行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
with open('data.txt', 'r') as file:
res_list = []
lines = file.readlines()
print('[+]去重之前一共{0}行'.format(len(lines)))
print('[+]开始去重,请稍等.....')
for i in lines:
if i not in res_list:
res_list.append(i)
print('[+]去重后一共{0}行'.format(len(res_list)))
print(res_list)

with open('data1.txt', 'w') as new_file:
for j in res_list:
new_file.write(j)
1
2
3
4
5
6
import binascii

with open('data1.txt','r') as file:
with open('data2.txt','wb') as data:
for i in file.readlines():
data.write(binascii.unhexlify(i[:-1]))

收获一张flag.gif,听闻已久的时间隐写终于见到了

image-20210725222335707

20换成0,50换成1

然后

image-20210725222407280

1
2
3
4
5
hash.digest() 
#返回摘要,作为二进制数据字符串值

hash.hexdigest()
#返回摘要,作为十六进制数据字符串值

[安洵杯 2019]easy misc

挖的坑是要填的

令人头大的read

image-20210727145442105

先看看别的

image-20210727145635019

这,算数吧,大概像个压缩包密码,那个式子算出来是7,密码7+NNULLULL???试了一下发现不对,七位数?

image-20210727151421374

在线表演翻车,找找问题在哪里,少了个,

image-20210727151519561

image-20210727151720687

很明显的词频隐写了,和read关联上了,再看看图

image-20210727152405044

分离出来一样的,盲水印,工具链接https://github.com/chishaxie/BlindWaterMark

image-20210727195327835

词频分析,然后对照

我跑出来了这样一个结果

1
QW8obWdIWT9pMkF-sd5REtRQSQWjVfXiE/WSFTajBtcw=

上网搜wp

1
QW8obWdIWT9pMkFSQWtRQjVfXiE/WSFTajBtcw==

我惊了,我大为震惊,那个r属实不符合逻辑啊,我看不懂但我大受震撼

按照wp的再base85就行

脚本放这里了

1
2
3
4
5
6
7
8
9
code_str = 'etaonrhisdluygw'
code_dict = {'a':'dIW','b':'sSD','c':'adE ','d':'jVf','e':'QW8','f':'SA=','g':'jBt','h':'5RE','i':'tRQ','j':'SPA','k':'8DS','l':'XiE','m':'S8S','n':'MkF','o':'T9p','p':'PS5','q':'E/S','r':'-sd','s':'SQW','t':'obW','u':'/WS','v':'SD9','w':'cw=','x':'ASD','y':'FTa','z':'AE7'}
base_str=''
for i in code_str:
i = code_dict[i]
base_str += i
print(base_str)


翻车故事

安装相关模块(踩雷故事增加了

image-20210727180515713

image-20210727181045672

image-20210727181330184

修改requirement.txt文件(我觉得我兜了一圈 opencv-python-4.3.0.38 不再支持 Python 2.7,

image-20210727181500305

合着我又装一遍轮子,冷静分析一下我刚才就应该把清华源的网址填进去

没必要啊,其实我已经装完了啊,傻子本傻(从修改requirement.txt那个就完全大可不必

[ACTF新生赛2020]music

解压缩出来是一个无法播放的m4a文件,用010打开,这玩意一堆A1,我实在是不知道是个啥

image-20210725225452816

去网上学习,get新技巧,使用010工具异或整份文件

image-20210725225604231

image-20210725225703781

mp3文件,不过不改后缀不是很影响播放,flag是念出来的,还是第一次见

寂静之城

社工题,亏得我把小说看完了,发现我来迟了,这个微博基本上是空的了,博主已设屏蔽,直接看wp吧http://www.damyahome.top/BUUCTF-misc-wp/

[GKCTF 2021]excel 骚操作

做道新题好了,平复情绪

image-20210725235851959

你看着像不像个二维码,缺角的那种

方法1

手动填色那也挺绝望的,研究脚本ing

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
# coding=utf-8
import xlwt
import xlrd
from xlutils.copy import copy


# 创建execl
'''
def create_execl(file_name):
wb = xlwt.Workbook()
ws = wb.add_sheet('Info')
ws.write(0, 0, "1")
ws.write(1, 0, "2")
ws.write(2, 0, "3")
ws.write(3, 0, "2")
wb.save(file_name)//
'''

# 单元格上色
def color_execl(file_name):
styleBlueBkg = xlwt.easyxf('pattern: pattern solid, fore_colour black;') # 黑色
rb = xlrd.open_workbook(file_name) # 打开t.xls文件
ro = rb.sheets()[0] # 读取表单0
wb = copy(rb) # 利用xlutils.copy下的copy函数复制
ws = wb.get_sheet(0) # 获取表单0
for j in range(ro.ncols):
for i in range(ro.nrows): # 循环所有的行列
result = ro.cell(i, j).value
if result == 1: # 判断是否等于1
ws.write(i, j, ro.cell(i, j).value, styleBlueBkg)
wb.save(file_name)


if __name__ == '__main__':
file_name = 'flag.xls'
#create_execl(file_name)
color_execl(file_name)

不得不说这是第一个爆改成功的脚本(是我菜了

略微修改一下行高,

image-20210726233226028

这很显然不是二维码,搜一下发现是汉信码,得有个专门的软件才能扫

找了个在线的解码http://www.efittech.com/hxdec.html

image-20210726234251079

。。。。。。。。。。手机下一个中国编码好了,扫一下

image-20210726235005308

方法2

image-20210726235505167

事实上还有更简单的方法,image-20210726235600081

image-20210726235647659

大概是这样了,里面的设置有自定义

派大星的烦恼

请认真读题!读题!!读题!!!不然真的会找不着北(别问我怎么知道的

image-20210727160231064

2244我找了好久(习惯直接翻出了点问题,22和44会指什么?01?10?先导出看看

image-20210727160814220

挺整齐的,但格式不像二维码

image-20210727162154990

转了个寂寞,出现了不可见字符,倒过来试试

image-20210727162246807

感觉很像flag但是错了,感觉这个思路没什么问题,拿脚本跑一下,成功(不得不说在线的着实不是很靠谱

1
2
3
4
5
6
7
8
9
10
def bin_to_str(s):
return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
a = "01101100 00101100 00001100 01101100 10011100 10101100 00001100 10000110 10101100 00101100 10001100 00011100 00101100 01000110 00100110 10101100 01100110 10100110 01101100 01000110 01101100 10100110 10101100 01000110 00101100 11000110 10100110 00101100 11001100 00011100 11001100 01001100"
a = a.split(' ')
flag = ''
for i in a:
test = i[::-1]#::-1表示将字符串倒序,因为题目提示屁股,我们可以考虑是反着来的。
flag += bin_to_str(test)

print(flag)