WebSecurity
Часть 5
OS Command Injection
OS Command Injection
Атаки направлены на выполнение команд операционной системы на Web-сервере путем манипуляции входными данными. Если информация, полученная от клиента, должным образом не верифицируется, атакующий получает возможность выполнить команды ОС. Они будут выполняться с тем же уровнем привилегий, с каким работает компонент приложения, выполняющий запрос (сервер СУБД, Web-сервер и т.д).
Open Web Application Security Project
- A1 Внедрение кода
- A2 Некорректная аутентификация и управление сессией
- A3 Межсайтовый скриптинг
- A4 Нарушение контроля доступа
- A5 Небезопасная конфигурация
- A6 Утечка чувствительных данных
- A7 Недостаточная защита от атак (NEW)
- A8 Подделка межсайтовых запросов
- A9 Использование компонентов с известными уязвимостями
- A10 Незащищенный API (NEW)
Пример
<?php
print("Please specify the name of the file to delete");
print("<p>");
$file=$_GET['filename'];
system("rm $file");
?>
http://127.0.0.1/delete.php?filename=bob.txt;cat%20/etc/passwd
Please specify the name of the file to delete
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
...
Рейтинг наиболее популярных атак
OS command injection сканеры
Базы
Коллекция из нескольких типов списков, используемых в процессе оценки безопасности, собранные в одном месте. Типы списков включают в себя имена пользователей, пароли, URL, чувствительные шаблоны данных, Fuzzing полезные нагрузки, веб-оболочки, и многое другое.
https://github.com/danielmiessler/SecLists
Code Review Dangerous API
Java
Runtime.exec()
C/C++
system
exec
ShellExecute
Python
exec
eval
os.system
os.popen
subprocess.popen
subprocess.call
PHP
system
shell_exec
exec
proc_open
eval
Защита от OS command injection
- Доступы. Web приложение и его компоненты должны быть запущены под конкретными правами которые не позволяют выполнять команды операционной системы.
-
Санитизация. Данные должны быть четко фильтрованы. Использовать данные по принципу "белого листа", которые содержат только допустимые значения.
Эти символы стоит исключить: | ; & $ > < ' \ ! >> #
Эти символы стоит фильтровать или экранировать:
-
windows, ( ) < > & * ‘ | = ? ; [ ] ^ ~ ! . ” % @ / \ : + , `
-
Linux, { } ( ) < > & * ‘ | = ? ; [ ] $ – # ~ ! . ” % / \ : + , `
-
WAF
WAF
WAF может быть реализован как облачный сервис, агент на веб-сервере или специализированное железное или виртуальное устройство. Развитие рынка WAF пока складывается так, что облачный сервис востребован в среднем и малом бизнесе, а для крупного бизнеса обычно приобретается отдельное устройство. WAF как модуль веб-сервера так и остался, по сути, в зачаточном состоянии и больше подходит для энтузиастов, чем для бизнес-задач.
WAF
Cloudflare Pricing
Где потренироваться?
- http://www.dvwa.co.uk/
- http://www.itsecgames.com/
- https://www.hacksplaining.com
- https://habrahabr.ru/company/pentestit/blog/261569/
- https://habrahabr.ru/company/pt/blog/138779/
Полезные ссылки
- https://www.owasp.org/index.php/Command_Injection
- https://www.owasp.org/index.php/Testing_for_Command_Injection_(OTG-INPVAL-013)
Стоимость ошибки
Вопросы?
To be continued ...
Web Security Part 5
By James Jason
Web Security Part 5
- 653