1. Введение

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

1.2. Объект тестирования

В процесс тестирования не включены активные атаки на отказ в обслуживании, статический анализ кода, стресс тестирование и социальная инженерия. Оценка серверного программного обеспечения и конфигурации также находится вне данного проекта. Объектом тестирования является веб приложение http://xxxxxxx.ru .

1.3. Основная классификация

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

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

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

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

2. Обзорный отчет

2.1. Общая оценка уровня защищенности

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

2.2. Уязвимости по уровню риска

Степень риска Количество Описание
Высокая 19 Данные уязвимости оцениваются как высокие и несут наибольшую угрозу. Их эксплуатация может привести к получению удаленного доступа, выполнения произвольного кода злоумышленником, раскрытие конфиденциальной информации.
Средняя 6 Уязвимости имеют ограниченное воздействие, однако могут быть использованы для получения чувствительной информации и в совокупности с другими уязвимостями позволят получить удаленный доступ.
Низкая 4 Не несут реальной угрозы, но могут быть использованы для сбора информации, формировании и развитии векторов атаки.

2.3.    Уязвимости по классификации

Для описания степени риска и оценки критичности обнаруженных уязвимостей используются классификации “The Common Vulnerability Scoring System (CVSSv2)”, MITRE (CAPEC) и OWASP.

 

Тип Количество Степень

риска

Unrestricted upload 2 Высокая
SQL Injection 5 Высокая
Cross-Site Scripting (XSS) 6 Высокая
Data Manipulation 2 Высокая
CSRF 1 Высокая
Cleartext submission of

password

1 Высокая
Sensitive information

disclosure

2 Высокая
Weak Password restore 1 Средняя
Full Path Disclosure 4 Средняя
Frameable response 1 Средняя
Cookie without HttpOnly flag set 1 Низкая
Insecure authentication 1 Низкая
Frameable response (potential Clickjacking) 1 Низкая
Content type incorrectly stated 1 Низкая

3.   Отчет по уязвимостям

3.1.          Уязвимости по типу

Имя Краткое описание Воздействие (CVSSv2)

Бизнес воздействие

Ссылки на классификацию и описание ID уязвимости
Unrestricted upload Потенциальный злоумышленник может обойти скрипт проверки расширения загружаемого файла, что позволит ему загрузить веб-шелл, получить контроль над приложением и доступ к серверу.

Сложность эксплуатации – легко

Тип — удаленная

Сложность обнаружения –

легко

10.0 CWE-434: Unrestricted Upload of File http://cwe.mitre.org/data/de finitions/434.html

 

OWASP Unrestricted File Upload https://www.owasp.org/ind ex.php/Unrestricted_File_U pload

CWE-434:

Unrestricted Upload of File with Dangerous Type

OWASP

Unrestricted File Upload

SQL Injection Атака основана на внедрении кода, когда контролируемые пользователем параметры используются при составлении запросов к БД напрямую.

 

Сложность эксплуатации

– легко

Тип — удаленная Сложность обнаружения – легко

10.0 OWASP SQL Injection:

https://www.owasp.org/ind ex.php/SQL_Injection

Public exploit:

http://www.exploit- db.com/exploits/22877/

CWE-89: Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’)

http://cwe.mitre.org/data/de finitions/89.html

OWASP top 10

A1 Injection

 

CWE-89:

Improper Neutralization of Special Elements used in an SQL Command

XSS Cross-Site Scripting Межсайтовое выполнение сценария — тип уязвимости, связанный с атакой внедрения кода выполняемого с помошью специально сформированных запросов к приложению и переданных конечному пользователю-жертве.

Сложность эксплуатации

– легко

Тип — удаленная Обнаружение – легко

8.2 A2-Cross-Site scripting

https://www.owasp.org/index.php/Crosssite_Scripting_(XSS)

CWE-79: Improper Neutralization of Input During Web Page Generation

http://cwe.mitre.org/data/definitions/79.html

OWASP Top10

A3 Cross-Site Scripting (XSS)

CWE-79:

Improper Neutralization of Input During Web Page Generation

Data Manipulation Уязвимость связана с манипулированием контролируемого пользователем параметра. Как результат может привести к мошенническим действиям при покупке товара(фрод), изменение стоимости, подмена данных и.т.д.

Сложность эксплуатации

– легко

Тип — удаленная Сложность обнаружения –легко

8.0 Parameter Manipulation:

http://www.cgisecurity.com/owasp/html/ch11s04.html

OWASP top 10 A1 Injection
Sensitive information disclosure Раскрытие чувствительных данных может позволить потенциальному злоумышленнику выявить интересующие параметры, пути до каталогов, заказы и адреса других пользователей для осуществления различных типов атак.

Сложность эксплуатации

– легко

Тип — удаленная Сложность обнаружения – средняя

7.2 OWASP Information Leakage https://www.owasp.org/index.php/Information_Leakag e

CWE-200: Information Exposure http://cwe.mitre.org/data/de finitions/200.html

CWE-200:

Information Exposure

 

A5 Security Misconfiguratio n

CSRF (Cross-Site Request Forgery) Вид атак на посетителей сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую операцию от имени пользователя(например, перевод денег на счёт злоумышленника).

Сложность эксплуатации

– легко

Тип — удаленная Сложность обнаружения – средняя

6.2 OWASP Top 10 A8 CSRF
(Cross-Site Request
Forgery)
https://www.owasp.org/index.php/Top_10_2010-A5
CWE-352 Cross-Site
Request Forgery
http://cwe.mitre.org/data/definitions/352.html
OWASP Top 10
A8 Cross-Site
Request
Forgery
(CSRF);
CWE-352
Cross-Site
Request
Forgery
Weak Password restore Веб приложение недостаточно проверяет почтовый адрес и контрольный вопрос при восстановлении пароля.

Сложность эксплуатации

– трудно

Тип — удаленная Сложность обнаружения – средняя

4.3 CWE-521: Weak Password Requirements: http://cwe.mitre.org/data/definitions/521.html ; Wikipedia: Password strength

http://en.wikipedia.org/wiki

/Password_strength

CWE-521:

Weak Password Requirements

Full Path Disclosure Некоторые страницы веб приложения раскрывают полный путь до корня сайта(webroot), что может быть использовано потенциальным злоумышленником для формирования векторов атаки.

Сложность эксплуатации – легко

Тип — удаленная Сложность обнаружения – средняя

4.0 Full path disclosure https://www.owasp.org/index.php/Full_Path_Disclosur e

Path disclosure http://yehg.net/lab/pr0js/vie w.php/path_disclosure_vul nerability.txt

CWE-200:

Information Exposure

3.2.   Exploitation proof

3.2.1   Unrestricted File Upload

Любой зарегистрированный пользователь может загружать свой аватар. Проверка расширения загружаемого файла легко обходится добавлением необходимого расширения в параметр file_types. Потенциальный злоумышленник может загрузить веб шелл на сервер:

и получить доступ:

3.1.1    SQL Injection

3.2.3.1 Параметр xxx http://xxxxxxxx/xxxx/xxx:В POST запросе параметр xxx уязвим к error-based и union-based SQL injection.Type: error-basedTitle: MySQL >= 5.0 AND error-based — WHERE or HAVING clausePayload: search=req_all&searchpar=’) AND (SELECT 6917 FROM(SELECT COUNT (*),CONCAT(0x3a6d6e663a,(SELECT (CASE WHEN (6917=6917) THEN 1 ELSE 0END)),0x3a7765643a,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) AND(‘GJST’=’GJST&search=all&hide_some=0&date_from=&date_to=Type: UNION queryTitle: MySQL UNION query (NULL) — 12 columnsPayload: search=req_all&searchpar=’) UNION ALL SELECT CONCAT(0x3a6d6e663a,0x444b51596a7943506e55,0x3a7765643a),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#&search=all&hide_some=0&date_from=&date_to=

3.2.3.3 URI параметр xxxx в http://xxxxxx/xxxx/xxx

Place: URI Parameter:

Type: error-based

Title: MySQL >= 5.0 AND error-based — WHERE or HAVING clause Payload: http://xxxxx/xxx/xxx 397 AND (SELECT 7896 FROM(SELECT

COUNT(*),CONCAT(0x3a7564643a,(SELECT (CASE WHEN (7896=7896) THEN 1 ELSE 0 END)),0x3a7466623a,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)

Type: stacked queries

Title: MySQL > 5.0.11 stacked queries

Payload: http://xxxxx/xxxx/xxx/397; SELECT SLEEP(5)—

Type: AND/OR time-based blind

Title: MySQL > 5.0.11 AND time-based blind Payload: http://xxxxx/xxxx/xxx/397 AND SLEEP(5)

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

3.2.4     Cross Site Scripting (XSS)

REST URL Параметры

Множество параметров REST URL копируются внутрь тела HTML документа как текст без фильтрации между тэгами.

4.   План по устранению

Уязвимость Риск Рекоммендации
XSS Cross-Site Scripting Кража cookies, выполнение кода, действия от имени пользователей

—   CVSSv2 = 8.2

—   Вектор=Удаленный

Входные данные пользователя должны строго проверяться на стороне сервера. Например параметр имени должен содержать только буквы, год рождения – только 4 цифры и т.д. Параметры, не удовлетворяющие условиям должны отклоняться целиком, а не отчищаться. Пользовательские параметры должны быть кодированы в HTML там где они возвращаются назад от сервера. Все специальные HTML символы, включая ([]){}< > » ‘` =, должны быть заменены на HTML entities (&lt; &gt; etc). Запретите использование словосочетаний alert, prompt,                                               onerror,<div,<a,

%3c,iframe,onmouseover,onload,onready,object,href

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

Долгосрочные мероприятия: фильтруйте все неиспользуемые в параметрах символы. Установите и настройте правила для Web Application Firewall

Ссылки: https://www.owasp.org/index.php/XSS_

%28Cross_Site_Scripting

%29_Prevention_Cheat_Sheet http://nickcoblentz.blogspot.com/2009/01/owasps- xss-prevention-cheat-sheet.html

 

5.   Журнал

  • Дата тестирования:
  • Объект тестирования: http://xxxx/
  • Метод тестирования: Black
  • Используемое ПО: Nmap, Burp suite, Owasp Zap,
  • Исполнитель:

 

6.   Вывод

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