AppSecs – Telegram
Channel created
Forwarded from Cybred
Если получилось найти XSS, но CSP блокируют отправку данных на сторонний домен, можно проверить, нет ли на сайте в исключении Google Analytics.

Практически каждый сервис шлет аналитику, поэтому разработчикам приходится добавлять в белый список домен google-analytics.com.

Мы можем создать собственный трекер и использовать его для эксфильтрации и обхода правил. Пример со скриншота отправляет креды с JS-кейлоггера, которые отобразятся в личном кабинете.
Forwarded from Cybred
https://github.com/koenbuyens/securityheaders

Сканер для поиска мисконфигов в CSP и хороший Cheatsheet по всем Security Headers.

В репозитории, кроме самого скрипта, кратко описана каждая директива и возможные ошибки, которые в них можно допустить.
Как-то на собеседовании на AppSec-инженера помимо уязвимостей в коде мне решили устроить еще один собес на знание инфры (безопасность инфрастуктуры). Один из вопросов был связан с виртуализацией. Все, что я знал еще с универа это то, что виртуализация — это абстракция, которая позволяет думать процессу, что он один в системе. А еще есть VirtualBox, который создает виртуальную машину.

Но когда меня начали спрашивать про cgroups, ipc, namespace и т.д., я понял, что я ничего не знаю про виртуализацию.

Сегодня, листая Хабр, я вспомнил один из вопросов по данной тематике: «Чем отличается контейнеризация от виртуализации?»

Нашел 2 хорошие статьи, которые помогают вникнуть в курс дела с вложенными ссылками на доп материалы (как раз по namespace и cgroups):
- Основы виртуализации (обзор)
- Основы контейнеризации (обзор Docker и Podman)

Потом можно почитать:
- Контейнеры systemd

#interview
Оказывается Semgrep умеет в Data Flow с помощью нового движка Pro Engine (пока что в бете).

Подрубить его можно флагом «semgrep --pro scan …».

Для этого надо:
1. Залогиниться. Вводим в консоль semgrep login, далее редирект на сайт https://semgrep.dev/
2. Логинимся через GitHub/GitLab - Успех!
3. В консоле уведомление о создании файла конфигурации. Устанавливаем новый движок: semgrep install-semgrep-pro.
4. Можно пробовать

Чтобы пользоваться под CI нужен токен доступа. Откуда его взять и как поставить показано в этом видео.
Сегодня решил попробовать прикольный ресурс с лабами - https://application.security/free/owasp-top-10.

Например, можно на практике попробовать уязвимость Log4j. Там и код дадут почитать, и эксплоит покажут.
This media is not supported in your browser
VIEW IN TELEGRAM
Cyberpunk по-калининградски
В копилочку вопросов для подготовки к собесу

#interview
Forwarded from Some Security Notes
#web #appsec

Подборка вопросов (всего 55) в которых коротко рассмотрены актуальные темы связанные с безопасность веба.

https://tib3rius.com/interview-questions
Довольно непримечательный ресурс (по крайней мере я про него раньше не знал) с лабами по инфобезу: https://attackdefense.pentesteracademy.com

После прохождения лаб по докеру в kontra (где бесплатно доступно пару лаб по каждой теме), можно полазить по топику CONTAINER SECURITY, где все бесплатно (тут даже есть лабы на знакомство с технологией, например с тем же докером).

Пример лабы - Misconfigured Docker Socket, где используется сокет движка docker для администрирования.

На странице есть сразу же ответы, как решать таски (в виде pdf файла или видео).

Помимо докера есть такие топики, как:
- WINDOWS SECURITY
- CLOUD SECURITY
- LINUX SECURITY
- WEBAPP PENTESTING BASICS
- ADVANCED PRIV-ESC
- WIFI SECURITY
- DEVSECOPS
- REVERSE ENGINEERING
и др.

В качестве знакомства с новыми темами может быть полезно.
Наткнулся сегодня на вот такой пост. Оказывается компания PortSwigger выпустила еще один сканер, но на этот раз DAST - Dastardly.

Судя по описанию из видео, его достаточно легко интегрировать в CI/CD pipeline'ы. Вот пример из того же поста:

Integration is easy, simply include this Docker run command in your pipeline noscript:

docker run --user $(id -u) --rm -v $(pwd):/dastardly -e \
BURP_START_URL=https://ginandjuice.shop -e \
BURP_REPORT_FILE_PATH=/dastardly/dastardly-report.xml \
https://lnkd.in/esJuB8m8
Come back is real…

Решил на досуге посмотреть доклады и наткнулся на крутой доклад по продвинутым Client-Side атакам. Основная тема — профит от XSS без кук.

Узнал про:
- Service Worker, который работает как прокси-сервер и который может пересылать чувствительные данные на зловредный ресурс.
В докладе показан пример XSS без кук с использованием Service Worker в Sandbox Domain (конкретно c S3 Bucket).

- Early Hints — механизм, предложенный в рамках HTTP/2, который позволяет серверам предоставлять клиентам предварительные подсказки (hints) о ресурсах, которые будут необходимы для отображения запрошенной страницы.

Его особенность в том, что он поддерживается в HTTP/1.1, а его реализация в Chromium сделана так, что (цитата): «Если ответ HTTP начинается на 103 Early Hints, он просто пропускает все байты, которые идут до строчки HTTP/1.1 200 OK»

HTTP/1.1 103 Early Hints
Link: </style.css>; rel=preload; as=style
Link: </noscript.js>; rel=preload; as=noscript

HTTP/1.1 200 OK
Date: Fri, 08 Dec 2017 12:28:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1234

(тело документа)

Такой ответ ломает даже бурп.

- CSP можно не только байпасить, но и использовать как вектор атаки с помощью атрибута csp в iframe, т.к. это позволяет манипулировать CSP ресурса. Однако это не байпас, т.к. работает это, если делать политику строже. В качестве impact’а, например, реагирование на редирект по ресурсам (у пользователя есть доступ к какому-то ресурсу со UUID в URL).

- XS Leaks (Cross-Site Leaks) — это класс уязвимостей в веб-приложениях, которые позволяют атакующему извлекать конфиденциальную информацию о пользователе или его действиях на других сайтах. В качестве примера — Link Injection в Express, где можно выйти за пределы угловых скобок.

#js #study
Может быть полезно.
Ресурс https://devdocs.io — онлайн-инструмент с удобным интерфейсом для доступа к документации множества языков программирования, библиотек, фреймворков и инструментов разработки.

Например, эволюция HTTP и дока по Angular разных версий

#docs #study
Интересная статья про поиск ручек через стат. анализ в JS файлах.

Кстати, из нее можно узнать некоторые особенности таких open source сканеров как Semgrep и CodeQL:
В случае Semgrep разработчики сделали только внутрипроцедурный анализ - то есть Semgrep не понимает как данные передаются между функциями, в том числе через аргументы и возвращаемые значения. То есть уже для вот такого кода Semgrep не поймёт что в вызов fetch() попадает URL "/abc123":

function f(x) {
fetch(x);
}

function g() {
var u = '/abc123';
f(u);
}

CodeQL и Joern более продвинутые, в них есть межпроцедурный анализ. Однако, внутри анализа у них очень простое представление для строк — они не умеют вычислять новые строки на основе существующих (как и числа, кстати). То есть, для вот такого кода они не смогут определить, какое значение получила переменная u:

function f(param) {
var baseURL = '/api/2.0/';
var u = baseURL + 'action?param=' + param;
fetch(u);
}

function main() {
var v = 'abc123';
f(v);
}



https://blog.secsem.ru/ru/mining-requests-from-js-with-static-analysis/
Forwarded from SecLab Blog
Майнинг HTTP-запросов из клиентского JS с помощью статического анализа — часть 2

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

Читать пост