Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, возобновили пет-проект по киберквизу, вопросы сейчас начали собирать, тема полезная считаем, есть даже отдельные паблики пример, но основный тейк в другом. Добавили в проект первую фичу для проверки дизайна на безопасность спецификации OpenAPI.
Чем лучше спека определена на ранних этапах, тем разработчикам проще узнать об уязвимостях, на которые следует обратить внимание до и во время реализации API контракта.
В общем прикрутили линтер, доработав немного правила, есть уже похожие решения пример, но у нас цель иная, сделать конвеер инструментов для теста. Так же прикрутили туда нейронку, модно же. По архитектуре решения смотрите следующий пост.
На тест дается 100 токенов, перейдите в "Настройки", чтобы их получить и пробуйте, держится всё на 8 цпу бричке, есть вероятность тотал провала.
Сайт повисит какое то время, потом уйдет на доработку, квиз позже расширим вопросами и на постоянку повесим.
https://inspectors.tech/
Безопасный дизайн API — это первый шаг к безопасности API.
Чем лучше спека определена на ранних этапах, тем разработчикам проще узнать об уязвимостях, на которые следует обратить внимание до и во время реализации API контракта.
В общем прикрутили линтер, доработав немного правила, есть уже похожие решения пример, но у нас цель иная, сделать конвеер инструментов для теста. Так же прикрутили туда нейронку, модно же. По архитектуре решения смотрите следующий пост.
На тест дается 100 токенов, перейдите в "Настройки", чтобы их получить и пробуйте, держится всё на 8 цпу бричке, есть вероятность тотал провала.
Сайт повисит какое то время, потом уйдет на доработку, квиз позже расширим вопросами и на постоянку повесим.
https://inspectors.tech/
Полезное дополнение к draw.io для отрисовки схем https://app.eraser.io/.
Архитектура решения:
Fullstack Next.js 15
Mongodb + prisma
Typescript + zod
Redis + bullmq
LLM deepseek-r1:1.5b
В процессе разработки решения и прикручивания ML, столкнулись с проблемой парсинга результатов и передачей их на анализ. Если чекнуть медиум.ком, то обычно это плагин openapi и API чатгпт, но шелекей нам жалко, поэтому смотрим в сторону localhost.
Для локальной работы плагин так же можно юзать от опенапи, просто меняем адрес нейронки. Но что оказалось, так это слабые нейрокни до 8b не могут нормально обработать промпт "Верни объект json" и возвращают все что угодно, сначала танцевали с регулярками для очистки вывода, но это продолжалось до конца. И как будто бы должно быть другое решение? И его нашли для себя. Ollama добавила возможность жестко указать тип возвращаемых данных ответа. Вместо openapi берем плагин ламы и задаём чат с ним.
https://ollama.com/blog/structured-outputs
Получаем jsonы для парсинга.😎
Архитектура решения:
Fullstack Next.js 15
Mongodb + prisma
Typescript + zod
Redis + bullmq
LLM deepseek-r1:1.5b
В процессе разработки решения и прикручивания ML, столкнулись с проблемой парсинга результатов и передачей их на анализ. Если чекнуть медиум.ком, то обычно это плагин openapi и API чатгпт, но шелекей нам жалко, поэтому смотрим в сторону localhost.
Для локальной работы плагин так же можно юзать от опенапи, просто меняем адрес нейронки. Но что оказалось, так это слабые нейрокни до 8b не могут нормально обработать промпт "Верни объект json" и возвращают все что угодно, сначала танцевали с регулярками для очистки вывода, но это продолжалось до конца. И как будто бы должно быть другое решение? И его нашли для себя. Ollama добавила возможность жестко указать тип возвращаемых данных ответа. Вместо openapi берем плагин ламы и задаём чат с ним.
https://ollama.com/blog/structured-outputs
To pass structured outputs to the model, the format parameter can be used in the Python or JavaScript libraries.
import ollama from "ollama";
async function fetchJsonResponseForSingleIssue(issue, prompt) {
const response = await ollama.chat({
model: process.env.LLM || "deepseek-r1:7b",
stream: false,
format: {
type: "object",
properties: {
path: {
type: "string"
},
threat: {
type: "boolean"
},
recommendations: {
type: "array",
items: {
type: "string"
}
},
vulnerability: {
type: "string"
}
},
required: ["path", "threat", "recommendations", "vulnerability"]
},
messages: [
{
role: "system",
content: `
You are an expert in API and OpenAPI security. Your task is to analyze the results of the OpenAPI security linter according to the OWASP API Security rules.
You will be provided with:
1. The linter output containing detected security issues.
Your objective:
- Carefully analyze the linter's findings.
- Extract relevant security issues and recommendations for mitigation.
- set the threat field TRUE if the defect is considered positive, FALSE if not
`
},
{ role: "user", content: JSON.stringify(issue, null, 2) }, // Отправляем один элемент
{ role: "user", content: prompt }
]
});
return JSON.parse(response.message.content);
}
Получаем jsonы для парсинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Глянул топ репортов по произвольному редиректу и заметил супер свежий с большим количеством лайкосиков...интересно что там?
Редактирование элементов через f12
вот и думайте
https://github.com/reddelexc/hackerone-reports/tree/master
вот и думайте
https://github.com/reddelexc/hackerone-reports/tree/master
All Semgrep Private Rules
Выгрузили все фришные и приватные рулзы с https://semgrep.dev/r кроме semgrep-secrets (не получилось :/ ). Есть пустые наборы правил, name фигурировал в API, вот и скачались со всеми.
Выгрузили все фришные и приватные рулзы с https://semgrep.dev/r кроме semgrep-secrets (не получилось :/ ). Есть пустые наборы правил, name фигурировал в API, вот и скачались со всеми.
1 4 2 1
Web Archive’s CDX Server API Response
wayback-cdx-server - API для Web archive с возможностями встроенных фильтров и выдачи в разных форматах.
Публично доступные атрибуты индекса (PARAMETERS):
-
-
-
-
-
-
-
-
Запрос без параметров вернет много информации по всем поддоменам (с временными метками и статусами ответа сервера), с которой трудно работать, поэтому используем фильтры.
Low Hanging Fruit Cases:
⚪️ 1) Отследить изменения определенной страницы, например
⚪️ 2) Поиск pdf файлов, js и комбинированный поиск
*при использовании нескольких filter= запрос будет рассматриваться как "и", поэтому лучше выполнять два отдельных запроса и мапить в другом.*
⚪️ 3) Вывести только URLs без лишней информации
⚪️ 4) Поиск API и сваггера
Далее дело творчества и автоматизации что еще можно стащить.😻
wayback-cdx-server - API для Web archive с возможностями встроенных фильтров и выдачи в разных форматах.
https://web.archive.org/cdx/search/cdx?PARAMETERS
Публично доступные атрибуты индекса (PARAMETERS):
-
url (обязательный) - URL-адрес для поиска. Можно использовать *, /admin, ?shoes=.-
output- формат вывода: json, text, xml, cdx. -
fl - указывает, какие поля возвращать сервером CDX "timestamp","mimetype" и др.-
collapse - убирает дубликаты по указанному полю (например, urlkey, timestamp, digest). -
from / to - указывает временной диапазон (формата YYYYMMDDHHMMSS). -
filter - фильтрация по значениям в полях (смотри тут). -
limit - ограничение количества результатов. -
matchType - тип сопоставления URL (exact, prefix, host, domain).Запрос без параметров вернет много информации по всем поддоменам (с временными метками и статусами ответа сервера), с которой трудно работать, поэтому используем фильтры.
https://web.archive.org/cdx/search/cdx?url=*.example.ru
Low Hanging Fruit Cases:
/admin раньше была 200, далее закрыта 401, удалена 404https://web.archive.org/cdx/search/cdx?url=example.com/admin&fl=timestamp,statuscode
https://web.archive.org/cdx/search/cdx?url=*.example.com/*&fl=timestamp,original,mimetype&filter=mimetype:application/pdf
# js
https://web.archive.org/cdx/search/cdx?url=*.example.com/*.js&fl=timestamp,original,mimetype&filter=mimetype:application/javascript
# комбинированный для поиска потенциально чувствительных или технических файлов фильтрами архива
https://web.archive.org/cdx/search/cdx?url=*.example.ru/*&collapse=urlkey&output=text&fl=original&filter=original:.*\.(xls|xml|xlsx|json|pdf|sql|doc|docx|pptx|txt|git|zip|tar\.gz|tgz|bak|7z|rar|log|cache|secret|db|backup|yml|gz|config|csv|yaml|md|md5|exe|dll|bin|ini|bat|sh|tar|deb|rpm|iso|img|env|apk|msi|dmg|tmp|crt|pem|key|pub|asc|py|rb|php|java|cpp|c|h|ts|jsx|tsx|go|rs|toml|properties|cfg|cnf|ps1|kdbx|dockerfile|compose\.yml|compose\.yaml|gitlab-ci\.yml|github/workflows/.*\.yml|sqlite|db3|ndjson|rdf|log\.[0-9]+|session|rdb|lst|dat)$
# греп ПОСЛЕ загрузки
curl -s "https://web.archive.org/cdx/search/cdx?url=*.example.ru/*&collapse=urlkey&output=text&fl=original" \
| grep -Ei '\.(xls|xml|xlsx|json|pdf|sql|docx?|pptx?|txt|git|zip|tar\.gz|tgz|bak|7z|rar|log|cache|secret|db|backup|ya?ml|gz|config|csv|md|md5|exe|dll|bin|ini|bat|sh|deb|rpm|iso|img|env|apk|msi|dmg|tmp|crt|pem|key|pub|asc|py|rb|php|java|cpp|c|h|ts|jsx?|tsx|go|rs|toml|properties|cfg|cnf|ps1|kdbx|dockerfile|compose\.ya?ml|gitlab-ci\.ya?ml|github/workflows/.*\.ya?ml|sqlite|db3|ndjson|rdf|log\.[0-9]+|session|rdb|lst|dat)$'
*при использовании нескольких filter= запрос будет рассматриваться как "и", поэтому лучше выполнять два отдельных запроса и мапить в другом.*
# в текстовом виде
https://web.archive.org/cdx/search/cdx?url=*.example.ru/*&collapse=urlkey&output=text&fl=original
# json для передачи stout в nuclei, katana etc.
https://web.archive.org/cdx/search/cdx?url=*.example.ru/*&collapse=urlkey&fl=original&output=json
# распарсить и отдать в httpx
curl -s "https://web.archive.org/cdx/search/cdx?url=*.target.com/*&collapse=urlkey&fl=original&output=json" \
| jq -r '.[1:][] | .[0]' \
| httpx -title -status-code
curl -s "https://web.archive.org/cdx/search/cdx?url=*.example.com/*&fl=original&collapse=urlkey&output=text" \
| grep -Ei '/(api|v1|v2|graphql|rest|ajax|backend|service|json|data|swagger)/'
Далее дело творчества и автоматизации что еще можно стащить.
Please open Telegram to view this post
VIEW IN TELEGRAM
102 1
Forwarded from siko dump
Там вышел новый ресерч Кетла про смаглинг http1mustdie.com, а с ним и новая лаба, я решил выкатить сюда райтап до официального, который будет на стриме Кетла 15 августа, некий эксклюзивчик
В начале нужно было понять как смаглить, для этого можно либо самому тыкаться, либо запустить Parser discrepancy scan, который добавили в экстеншн смаглер вместе с выпуском ресерча. Он сразу находит, что можно смаглить табом и пробелом (скрин1)
Дальше нужно было проверить есть ли смаглинг и сделать 0.CL, для этого советую вам использовать турбо интрудер(0cl-poc.py), я недолго искал подходящий early-response гаджет, использовал /resources/images/avatarDefault.svg, вы можете пробовать любой другой статик файл. В итоге attack пейлоад выглядел как-то так
После того как у вас получился 0.CL смаглинг, нужно⚡️ найти гаджет для хсс, а находится он на любом посте в User-Agent хедере, вот пример пейлоада:
⚡️ зачейнить 0.CL -> CL.0 с запросом с хсс как в ресерче.
Всё, осталось только запустить сплоит и ждать пока бот сходить на наш хсс. Я использовал сплоит турбо интрудера 0cl-exploit.py, чуть доработал его и после того как пейлоад отработал на victim в самом скрипте, я убрал запрос victim из него (+ добавил в цикл time.sleep(1), чтоб наверняка сработало на боте)
Сплоит выкладывать не буду, чтобы для решения вы не просто копипастили, но скрин сплоита выложу. (если уж сильно хочется решить, будете переписывать с картинки 😁)
В начале нужно было понять как смаглить, для этого можно либо самому тыкаться, либо запустить Parser discrepancy scan, который добавили в экстеншн смаглер вместе с выпуском ресерча. Он сразу находит, что можно смаглить табом и пробелом (скрин1)
Дальше нужно было проверить есть ли смаглинг и сделать 0.CL, для этого советую вам использовать турбо интрудер(0cl-poc.py), я недолго искал подходящий early-response гаджет, использовал /resources/images/avatarDefault.svg, вы можете пробовать любой другой статик файл. В итоге attack пейлоад выглядел как-то так
POST /resources/images/avatarDefault.svg HTTP/1.1
Host: 0a34003e03a3b32f80cf037000a6005e.web-security-academy.net
Content-Length : %s
После того как у вас получился 0.CL смаглинг, нужно
User-Agent: "/></form></section><img src=x onerror=alert()>
Всё, осталось только запустить сплоит и ждать пока бот сходить на наш хсс. Я использовал сплоит турбо интрудера 0cl-exploit.py, чуть доработал его и после того как пейлоад отработал на victim в самом скрипте, я убрал запрос victim из него (+ добавил в цикл time.sleep(1), чтоб наверняка сработало на боте)
Сплоит выкладывать не буду, чтобы для решения вы не просто копипастили, но скрин сплоита выложу. (если уж сильно хочется решить, будете переписывать с картинки 😁)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 3
Pull Request Security Testing (PRST) - новая практика DevSecOps
Захотелось выделить в отдельную практику анализа кода и что мне сделаете? Анализ PR, семгреп, гитликс, чехов? Ну да, а как запускать их, на каждый pr прям всеми 10к+ правилами или перед этим определить через tokei стек и точечно ударить проверками. Это все круто, но куда мы без "AI" конечно же, не последние крипы. Поэтому мы поговорим о такой тулзе как CodeRabbit.
Представляет из себя PR AI Agent Reviewer — cli + vcs plugin, который делает очень интересные вещи, прокидывая автоматизированный security code review прямо в пулл-реквест разрабу (см. рисунки) битбакета, гитхаба и др.:
💚 предлагает улучшения по коду;
💚 дает разъяснения по данному пээру (summarize), что вообще произошло и на что повлияло, какие файлы затронуло;
💚 показывает визуализацию потока данных;
💚 проверяет на безопасность с помощью внешних инструментов и даёт по результатам их работы свой ответ.
В конечном итоге CodeRabbit опубликует свой обзор кода в виде комментариев к запросу на извлечение. Что интересно, это как он включает те или иные инструменты, например если PR содержит достаточно большие изменения, то запустит по-умолчанию. А для небольшие изменения будут проигнорированы, и ни один инструмент не будет запущен на этих инструментах если не было передано конфигуарного файла. Короче, на это надо посмотреть самим.
Задумайтесь, когда у нас появится нечто подобное? По факту ниша в РФ абсолютно пуста. Было бы желание. Не замена састу определено, а ускорение T2M, свдига влево, снятие нагрузки апсека. Единственное, на что обратить внимание — безопасность таких решений сейчас и в будущем.
Мега интересный ресерч безопасности облака CodeRabbit от kudelskisecurity RCE через внешний линтер Rubocop тут и тут.
В гонке за выход на рынок продуктов на базе ИИ, безопасность и тут опять на последнем месте, а не бай дизайн, которая должна быть главным приоритетом как = надежность.
*место для рекламы курсов mlsecops*
Захотелось выделить в отдельную практику анализа кода и что мне сделаете? Анализ PR, семгреп, гитликс, чехов? Ну да, а как запускать их, на каждый pr прям всеми 10к+ правилами или перед этим определить через tokei стек и точечно ударить проверками. Это все круто, но куда мы без "AI" конечно же, не последние крипы. Поэтому мы поговорим о такой тулзе как CodeRabbit.
Представляет из себя PR AI Agent Reviewer — cli + vcs plugin, который делает очень интересные вещи, прокидывая автоматизированный security code review прямо в пулл-реквест разрабу (см. рисунки) битбакета, гитхаба и др.:
В конечном итоге CodeRabbit опубликует свой обзор кода в виде комментариев к запросу на извлечение. Что интересно, это как он включает те или иные инструменты, например если PR содержит достаточно большие изменения, то запустит по-умолчанию. А для небольшие изменения будут проигнорированы, и ни один инструмент не будет запущен на этих инструментах если не было передано конфигуарного файла. Короче, на это надо посмотреть самим.
Задумайтесь, когда у нас появится нечто подобное? По факту ниша в РФ абсолютно пуста. Было бы желание. Не замена састу определено, а ускорение T2M, свдига влево, снятие нагрузки апсека. Единственное, на что обратить внимание — безопасность таких решений сейчас и в будущем.
Мега интересный ресерч безопасности облака CodeRabbit от kudelskisecurity RCE через внешний линтер Rubocop тут и тут.
В гонке за выход на рынок продуктов на базе ИИ, безопасность и тут опять на последнем месте, а не бай дизайн, которая должна быть главным приоритетом как = надежность.
*место для рекламы курсов mlsecops*
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 4
AI betting
В начале сентября, по классике, собрались нашей бандой ураган смотреть наших на инте по доте. Сели в депо, включили трансляцию и разгоняем, кто чем занят: инфоповоды, зэпку, новые вакансии, у кого как процессы на работе поживают, в общем базовые темы. Атмосфера на уровне, между делом, чтобы добавить еще больше рофлянок, решаем закинуть на свои любимые команды символическую сумму (скажем 5к) до луза.
Дальше по сценарию: думаем на что ставить и почему, в моменте вспоминаем о волшебном шаре в виде нейронок. Мы же прогрессивные молодые люди, подумали, раз у них есть agent в виде браузера под капотом, давайте он за нас инфу соберет, например по прошедшим играм, изменениям в командах или чей пик сильнее и спрогнозирует исход матча - конечно мы же первые такое проворачиваем. Если долго не мусолить, то без особого удивления предлагала отвратительные рандомные варианты, ссылаясь на первую ссылку в гугле. Очевидно, информацию про множестве событий она не учитывала, например мету на этот патч, состояние игроков (дизбан, тильт и т.п.).
Пока мы смотрели куда уходят наши деньги, параллельно разогнали идею, а может навайбкодить такую платформу? Она будет в реальном времени анализировать игру, считывать эмоции игроков, ошибки в стиле кто медленно нажимает кнопки или ошибается часто и тогда мы туда-сюда наносекеры. Идею сохранили до вечера и где-то неделю упорного промт инжиниринга сделали такого зверя, который сейчас на скринах.
Экспериментальный стек: ollama, YOLOV8, READDY AI, Qwen3-30B-A3B-Instruct-2507-FP8, ultralytics, transformers, imageio-ffmpeg.
Какой результат мы получили для себя? Аналитика системы считывала поток и повышала вероятность победы команды, анализируя движения героев, выражения лиц и как то там складывала, но по факту там работы целый вагон, много что не учитывала, тормозила. Смысл заниматься этим определено есть, не нашими силами :(. Думаю, что можно и дождаться инструментов, в паблике гуляет пост, где нейронки пробует торговать сами. И так же новость (не смог найти), что Openai скупает волков с уолл-стрита, чтобы те писать промпты для трейдинга. Крч ждем такой же от наших банков, мб сбер.
Полученный опыт для нас оказался полезным - мы обнаружили для себя, что нейронки пишут нереально крутые SPA дашборды на реакте с поддержкой управления состоянием, буквально пол года назад был только сырой html js. Если надо вебку быстро вебку сделать, масхев. По точности ИИ-прогнозы достигают где-то 55-60% при прогнозах исходов на основе характера драфтов и статистики по миллионам матчей. Но они не учитывают всех человеческих факторов (состояние, тильт), изменения в патче и командную динамику, поэтому пока только как дополнительный вектор для принятия решений.
Закончу мыслью Дженсена Хуанга:
"Искусственный интеллект в ближайшие пять лет создаст больше миллионеров, чем Интернет за двадцать лет своего развития."
Увидимся скоро, наносекеры.
В начале сентября, по классике, собрались нашей бандой ураган смотреть наших на инте по доте. Сели в депо, включили трансляцию и разгоняем, кто чем занят: инфоповоды, зэпку, новые вакансии, у кого как процессы на работе поживают, в общем базовые темы. Атмосфера на уровне, между делом, чтобы добавить еще больше рофлянок, решаем закинуть на свои любимые команды символическую сумму (скажем 5к) до луза.
Дальше по сценарию: думаем на что ставить и почему, в моменте вспоминаем о волшебном шаре в виде нейронок. Мы же прогрессивные молодые люди, подумали, раз у них есть agent в виде браузера под капотом, давайте он за нас инфу соберет, например по прошедшим играм, изменениям в командах или чей пик сильнее и спрогнозирует исход матча - конечно мы же первые такое проворачиваем. Если долго не мусолить, то без особого удивления предлагала отвратительные рандомные варианты, ссылаясь на первую ссылку в гугле. Очевидно, информацию про множестве событий она не учитывала, например мету на этот патч, состояние игроков (дизбан, тильт и т.п.).
Пока мы смотрели куда уходят наши деньги, параллельно разогнали идею, а может навайбкодить такую платформу? Она будет в реальном времени анализировать игру, считывать эмоции игроков, ошибки в стиле кто медленно нажимает кнопки или ошибается часто и тогда мы туда-сюда наносекеры. Идею сохранили до вечера и где-то неделю упорного промт инжиниринга сделали такого зверя, который сейчас на скринах.
Экспериментальный стек: ollama, YOLOV8, READDY AI, Qwen3-30B-A3B-Instruct-2507-FP8, ultralytics, transformers, imageio-ffmpeg.
Какой результат мы получили для себя? Аналитика системы считывала поток и повышала вероятность победы команды, анализируя движения героев, выражения лиц и как то там складывала, но по факту там работы целый вагон, много что не учитывала, тормозила. Смысл заниматься этим определено есть, не нашими силами :(. Думаю, что можно и дождаться инструментов, в паблике гуляет пост, где нейронки пробует торговать сами. И так же новость (не смог найти), что Openai скупает волков с уолл-стрита, чтобы те писать промпты для трейдинга. Крч ждем такой же от наших банков, мб сбер.
Полученный опыт для нас оказался полезным - мы обнаружили для себя, что нейронки пишут нереально крутые SPA дашборды на реакте с поддержкой управления состоянием, буквально пол года назад был только сырой html js. Если надо вебку быстро вебку сделать, масхев. По точности ИИ-прогнозы достигают где-то 55-60% при прогнозах исходов на основе характера драфтов и статистики по миллионам матчей. Но они не учитывают всех человеческих факторов (состояние, тильт), изменения в патче и командную динамику, поэтому пока только как дополнительный вектор для принятия решений.
Закончу мыслью Дженсена Хуанга:
"Искусственный интеллект в ближайшие пять лет создаст больше миллионеров, чем Интернет за двадцать лет своего развития."
Увидимся скоро, наносекеры.
Telegram
Рофлы с Волк Стрит
СhatGpt продолжает терять деньги, DeepSeek тоже потерял свою прибыль и отметка депозита идет к начальному вложению в 10к баксов.
Рофлы с Волк Стрит 📈
Рофлы с Волк Стрит 📈
1 2