Тестирование и анализ уязвимостей мобильных и веб-приложений на основе «Общих критериев»
Таблица 1 - Основной фронтэнд веб-приложения
Risk=Высокий, Confidence=Средний (1) test.missoff.ru SQL-инъекция POST test.missoff.ru/auth/?forgot_password=yes | ||
1 | Alert tags | OWASP_2021_A03 WSTG-v42-INPV-05 OWASP_2017_A01 |
| Alert description | Возможна SQL-инъекция. Результаты страницы были успешно обработаны с помощью логических условий [foo-bar@example.com AND 1=1 -- ] и [foo-bar@example.com AND 1=2 -- ] |
| Other info | Изменяемое значение параметра было удалено из вывода HTML для целей сравнения. Данные были возвращены для исходного параметра. Уязвимость была обнаружена путем успешного ограничения исходно возвращаемых данных путем изменения параметра |
| Request | Request line and header section (409 bytes) POST https://test.missoff.ru/auth/?forgot_password=yes HTTP/1.1 Host: test.missoff.ru User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0 Pragma: no-cache Cache-Control: no-cache Content-Type: application/x-www-form-urlencoded Referer: https://test.missoff.ru/auth/?forgot_password=yes Content-Length: 164 Cookie: PHPSESSID=F7R4bx1rPyFYyafEHwKQ53NQgFyfFFZc
Request body (164 bytes) backurl=%2Fauth%2F&AUTH_FORM=Y&TYPE=SEND_PWD&USER_LOGIN=foo-bar%40example.com+AND+1%3D1+--+&USER_EMAIL=&send_account_info=%D0%92%D1%8B%D1%81%D0%BB%D0%B0%D1%82%D1%8C |
| Response | Status line and header section (576 bytes) HTTP/1.1 200 OK Server: nginx/1.26.1 Date: Mon, 04 Nov 2024 20:47:33 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/7.4.33 P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA" X-Powered-CMS: Bitrix Site Manager (39d0fb00176e19ac87e87d99529f6e3f) Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Set-Cookie: PHPSESSID=F7R4bx1rPyFYyafEHwKQ53NQgFyfFFZc; path=/; HttpOnly Vary: Accept-Encoding Content-Length: 8600 Response body (8600 bytes) |
| Parameter | USER_LOGIN |
| Attack | foo-bar@example.com AND 1=1 -- |
| Solution | · Не доверяйте вводу на стороне клиента, даже если есть проверка на стороне клиента. · В основном, тип проверки всех данных на стороне сервера. · Если приложение использует JDBC, используйте PreparedStatement или CallableStatement · с параметрами, передаваемыми через '?' · Если приложение использует ASP, используйте объекты команд ADO (ADO Command Objects) со строгой проверкой типов и параметризованными запросами. Если можно использовать хранимые процедуры базы данных (Stored Procedures), используйте их. · Не объединяйте строки в запросы в хранимой процедуре и не используйте 'exec', 'exec немедленно' или аналогичные функции! · Не создавайте динамические запросы SQL, используя простую конкатенацию строк. · Экранировать все данные, полученные от клиента. · Примените «разрешенный список» разрешенных символов или «запрещающий список» запрещенных символов при вводе пользователем. · Применяйте принцип наименьших привилегий, используя наименее привилегированного пользователя базы данных. · В частности, избегайте использования пользователей базы данных «sa» или «db-owner». Это не устраняет SQL-инъекцию, но сводит к минимуму ее влияние. Предоставьте приложению минимальный доступ к базе данных |
· Risk=Средний, Confidence=Высокий test.missoff.ru Заголовок Content Security Policy (CSP) не задан GET test.missoff.ru/robots.txt | ||
2 | Alert tags | OWASP_2021_A05 OWASP_2017_A06 |
- | Alert description | Политика безопасности содержимого (CSP) — это дополнительный уровень безопасности, который помогает обнаруживать и смягчать определенные типы атак, включая межсайтовые сценарии (XSS) и атаки с внедрением данных. Эти атаки используются для всего: от кражи данных до порчи сайта или распространения вредоносных программ. CSP предоставляет набор стандартных HTTP-заголовков, которые позволяют владельцам веб-сайтов объявлять утвержденные источники контента, которые браузеры должны разрешить загружать на эту страницу. Охватываемые типы включают JavaScript, CSS, HTML-фреймы, шрифты, изображения и встраиваемые объекты, такие как апплеты Java. ActiveX, аудио и видео файлы. |
- | Other info | — |
- | Request | Request line and header section (211 bytes) GET https://test.missoff.ru/robots.txt HTTP/1.1 Host: test.missoff.ru User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0 Pragma: no-cache Cache-Control: no-cache
Request body (0 bytes) |
- | Response | Status line and header section (560 bytes) HTTP/1.1 404 Not Found Server: nginx/1.26.1 Date: Mon, 04 Nov 2024 20:35:39 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/7.4.33 P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA" X-Powered-CMS: Bitrix Site Manager (39d0fb00176e19ac87e87d99529f6e3f) Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Set-Cookie: PHPSESSID=F7R4bx1rPyFYyafEHwKQ53NQgFyfFFZc; path=/; HttpOnly Content-Length: 5238
Response body (5238 bytes) |
- | Parameter | — |
- | Attack | — |
- | Solution | Убедитесь, что ваш веб-сервер, сервер приложений, балансировщик нагрузки и т. д. настроены для установки заголовка Content-Security-Policy для достижения оптимальной поддержки браузера: «Content-Security-Policy» для Chrome 25+, Firefox 23+ и Safari 7. +, «X-Content-Security-Policy» для Firefox 4.0+ и Internet Explorer 10+ и «X-WebKit-CSP» для Chrome 14+ и Safari 6+. |
