AppSecs – Telegram
Наткнулся сегодня на вот такой пост. Оказывается компания 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, а ещё кое-что про поддерживаемые операции.

Читать пост
А вы знали, что у semgrep есть своя академия?
Forwarded from DevSecOps Talks
Semgrep Academy: новые курсы!

Всем привет!

Недавно мы писали про Semgrep Academy (вот тут). На тот момент, курсов было немного, но! Недавно их стало больше!

Были добавлены:
🍭 API Security Mini Course (16 уроков, 30 минут видео)
🍭 Secure Coding (70 уроков, 2 часа виде)
🍭 Semgrep 101 (27 уроков, 1 час видео)

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

Надеемся, что проект будет развиваться, появятся лабораторные работы и, возможно, экзамены ☺️
Forwarded from HaHacking
🟥  #мероприятия #заметки #offense #defense

➡️На YouTube канале Positive Events уже выкладываются записи докладов с прошедшего киберфестиваля PHDays 2; Представляю Вашему вниманию перечень докладов, запавших мне в сердце😊

🧩 Плейлист ‟Киберфестиваль PHDays 2
🧩 Трансляция на сайте PHDays [ru/en]


🔥 OFFENSE

⭐️Вам письмо: старые новые атаки на почту
(@hahacking 🐇 + @slonser_notes 🐘 )
Уязвимость современной электронной почты к инъекциям;


⭐️Учат в школе” (@webpwn 💣)
Поиск и эксплуатация уязвимостей в системах обучения хакеров;


⭐️Trust no one: red-teaming-инфраструктура на стероидах” (@purple_medved)
Создание архитектуры и администрирование инфраструктуры для проведения пентестов в формате red teaming, инструменты автоматизации malware development и развертывание атакующей инфраструктуры;


⭐️Регионы памяти, или Как я не туда шеллкод загрузил” (@RedTeambro)
О важности определения верного места для полезной нагрузки, о предотвращении множества детектов антивирусом и о том, как атакующему оставаться скрытым от глаз защитных средств;


⭐️Без лица: предъявите вашу кавычку
Риски безопасности биометрических считывателей;

      ...


🔗 DEFENSE

⭐️Операция «Триангуляция»: почему не надо атаковать исследователей
История о самой сложной цепочке атак и шпионском ПО, которые когда-либо были обнаружены специалистами «Лаборатории Касперского»;


⭐️Не самые типичные методы и инструменты, которые использовали злоумышленники в атаках на российские организации

⭐️RCE-уязвимость в Managed ClickHouse глазами специалиста SOC в Yandex Cloud

⭐️Было ваше — стало наше: что полезного можно найти на серверах злоумышленников

   ⭐️  ‟SCA, или как правильно создавать и анализировать SBOM под каждый используемый язык”  (@bh_cat)
Мир управления зависимостями и безопасности открытого программного обеспечения;

...


Спасибо организаторам за организацию площадки, а докладчикам – за их труд и ценный вклад в сообщество!

➡️Приятного просмотра!

   @HaHacking  🐇
Please open Telegram to view this post
VIEW IN TELEGRAM
Доклад был хорош
Вы наверняка знаете, но если вдруг не знаете, то PayloadsAllTheThings — это уникальный репозиторий, наполненный полезными payload-ами и методами обхода.

Например, вот кейс его использования.

#cheatsheet #payload
Forwarded from PurpleBear (Vadim Shelest)
Меня иногда просят посоветовать self-hosted лабы по различным доменам знаний деятельности пентестеров для наработки и совершенствования навыков на практике, поэтому ловите небольшую подборку:

☑️ Kubernetes Goat - Vulnerable by design Kubernetes cluster
☑️ GOAD - Game of Active Directory
☑️
DVWA - Damn Vulnerable Web Application
☑️ DVWS - Damn Vulnerable Web Sockets
☑️ DVHMA - Damn Vulnerable Hybrid Mobile App (Android)
☑️ DVIA - Damn Vulnerable iOS App
☑️ DVIA2 - Damn Vulnerable iOS App v2
☑️ CI/CD Goat - Vulnerable CI/CD environment
☑️ DVGA - Damn Vulnerable GraphQL Application
☑️ VAmPI - Vulnerable REST API
☑️ DVSA - Damn Vulnerable Serverless Application
☑️ DVFaaS - Damn Vulnerable Functions as a Service (AWS Lambda)
☑️ AWS Goat - Damn Vulnerable AWS Infrastructure
☑️ DVCA - Damn Vulnerable Cloud Application (AWS privesc)
☑️ Azure Goat - Damn Vulnerable Azure Infrastructure
☑️ GCP Goat - Damn Vulnerable GCP Infrastructure
☑️ DVTA - Damn Vulnerable Thick Client App
☑️ DVJA - Damn Vulnerable Java (EE) Application
☑️ DVID - Damn Vulnerable IoT Device
☑️ DVAS - Damn Vulnerable Application Scanner
☑️ DVB - Damn Vulnerable Bank
☑️ DVWPS - Damn Vulnerable WordPress Site
☑️ DVNA - Damn Vulnerable NodeJS Application
☑️ DVGM - Damn Vulnerable Grade Management
☑️ Tiredful API - REST API intentionally designed broken App
☑️ DVCSharp - Damn Vulnerable C# Application (API)
☑️ DVRF - Damn Vulnerable Router Firmware
☑️ DVLLMP - Damn Vulnerable LLM Project
☑️ DVLLMA - Damn Vulnerable LLM Agent

Безусловно некоторые из них уже устарели и содержат не самые актуальные баги, а с некоторыми придется повозиться чтобы установить и развернуть, но все же это хорошая отправная точка для погружения в интересующую тематику😎
1🔥1
Взломали Google (почти)

Написал на коленке writeup на таск категории web прошедшего Google CTF.

Из интересного в статье:
- Схема data:,, и как ее можно использовать в своих целях
- Использование event listener
- Особенности fetch() запроса для получения в ответе подконтрольных данных
AppSecs
Взломали Google (почти) Написал на коленке writeup на таск категории web прошедшего Google CTF. Из интересного в статье: - Схема data:,, и как ее можно использовать в своих целях - Использование event listener - Особенности fetch() запроса для получения…
Вредный совет, как можно решать таски (и только таски ctf 🌚), в которых нужен подконтрольный ресурс для отправки эксплойта и получения флага — лабы portswigger, например csrf.

В client-side лабах как правило предоставляется временный сервер для эксплойта. Он доступен в глобальной сети и идеально подходит под такие таски.
Удобно, быстро и бесплатно.
Forwarded from Cybred
https://github.com/gracenolan/Notes

Я инженер по безопасности в Google, и это заметки, сделанные во время подготовки к собеседованиям. Это моя первая работа в сфере безопасности, и многие спрашивали меня, как я учился.

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

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


Learning Tips
Interviewing Tips
Networking
Web Application
Infrastructure (Prod / Cloud) Virtualisation
OS Implementation and Systems
Mitigations
Cryptography, Authentication, Identity
Malware & Reversing
Exploits
Attack Structure
Threat Modeling
Detection
Digital Forensics
Incident Management
Coding & Algorithms
Security Themed Coding Challenges
Почему такой Dockerfile считается плохой практикой?


FROM alpine
RUN echo "top-secret" > /password.txt
RUN rm /password.txt


Один слой создает файл, а следующий его удаляет. Если собрать этот образ и затем его запустить, то никаких следов файла password.txt вы не увидите:

vagrant@vagrant:~$ docker run --rm -it sensitive ls /password.txt
ls: /password.txt: No such file or directory


Однако не позволяйте ввести себя в заблуждение — конфиденциальные данные все равно попали в образ. Чтобы убедиться в этом, экспортируйте образ в файл tar с помощью команды docker save и разархивируйте его:


vagrant@vagrant:~$ docker save sensitive > sensitive.tar
vagrant@vagrant:~$ mkdir sensitive
vagrant@vagrant:~$ cd sensitive
vagrant@vagrant:~$ tar -xf ../sensitive.tar
vagrant@vagrant:~/sensitive$ ls
0c247e34f78415b03155dae3d2ec7ed941801aa8aeb3cb4301eab9519302a3b9.json
552e9f7172fe87f322d421aec2b124691cd80edc9ba3fef842b0564e7a86041e
818c5ec07b8ee1d0d3ed6e12875d9d597c210b488e74667a03a58cd43dc9be1a
8e635d6264340a45901f63d2a18ea5bc8c680919e07191e4ef276860952d0399
manifest.json


Где 0c24...json — конфигурация образа.

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


vagrant@vagrant:~/sensitive$ cat 0c247*.json | jq '.history'
[
{
"created": "2019-10-21T17:21:42.078618181Z",
"created_by": "/bin/sh -c #(nop) ADD
file:fe1f09249227e2da2089afb4d07e16cbf832eeb804120074acd2b8192876cd28 in / "
},
{
"created": "2019-10-21T17:21:42.387111039Z",
"created_by": "/bin/sh -c #(nop) CMD [\"/bin/sh\"]",
"empty_layer": true
},
{
"created": "2019-12-16T13:50:43.914972168Z",
"created_by": "/bin/sh -c echo \"top-secret\" > /password.txt"
},
{
"created": "2019-12-16T13:50:45.085349285Z",
"created_by": "/bin/sh -c rm /password.txt"
}
]


Внутри каталога каждого из слоев находится еще один файл tar с содержимым файловой системы на этом слое. Можно легко извлечь файл password.txt

из каталога соответствующего слоя:

vagrant@vagrant:~/sensitive$ tar -xf 55*/layer.tar
vagrant@vagrant:~/sensitive$ cat password.txt
top-secret

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

Звучит как таск на цтф 🙃️️️️️️
Подробнее можно почитать книгу O’Reily «Безопасность контейнеров»

#docker
Знали про такой прикол в JS?

j = -9007199254740991000
j === j +1 // true


Максимальное целое число, которое может быть точно представлено в JavaScript, равно 2^53−1, что соответствует 9007199254740991. Числа, превышающие этот предел, теряют точность. Когда вы пытаетесь добавить 1 к числу, значительно превышающему этот предел, происходит потеря точности, и результат остается прежним.

Где это можно применить? Например, в циклах, где можно контролировать начальное и конечное значение для итераций (например, это одна и та же переменная), тем самым вызвать DoS из-за бесконечного цикла.

#js
👍2🔥1