15. XSS
Что только не делают
• Вырезают теги через strip_tags()
• Вырезает теги через MyCoolXSSRemover()
• preg_match(“/script/”,…)
• Что угодно, кроме корректного преобразования в
сущности HTML
16. XSS
Нужно: добавить ссылку в профиль
Сделано: через strip_tags()
Вектор атаки:
<a href="http://somesite.com/" onclick="return alert(1)" >
27. OS Command injection
Разработчики фильтруют, но что-то да забывают:
Редиректы <, >>, >
Пайпы |
Inline команды ;, $
Логические операторы $, &&, ||
Дополнительные параметры –
https://www.golemtechnologies.com/articles/shell-injection
31. Data validation
Типичные проблемы:
– Разработчики верят content-type из HTTP
– Разработчики верят content-type при проверке файла
на сервере
– Разработчики не проверяют расширение файла (или
проверяют неверно)
32. Data validation
Типичные проблемы:
– Content-Type из HTTP – спуфится при отправке файла
– Content-Type на сервере – подмена заголовков файла
– Неверные регекэспы, обходы типа file.jpeg.php,
.htaccess
33. Data validation
Как безопасно залить файл?
- Проверка заголовков файла, присвоение
расширения по типу заголовка
- Отдельный сервер, без интерпретаторов в веб,
только HEAD/GET
- Отдельный домен! (googleusercontent.com и т.п.)
34. Data validation
Проблема регулярных выражений
Матчим функции:
– preg_*()
– ereg*()
Проверить получится только при хорошем знании
регулярных выражений + обход проверки
массивом
38. Спасибо за внимание!
Вопросы?
Digital Security в Москве: (495) 223-07-86
Digital Security в Санкт-Петербурге: (812) 703-15-47
twitter.com/sergeybelove
sbelov@dsec.ru