Telegram Group & Telegram Channel
Boo🧨

Асап, так получилось, что я отсутствовал полтора года. Но вроде как, теперь есть вариант писать сюда. Пробуем новый, тестовый формат, где я описываю обезличенные случаи из своей практики AppSec.

В рамках такого формата, хотелось бы поговорить про самую частую уязвимость, которую я находил в своих проектах. Это broken access control.

Стоит отметить, что понятие уязвимости, которое может вписываться в эту категорию всегда будет разным. Так например одна уязвимость, которую можно "занести" на Bug Bounty и уяза, которую можно зарепортить во время тестирования безопасности сервиса - может иметь разную оценку по критичности.

Теперь когда с этим разобрались можно приступать к основной части.

По идее нарушенный контроль доступа или же B.A.C. (почти как ACAB) это уязвимость в веб-приложении которая позволяет злоумышленнику получить доступ к функциональности, для эксплуатации которой у него нет прав. Для этого очевидно, в приложении должна быть реализована ролевая модель. Или нет? Давайте разберем два случая. Когда она есть и когда ее нет.

В рамках тестирования сервиса X на Bug Bounty, удалось использовать уязвимость нарушенного контроля доступа чтобы запостить новость в афише от имени администратора, прикрепив туда изображение в формате svg, которое содержит в себе полезную нагрузку для триггера XSS уязвимости. Получается, что тут 2 проблемы. Это небезопасная загрузка файлов и IDOR. Если первая уяза совершенно не по теме, давайте разберемся с нашим контролем доступа.

В моем случае сервис посылал POST запрос на создание новости в афише. Изучив api, я смог посмотреть какие параметры передются в JSON через этот POST запрос и подметил для себя тот факт, что в запросе передаётся user id и другой параметр, который проверял прошла ли новость модерацию. Изменив user id на id администратора и исправив другой параметр с false на true, я получил IDOR на стероидах, который из-за отсутствия корректной валидации данных параметров со стороны обычного пользователя, без привилегий позволяет нам создать фейковую новость с кликбейтным названием, плюс ко всему еще и тригерит наш Stored XSS.

Если ролевая модель толком не реализована и сервис не позволяет нам работать через POST, PUT и PATCH запросы - имеет смысл провести разведку API для выявления "подозрительных ручек". Например сервис X не позволяет пользователям вносить изменения на стороне сервера, однако это еще не значит, что вектор нарушенного контроля доступа надо вычеркивать из флоу тестирования. В рамках тестирования, уязвимостью нарушенного контроля доступа может считаться страница, где производиться вход в админку, получаются данные дургих пользователей сервиса (критичность уязы в таком случае зависит от контекста приватности информации) или даже доступ в /metrics, где будут разглашены внутренние хосты и весь api.



tg-me.com/hackedbypython/300
Create:
Last Update:

Boo🧨

Асап, так получилось, что я отсутствовал полтора года. Но вроде как, теперь есть вариант писать сюда. Пробуем новый, тестовый формат, где я описываю обезличенные случаи из своей практики AppSec.

В рамках такого формата, хотелось бы поговорить про самую частую уязвимость, которую я находил в своих проектах. Это broken access control.

Стоит отметить, что понятие уязвимости, которое может вписываться в эту категорию всегда будет разным. Так например одна уязвимость, которую можно "занести" на Bug Bounty и уяза, которую можно зарепортить во время тестирования безопасности сервиса - может иметь разную оценку по критичности.

Теперь когда с этим разобрались можно приступать к основной части.

По идее нарушенный контроль доступа или же B.A.C. (почти как ACAB) это уязвимость в веб-приложении которая позволяет злоумышленнику получить доступ к функциональности, для эксплуатации которой у него нет прав. Для этого очевидно, в приложении должна быть реализована ролевая модель. Или нет? Давайте разберем два случая. Когда она есть и когда ее нет.

В рамках тестирования сервиса X на Bug Bounty, удалось использовать уязвимость нарушенного контроля доступа чтобы запостить новость в афише от имени администратора, прикрепив туда изображение в формате svg, которое содержит в себе полезную нагрузку для триггера XSS уязвимости. Получается, что тут 2 проблемы. Это небезопасная загрузка файлов и IDOR. Если первая уяза совершенно не по теме, давайте разберемся с нашим контролем доступа.

В моем случае сервис посылал POST запрос на создание новости в афише. Изучив api, я смог посмотреть какие параметры передются в JSON через этот POST запрос и подметил для себя тот факт, что в запросе передаётся user id и другой параметр, который проверял прошла ли новость модерацию. Изменив user id на id администратора и исправив другой параметр с false на true, я получил IDOR на стероидах, который из-за отсутствия корректной валидации данных параметров со стороны обычного пользователя, без привилегий позволяет нам создать фейковую новость с кликбейтным названием, плюс ко всему еще и тригерит наш Stored XSS.

Если ролевая модель толком не реализована и сервис не позволяет нам работать через POST, PUT и PATCH запросы - имеет смысл провести разведку API для выявления "подозрительных ручек". Например сервис X не позволяет пользователям вносить изменения на стороне сервера, однако это еще не значит, что вектор нарушенного контроля доступа надо вычеркивать из флоу тестирования. В рамках тестирования, уязвимостью нарушенного контроля доступа может считаться страница, где производиться вход в админку, получаются данные дургих пользователей сервиса (критичность уязы в таком случае зависит от контекста приватности информации) или даже доступ в /metrics, где будут разглашены внутренние хосты и весь api.

BY PythonSec


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/hackedbypython/300

View MORE
Open in Telegram


PythonSec Telegram | DID YOU KNOW?

Date: |

The Singapore stock market has alternated between positive and negative finishes through the last five trading days since the end of the two-day winning streak in which it had added more than a dozen points or 0.4 percent. The Straits Times Index now sits just above the 3,060-point plateau and it's likely to see a narrow trading range on Monday.

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

PythonSec from ms


Telegram PythonSec
FROM USA