ISCC2021 MISC wp

## ISCC2021 MISC wp
@TOC

练武题

0x00 Retrieve the passcode

题目描述:

1
2
Scatter说他能解开这个古怪的密码,你呢?来试试吧!
Flag格式:ISCC{XXX},XXX为小写字符串,不包括空格

将scatter.txt的内容整理过后得到:

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
1:3:1  
1.25:3:1
1.5:3:1
1.75:3:1
2:3:1
2:2.75:1
2:2.5:1
2:2.25:1
2:2:1
2:1.75:1
2:1.5:1
1:2.25:1
1.25:2.25:1
1.5:2.25:1
1.75:2.25:1
1:1.5:1
1.25:1.5:1
1.5:1.5:1
1.75:1.5:1
3:3:1
3.25:3:1
3.5:3:1
3.75:3:1
4:3:1
3.25:2.25:1
3.5:2.25:1
3.75:2.25:1
4:2.25:1
4:2:1
4:1.75:1
4:1.5:1
3:1.5:1
3.25:1.5:1
3.5:1.5:1
3.75:1.5:1
3:1.75:1
3:2:1
3:2.25:1
3:2.5:1
3:2.75:1
5:3:1
5.25:3:1
5.5:3:1
5.75:3:1
6:3:1
6:2.25:1
6:2:1
6:1.75:1
6:1.5:1
5.75:1.5:1
5.5:1.5:1
5.25:1.5:1
5:1.5:1
5:2.25:1
5.25:2.25:1
5.5:2.25:1
5.75:2.25:1
5:2.5:1
5:2.75:1
7:3:1
7.25:3:1
7.5:3:1
7.75:3:1
8:3:1
8:2.75:1
8:2.5:1
8:2.25:1
8:2:1
8:1.75:1
8:1.5:1
9:3:1
9.25:3:1
9.5:3:1
9.75:3:1
10:3:1
10:2.75:1
10:2.5:1
10:2.25:1
9.75:2.25:1
9.5:2.25:1
9.25:2.25:1
9:2.25:1
9:2:1
9:1.75:1
9:1.5:1
9.25:1.5:1
9.5:1.5:1
9.75:1.5:1
10:1.5:1
11:3:1
11.25:3:1
11.5:3:1
11.75:3:1
12:3:1
12:2.75:1
12:2.5:1
12:2.25:1
12:2:1
12:1.75:1
12:1.5:1
11.75:1.5:1
11.5:1.5:1
11.25:1.5:1
11:1.5:1
11:1.75:1
11:2:1
11:2.25:1
11:2.5:1
11:2.75:1
11.25:2.25:1
11.5:2.25:1
11.75:2.25:1

先百度一下scatter
在这里插入图片描述
看到刚才整理的txt文件和百度查到的 初步猜想这是一个三维图像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
dot1 = [[1, 3, 1], [1.25, 3, 1], [1.5, 3, 1], [1.75, 3, 1], [2, 3, 1], [2, 2.75, 1], [2, 2.5, 1], [2, 2.25, 1], [2, 2, 1], [2, 1.75, 1], [2, 1.5, 1], [1, 2.25, 1], [1.25, 2.25, 1], [1.5, 2.25, 1], [1.75, 2.25, 1], [1, 1.5, 1], [1.25, 1.5, 1], [1.5, 1.5, 1], [1.75, 1.5, 1], [3, 3, 1], [3.25, 3, 1], [3.5, 3, 1], [3.75, 3, 1], [4, 3, 1], [3.25, 2.25, 1], [3.5, 2.25, 1], [3.75, 2.25, 1], [4, 2.25, 1], [4, 2, 1], [4, 1.75, 1], [4, 1.5, 1], [3, 1.5, 1], [3.25, 1.5, 1], [3.5, 1.5, 1], [3.75, 1.5, 1], [3, 1.75, 1], [3, 2, 1], [3, 2.25, 1], [3, 2.5, 1], [3, 2.75, 1], [5, 3, 1], [5.25, 3, 1], [5.5, 3, 1], [5.75, 3, 1], [6, 3, 1], [6, 2.25, 1], [6, 2, 1], [6, 1.75, 1], [6, 1.5, 1], [5.75, 1.5, 1], [5.5, 1.5, 1], [5.25, 1.5, 1], [5, 1.5, 1], [5, 2.25, 1], [5.25, 2.25, 1], [5.5, 2.25, 1], [5.75, 2.25, 1], [5, 2.5, 1], [5, 2.75, 1], [7, 3, 1], [7.25, 3, 1], [7.5, 3, 1], [7.75, 3, 1], [8, 3, 1], [8, 2.75, 1], [8, 2.5, 1], [8, 2.25, 1], [8, 2, 1], [8, 1.75, 1], [8, 1.5, 1], [9, 3, 1], [9.25, 3, 1], [9.5, 3, 1], [9.75, 3, 1], [10, 3, 1], [10, 2.75, 1], [10, 2.5, 1], [10, 2.25, 1], [9.75, 2.25, 1], [9.5, 2.25, 1], [9.25, 2.25, 1], [9, 2.25, 1], [9, 2, 1], [9, 1.75, 1], [9, 1.5, 1], [9.25, 1.5, 1], [9.5, 1.5, 1], [9.75, 1.5, 1], [10, 1.5, 1], [11, 3, 1], [11.25, 3, 1], [11.5, 3, 1], [11.75, 3, 1], [12, 3, 1], [12, 2.75, 1], [12, 2.5, 1], [12, 2.25, 1], [12, 2, 1], [12, 1.75, 1], [12, 1.5, 1], [11.75, 1.5, 1], [11.5, 1.5, 1], [11.25, 1.5, 1], [11, 1.5, 1], [11, 1.75, 1], [11, 2, 1], [11, 2.25, 1], [11, 2.5, 1], [11, 2.75, 1], [11.25, 2.25, 1], [11.5, 2.25, 1], [11.75, 2.25, 1]] # 得到五个点
plt.figure() # 得到画面
ax1 = plt.axes(projection='3d')
ax1.set_xlim(0, 15) # X轴,横向向右方向
ax1.set_ylim(15, 0) # Y轴,左向与X,Z轴互为垂直
ax1.set_zlim(0, 15) # 竖向为Z轴
color1 = ['r', 'g', 'b', 'k', 'm']
marker1 = ['o', 'v', '1', 's', 'H']
i = 0
for x in dot1:
ax1.scatter(x[0], x[1], x[2], c=color1[1],
marker=marker1[1], linewidths=4) # 用散点函数画点
i += 1
plt.show()

运行之后得到:在这里插入图片描述
密码口令是365728 然后解压压缩包 得到PDF文件
在这里插入图片描述

摩斯密码加密得到flag

0x01 海市蜃楼-1

题目描述:

1
或许你看到的只是海市蜃楼…

在这里插入图片描述
打开docx文件后发现了zip 文件的开头PK
修改后缀后 在解压文件中 可以找到flag

0x02 李华的红包

题目描述:

1
大年初一,李华给爸爸拜年,从事计算机行业的父亲发给李华一张图片和一张银行卡。父亲告诉李华密码就藏在图片中,但是李华打开图片后却百思不得其解。你能帮助李华拿到密码吗?

用binwalk 分离出来一个txt文件
在这里插入图片描述
这个图片很明显不完全 修改宽高后得到:
在这里插入图片描述
联想到敲击码
在这里插入图片描述
得出flag

0x03 美人计

题目描述:

1
美人说的话里有解题提示,但是美人的话不能全信。

打开压缩包 得到一张图片和一个docx 文件
在图片的属性中可以查到

1
Try AES, and you will get the flag. ISCC2021

得到信息AES加密 密钥是ISCC2021

扫描docx里面的二维码 得到

1
U2FsdGVkX1/Ka+sScszwQkwhO+VLiJwV/6IFg5W+TfNHGxG2qZsIr2iwMwb9X9Iu 3GuGWmPOtO27z8vNppD2D50fwsD+8VWhdtW9J4cewYivH/Z/7GoUvcJXJMrvf+vu +CBqWDGp6HWd0e5whGhuzlK0ZtBcDZdPDSIHA7+GuUlifp8PcFCtJPgiuk143REE +pKFiSJXolXLR1vJCdGY9w5mXFbiWPrb2U7r/v5noP8=

进行AES加密三次后得到

1
y0u_h@ve_fal1en_intO_tHe_tr@p_0f_tHe_be@uty_!

把docx文件修改后缀为zip后 得到第二个二维码
在这里插入图片描述
扫码后进行DES解密 得到flag

0x04 检查一下

题目描述:

1
你真的了解png文件的格式吗?

直接binwalk分离得到

在这里插入图片描述

1
1111111000100100110000111111110000010011011110010101000001101110100111010011010010111011011101000000111011110101110110111010010111101110001011101100000101110111000010010000011111111010101010101010111111100000000011100100110100000000100101101110000101010101000001101000011101011011011100101000001110010010001111011110010001100000101101100111111001010110101101110000100011110100110001001100010010101110000111111111110010100110101001111110010110001100110111110111000110011110010001111001110000100011010000110100100000001011001010101101110100011011010011100011101001111011111000101001101101101100101010001111101000000000011101101101010001011011111110000011110000101011010100000101011110010101000101101011101001010011001011111001010111010110101111000001101001101110100101010000010100111011000001000011101000011001001011111110100100100000111100110

一共841位,猜测是29*29的二维码,直接使用脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from PIL import Image

MAX = 29
pic = Image.new("RGB",(MAX, MAX))
str = "1111111000100100110000111111110000010011011110010101000001101110100111010011010010111011011101000000111011110101110110111010010111101110001011101100000101110111000010010000011111111010101010101010111111100000000011100100110100000000100101101110000101010101000001101000011101011011011100101000001110010010001111011110010001100000101101100111111001010110101101110000100011110100110001001100010010101110000111111111110010100110101001111110010110001100110111110111000110011110010001111001110000100011010000110100100000001011001010101101110100011011010011100011101001111011111000101001101101101100101010001111101000000000011101101101010001011011111110000011110000101011010100000101011110010101000101101011101001010011001011111001010111010110101111000001101001101110100101010000010100111011000001000011101000011001001011111110100100100000111100110"
i=0
for y in range (0,MAX):
for x in range (0,MAX):
if(str[i] == '1'):
pic.putpixel([x,y],(0, 0, 0))
else:
pic.putpixel([x,y],(841,841,841))
i = i+1
pic.show()
pic.save("flag.png")

扫码得到flag

0x05 我的折扣是多少

题目描述:

1
小c同学去参加音乐会,在官网买票时发现了有提示消息,提供给的有“give_me_discount”的压缩包,好奇的小c下载下来,但却无从下手,为了节省零花钱,你能帮帮他吗?

运行give.exe可以得到

1
pass1{\u006b\u0072\u0077}

把中间的进行unicode转码得到:pass1{krw}

把me.zip文件拖到010 editor中
在这里插入图片描述
把这里的base编码进行转换得到:pass2{gcc666}

那么压缩包的密码就是krwgcc666 打开压缩包得到

1
eW91Zm91bmRtZT8=

base64解码得到
在这里插入图片描述
最后使用MP3Stego

1
decode -X -P youfoundme? discount.mp3

在这里插入图片描述
再进行一次base32解码 即可

0x06海市蜃楼-2

题目描述:

1
嗯!你看到的就是海市蜃楼…

foremost分离图片,能够得到一个加密的压缩包
得到学长的提示 这是一个组合题 在海市蜃楼-1中的 true.xml中可以发现突破
在这里插入图片描述
修改为jpg文件
在这里插入图片描述
根据海市蜃楼-1的flag还有图片得到 压缩包的密码zhongnanshan
扫码得到ZWFzeQ==
base解码得到easy
foremost得到压缩包口令也为easy
解开得到flag

0x07Hack the Victim

题目描述:

1
2
3
IoTeX 作为硅谷开源项目成立于2017年,致力于构建全球领先的以隐私为中心的高性能区块链平台。IoTeX旨在成为智能万物、开发者与人之间协作与价值交换的可信计算和应用平台,致力于将区块链、可信硬件与边缘计算结合起来,实现万物可信互联,用区块链接世界。
Founded as an open-source platform in 2017, IoTeX is building the Internet of Trusted Things, an open ecosystem where all “things” — humans, machines, businesses, and DApps — can interact with trust and privacy.
题目描述详见附件。
1
2
3
4
5
6
7
8
Victim 为含有漏洞的智能合约,在 Rinkeby 测试网络的合约地址为:
0x68D28fE315E6A344029D42915Fbc7af4261AB833
接口为:
contract Victim {
function withdraw() public returns (string memory ){
return "ISCC{xxxxx}";
} }
请编写攻击合约,实现对 Victim 的攻击,获取 flag。

合约地址:

1
https://rinkeby.etherscan.io/address/0x68D28fE315E6A344029D42915Fbc7af4261AB833

在这里插入图片描述
十六进制转字符即可得到flag
在这里插入图片描述

0x08小明的宠物兔

题目描述:

1
小明的宠物兔总是发出一些神秘的声音,小明很想知道兔兔在干什么,你能帮他翻译一下吗?

将图片进行binwalk分离在这里插入图片描述
得到flag.txt的内容

1
U2FsdGVkX18kNy7RlBvcV9WJsqa+oxvdd0Ir86U2cU2996N6ltZi7VVOaw==

应该是rabbit加密的密文

图片上提示 碰撞 应该是要用的CRC32碰撞
把py脚本修改一下 补全 特殊字符
CRC32碰撞 得到加密压缩包key.zip内容

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
┌──(kali㉿kali)-[~/桌面/Python/CRC32]
└─$ python3 crc32.py reverse 0x3dacac6b
4 bytes: {0x47, 0x18, 0x87, 0xce}
verification checksum: 0x3dacac6b (OK)
5 bytes: (0_0) (OK)
5 bytes: DCr4m (OK)
6 bytes: 1QhloU (OK)
6 bytes: 3mmr6H (OK)
6 bytes: 49Gqqk (OK)
6 bytes: 5Uumn6 (OK)
6 bytes: 7ips7+ (OK)
6 bytes: 8Gpbyp (OK)
6 bytes: 9G1Sbi (OK)
6 bytes: EHZxWz (OK)
6 bytes: F93jxv (OK)
6 bytes: I6mk_a (OK)
6 bytes: J+wTt) (OK)
6 bytes: K+6eo0 (OK)
6 bytes: KGEHkt (OK)
6 bytes: N/jUuJ (OK)
6 bytes: O/+dnS (OK)
6 bytes: O3d8oG (OK)
6 bytes: TX.K94 (OK)
6 bytes: Uy1jKa (OK)
6 bytes: XJju5k (OK)
6 bytes: YJ+D.r (OK)
6 bytes: Zvoklv (OK)
6 bytes: a3H1hL (OK)
6 bytes: dG(pwf (OK)
6 bytes: e7U0i/ (OK)
6 bytes: fgb2/o (OK)
6 bytes: g6AbXj (OK)
6 bytes: kHvqPq (OK)
6 bytes: kT9-Qe (OK)
6 bytes: lQqOzZ (OK)
6 bytes: vwW0Z8 (OK)

5字节 密钥为(0_0) rabbit解码 即可得到flag

0x09区块链

题目描述:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
智能合约
Flag格式:flag{XXX}


pragma solidity ^0.7.0; //指定所需的编译器版本
//SPDX-License-Identifier: UNLICENSED

contract look_look {
function sloc111() public pure returns (string memory){ //public智能合约外部和内部都可使用的方法
return "flag{}";
}
}



合约地址: 0x0ed72dfd4c63dd97df8fec07e5a6bba466c6adf5

挂代理 访问https://rinkeby.etherscan.io
在这里插入图片描述
输入合约地址 点击Contract
在这里插入图片描述
选择UTF-8得到flag

总结

这次ISCC2021比赛学到了不少东西 对于CRC32脚本的修改 还有 智能合约 区块链都有了一定的了解 学习了翻墙 也熟悉了kali的用法
跟着复现就会有收获

Prev:
ISCC2021-Re部分题解
Next:
BUU-REVERSE-rsa
catalog
catalog