第二届金盾信安杯部分wp

misc

1.注意数字

打开压缩包是个图片,分离得到一个加密压缩包,看似加密实则是伪加密,修正后得到1.txt,是一个多层base64,解密后得到
第二届金盾信安杯部分wp_第1张图片

但是这并不是flag,题目提示注意数字,图片上是李白的诗,有数字3和9,一开始以为是凯撒或者栅栏,试过之后无果,就去查还有哪些移位密码,找到仿射密码比较符合已知条件解密得到flag
第二届金盾信安杯部分wp_第2张图片

2.小火龙

下载文件是个jpg图片放到winhex里查看,发现是png图片,拉到最底部,看到压缩包flag.txt,和pass
第二届金盾信安杯部分wp_第3张图片

手动分离得到压缩包,然后用密码打开得到flag
第二届金盾信安杯部分wp_第4张图片

3.我和十六有个约定

打开压缩包有一个图片和一个加密压缩包,图片放入winhex里面在最底部发现key,十六进制转文本得到压缩包密码
第二届金盾信安杯部分wp_第5张图片

打开压缩包,发现第一个是base64转图片,转过之后是一个二维码定位符,另一个是一个jpg镜像,拿脚本跑一下,得到图片
第二届金盾信安杯部分wp_第6张图片
拿ps把定位符装上扫一下得到flag

4.五瓶药水

很明显是crc碰撞,这里贴上队里大佬的脚本

import string
import binascii
import sys

def crcfunc(crc):
    dic = string.printable
    crc = "0X" + str(crc)
    for i in dic:
        for j in dic:
            for k in dic:
                for l in dic:
                    text = i + j + k + l
                    text = text.encode()
                    if hex(binascii.crc32(text)).upper() == crc.upper():
                        print(crc, ':', text.decode())
                        sys.exit()
                    else:
                        pass

def main():
    crc = int(input("请输入CRC值:"))
    crcfunc(crc)

if __name__ == '__main__':
    main()

把所有的压缩包都破解出明文,排列组合拼接后解base64. 依次尝试作为压缩包密码,解得flag。

from itertools import combinations
import base64
bases = ['cG90', 'aW9u', 'Z2Vu', 'YjEy']
for tup in list(combinations(bases, 3)):
    print(base64.b64decode(''.join(tup) + 'Mw==').decode())

5.4位数字

爆破打开压缩包,得到路飞的烦恼,里面是社会主义核心价值观加密,拿去网站解密得到brainfuck,解密维吉尼亚,但是不知道密钥,就查看另一个文件
第二届金盾信安杯部分wp_第7张图片

根据源码得到 98,97,98,121,对应ascii表的 baby,拿去解维吉尼亚密码,得到flag

re

EasySMC

查壳,无壳
第二届金盾信安杯部分wp_第8张图片

运行一下,发现让输入flag
第二届金盾信安杯部分wp_第9张图片

用OD搜索字符串Please input your flag:
在这里插入图片描述

然后查看代码发现其就是一个base64加密,把我们的flag加密后与ZmxhZ3tTTUNfTWFrZXNfWW91X0Z1biF9比较,
所以对ZmxhZ3tTTUNfTWFrZXNfWW91X0Z1biF9解密就得到flag了。
第二届金盾信安杯部分wp_第10张图片

web

过滤了很多,但是没有禁用%,利用cmd=dir%09.%09查看当前文件目录,得到flag文件名,利用file -f报错查看,得到flag
Paylod:cmd=file%09-f%09F14g_1s_h4rehaha.php%09

你可能感兴趣的:(web,misc,re,信息安全)