就第一天做了几个题,第二天没人做我也直接开摆!
WEB
Loginme
代码审计,伪造X-Real-IP就行了,太简单的代码了没啥必要
MISC
fumo_xor_cli
nc进去按住回车有链接,访问进去是微信的专访,底部照片可以发现有一些点,但不是缩略图,ps观察坐标发现是间隔9个位置
写脚本提取就行了
题目叫做xor cli,nc进去后会有彩色段,那就是把彩色的空间内容跟图片提出来的彩色色块进行xor就好了,这里的话懒得贴图了,你们也看得懂(主要是图片删了
彩色代码这里直接这样提取 nc ip port > 123
然后把非彩色内容手工删掉就ok了
撰写脚本
from PIL import Image
pic = Image.open('TpMSkq.png')
f = open('aaaaa','r').readlines()
for i in range(len(f)):
f[i] = f[i].split('[')
for j in range(1, len(f[i])):
f[i][j] = f[i][j].split(';')
w,h = pic.size
img = Image.new('RGB',(100,134),(255,255,255))
k = 1
b = 1
time=0
img2 = Image.new('RGB',(100,134),(0,0,0))
for i in range(100):
for j in range(1,134):
tmp = pic.getpixel((b,k))
#print((tmp[0]^int(f[i][j][2]),tmp[1]^int(f[i][j][3]),tmp[3]^int(f[i][j][4][:-3])))
#img.putpixel((i,j-1),tmp)
#img2.putpixel((i,j-1),((int(f[i][j][2]),int(f[i][j][3]),int(f[i][j][4][:-3]))))
#print((int(f[i][j][2]),int(f[i][j][3]),int(f[i][j][4][:-3])))
img.putpixel((i,j-1),(tmp[0]^int(f[i][j][2]),tmp[1]^int(f[i][j][3]),tmp[2]^int(f[i][j][4][:-3])))
#pic.putpixel((i,j-1),(int(f[i][j][2]),int(f[i][j][3]),int(f[i][j][4][:-3])))
if(k<=1200):
k+=9
else:
break
if(b<=w):
b+=9
k=1
else:
break
time+=1
if time == 10:
exit
img.show()
#img2.show()
#img.save('1.png')
print(w,h)
最后就能看见了
This_is_A_tree
遍历data
Q2hpbmVzZSB0cmFkaXRpb25hbCBjdWx0dXJlIGlzIGJyb2FkIGFuZCBwcm9mb3VuZCEgU28gSSBXYW50IEdpdmUgWW91IE15IEZsYWcgQnV0IFlvdSBOZWVkIERlY29kZSBJdC5FbmpveSBUaGUgRmxhZyEhOuW4iCDlhZEg5aSNIOaNnyDlt70g6ZyHIOaZiyDlp6Qg5aSn6L+HIOiuvCDlmazll5Eg6ZyHIOaBkiDoioIg6LGrIA==
解码获得
Chinese traditional culture is broad and profound! So I Want Give You My Flag But You Need Decode It.Enjoy The Flag!!:师 兑 复 损 巽 震 晋 姤 大过 讼 噬嗑 震 恒 节 豫
六十四卦,wiki有对应照片,转bin转字符就行了,当然bjdctf出过这种题目,甚至还有脚本
转换就行了
in_the_vaporwaves
错失三血的题目属于是,直接拖入au,然后调整一下
拉大,然后看波形就能看出来了
morse
easydsp
第一天确实没做出来,赛后问了zbr,然后尝试了一下发现想复杂了,罢了
dsp方向的题目也出过一些,所以这里我还是使用万能的matlab来进行解题,获得四个数据我第一时间就想到肯定是音频数据矩阵内容,那么写个脚本把这些音乐还原
clear all;
clc;
data=[];
for i=1:4
fileName = ['data' num2str(i) '.txt'];
a = load(fileName);
data=[data,a];
end
fs = 44100;
audiowrite("four.wav",data,fs)
这样,四个通道都写入了一个wav文件,可以拖入au观察波形
主要是data3波形太过有趣,整个时间全部都再弄data3的数据(尝试了fft,频域隐写解密,信号分离,都白给了)
以至于忽略了data1和data2听起来基本没什么区别的情况
其次结合音频数据采样的范围,我这边找了正常的音频进行观察音频数据采样范围,基本都在-1~1之间,说明可能存在混叠,那么将data1-data2,尝试观察波形
观察波形的走向,可以明显看出他的波形规律是2PSK的编码方式,可以看这个图
经典通信知识了。
结合波形图与数据计算,可以获得单位周期存在1000个采样点,同时,可以计算出最高可以完整编码126个bit的采样,应该是7bit编码字符串的方式
最后对数据进行撰写脚本,输出bin值
clear all;
clc;
load data1.txt;
load data2.txt;
data = data1-data2;
bits=[000];
for m = 1:1000:126000
bits = [bits,bit(data(m:m + 1000))];
end
disp(['bits=' num2str(bits(2:end))])
function [y]=bit(x)
if sum(x(200:300)) / 100 > 0
y =1;
else
y =0;
end
end
最后转换即可
暂无评论内容