Authentication Bypass - байпас за удостоверяване

критична уязвимост. Максимално ниво на заплаха.

Bypass за удостоверяване (байпас за удостоверяване) - достъп до частни секции на сайта, заобикаляйки удостоверяването на потребителя.

Authentication Bypass (байпас за удостоверяване) за сайтове и уеб приложения е неоторизиран достъп до административната секция или секции на сайта и скриптове, които осигуряват директно взаимодействие с базата данни и файловата система на сървъра.

Възможността за заобикаляне на удостоверяването (Authentication Bypass) на сайта винаги води до неговото хакване, защото:

  • Нападателят влиза в административния раздел на сайта с максимално ниво на достъп
  • Нападателят получава достъп до частни секции на сайта или файлове, които директно взаимодействат с базата данни или файловата система на сървъра

Няколко примера за байпас за удостоверяване:

SQL injection Authentication Bypass

Байпас за удостоверяване с SQL инжекция

байпас

  • bypass
  • bypass
  • bypass
  • bypass
  • байпас

  • Нападателят променя заявката, нарушавайки логиката на нейното изпълнение
  • Заявката ще върне всички редове от таблицата с потребители на сайта, независимо от условието за валидиране на двойката пароли
  • Нападателят получава достъп до административната част на сайта
  • Сайтът е хакнат

XPath injection Authentication Bypass

Заобикаляне на удостоверяването с XPath инжектиране

Подобно на SQL инжектиране:

Част от XML кода на потребителската база данни на сайта: base.xml 1 admin

Код за удостоверяване на потребител/администратор на сайта Низ потребителско име = req.getParameter("потребителско име'); Низ парола = req.getParameter("парола'); XPathFactory factory = XPathFactory.newInstance(); Xpath xpath =factory.newXPath(); Файлов файл = нов файл("/usr/webappdata/users.xml'); InputSource src = нов InputSource(нов FileInputStream(файл)); XPathExpression expr = xpath.compile("//users[username/text()=' " + username + " ' and password/text()=' " + password + ' ']/id/text() '); Идентификатор на низ = expr.evaluate( src);

Законна XPath заявка за удостоверяване на потребител: users[username/text()='admin' and password/text()='adminpass'] /id/text()

XPath инжектиране: ' или '1'='1'

Заявка, модифицирана чрез инжектиране на XPath: users[username/text()='admin' and password/text()='' or '1'='1' ]/id/text()

Резултат: Атакуващият се удостоверява на сайта Заявката ще върне ID за администраторския потребител с празна парола, ако 1=1 е вярно.

Грешки при разграничаване на правата за достъп до базата данни

Критичните грешки в разработката на сайта, при определени условия, могат да приравнят обикновените потребители на сайта с техните администратори или мениджъри на съдържание. В нашата практика е имало клиенти с хакнати сайтове поради подобни грешки. Такова хакване на сайтове е изключително лесно за изпълнение. Нападателят се регистрира на сайта (или форума) като обикновен потребител и след това, използвайки своя акаунт, отива в административния раздел на сайта.

Защита чрез байпас на удостоверяване

Ограничаване на достъпа до административната част на сайта по IP. Освен това можете да помислите за инсталиране на допълнителна двойка пароли в системните директории на сайта. В случаите, когато е невъзможно да се използват горните опции за защита, трябва да се изключи използването на всякакви уязвимости, тъй като получаването на неоторизиран достъп до административната секция е не само инжектиране на SQL и XPath, но и стотици варианти на голямо разнообразие от атаки,като XSS и други подобни.

Трябва да се разбере, че защитата на административния раздел чрез IP по никакъв начин не гарантира сигурността на вашия сайт. Крайната цел на хакването на сайт е да се поставят обвивки, задни вратички или връзки в кода на сайта, позволявайки на хакера да контролира хакнатия сайт. Има много методи и техники за получаване на shell на атакувания сайт, като най-често не е необходим достъп до административния панел. В 90% от случаите нападател, който е получил неоторизиран достъп до административния панел, ще сметне за междинен етап на хакване поставянето на техните черупки на атакувания сървър.

Онлайн скенер за уязвимости на уебсайтове Проверете колко устойчив е уебсайтът ви на хакване