攻防世界进阶区MISC ——56-60

56.low

得到一张bmp,世纪之吻,扔进kali中,binwalk,zsteg,无果,再放进stegsolve中,虽然发现小的数据块,但是过滤通道得不到任何信息,猜测是要用脚本进行

# lsb隐写
import PIL.Image as Image
img = Image.open('low.bmp')
img_tmp = img.copy()
pix = img_tmp.load()
width,height = img_tmp.size
for w in range(width):
   for h in range(height):
      if pix[w,h]&1 == 0:
	     pix[w,h] = 0
 	 else:
    	 pix[w,h] = 255
img_tmp.show()

处理后得到一张有二维码的图片

image

扫描后得到flag

image

57.misc1

题目中得到一串字符:d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd

参考了一下WP,得知是先将字符串两个一组,当做十六进制转化为十进制,再将每个值减去128,再作为ascii转化为字符串就可以得到flag

java代码脚本:

public class Main {
public static void main(String[] args) {
    String str = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd";
    int count = 0;
    for (int i = 0; i < str.length(); i++) {
        count++;//计数,保证两个为一组
        if (count == 2) {
            String sp_str = str.charAt(i - 1) + "" + str.charAt(i);// 两个为一组作为十六进制
            Integer inte = Integer.parseInt(sp_str, 16);//转化为十进制
            char ch = (char) (inte - 128);// 作为ascii转化为字符串
            System.out.print(ch);
            count = 0;
        }
    }
}

}
python代码脚本:

string = 'd4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd'

str = ''
for i in range(0, len(string), 2):
	str += chr(int(string[i : i + 2], 16) - 128)#两个为一组,转化为十进制,转化为ascii
print(str)

得到flag

image

58.challenge_how_many_Vigenère

得到一串字符,猜测是加密了,题目有关键词维吉尼亚,用这个网站:https://www.guballa.de/vigenere-solver

image

注意用的时候,language选择English,Key Length填写3-100,得到解密后的内容,是爱丽丝梦游仙境,将Alice’s Adventures in Wonderland,根据题目,将所有的字符删去,将大写改为小写,用之前解密时得到的key加密:ohihzkssefkmqxqbkihybnynvndzkdlqvhwhgywaftmeteecqprzjczvnmhnzwyasmlwbwvaqitejbfofycejjlcbpk

image

得到字符串用LCTF{xxxxxxx}包装一下,得到flag

LCTF{osqjdcsvzjxfkoutsvdmoqcegnqc}

59.Miscellaneous-300

得到真加密的zip,没有任何提示,想起之前做过的一道题就是将zip的名字作为密码,试一下,解开了

image

多尝试了几个,发现都是这样的,网上找的脚本:

import zipfile
import re

file_name = 'pic/' + 'f932f55b83fa493ab024390071020088.zip'
while True:
try:
    zf = zipfile.ZipFile(file_name)
    re_result = re.search('[0-9]*', zf.namelist()[0])
    passwd = re_result.group()
    zf.extractall(path='pic/', pwd=re_result.group().encode('ascii'))
    file_name = 'pic/' + zf.namelist()[0]
except:
    print("get the result")

这个脚本需要运行好长时间,最后得到一个加密的zip,用ARCHPR暴力破解,解密后,将音频扔入Audacity中观察频谱图,果然有发现

image

得到的就是flag

60.很普通的Disco

得到一个WAV,扔入Audacity中,看了一下频谱图,没有发现,观察开头,放大,正常都是波形图,而开头单独有一段是断点式图,有问题

image
image

将其转化为高为1,低为0,转化为二进制:

110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101

二进制转十进制再转字符串

脚本:

a='110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101'
flag=''
for i in range(15):
	b=a[i*7:i*7+7]
	c=int(b,2)
	flag+=chr(c)
print(flag)

得到flag

image

posted @ 2022-05-04 14:46  CPYQY_orz  阅读(196)  评论(0)    收藏  举报