🤩Path Traversal - это веб-уязвимость, которая позволяет атакующему читать произвольные файлы на системе.
🤩Здесь не случайно было подчеркнуто читать. Есть несколько уязвимостей с похожим влиянием и названием. Directory Traversal == Path Traversal == Local File Read (LFR) - эти уязвимости позволяют только чтение файлов операционной системы.
🤩Тип:
Web, Server-Side.
У данной уязвимости нет как таковых разновидностей. Однако есть несколько похожих уязвимостей с более критичным влиянием:
- 🤩Local File Inclusion (LFI) - Позволяет загрузить и исполнить файл с операционной системы. В данном случае, если на системе будет файл с вредоносной нагрузкой (например, php-shell), мы получим исполнение кода.
- 🤩Remote File Inclusion (RFI) - Позволяет загрузить и исполнить внешний файл, т.е. не обязательно хранящийся на системе. Этот вариант является более критичным, так как для эксплуатации нам не требуется предварительно загружать файл на систему/пытаться отравить уже существующие файлы.
🤩Пример полезной нагрузки:
http://example.com?file=../../../../../../../etc/passwd
🤩Влияние:
Чтение файлов на системе.
🤩Как защититься?
Просто и надежно - не позволять поступать вводу, подконтрольному пользователю в API общения с файловой системой. Если по какой-то причине не получается - валидировать ввод, например по белому списку или добавлять префикс базовой директории и проверять его соответствие после открытия файла, что-то типа такого:
File file = new File(BASE_DIRECTORY, userInput);
if (file.getCanonicalPath().startsWith(BASE_DIRECTORY)) {
// process file
}
Очень частая тема в CTF, да и на боевых приложениях можно нередко встретить. Главная проблема таких уязвимостей при пентесте и CTF - сложно понять, какие файлы смотреть, чтобы продолжить атаку. Так как с помощью нее мы можем читать только файл, путь которого мы знаем (листить директорию мы не можем через данную уязвимость) в дело вступают всевозможные списки наиболее популярных целей и брутфорс-списки. И даже после этого далеко не факт, что удастся найти что-то "вкусное" для продолжения атаки.
#edu #vuln #web #path_traversal #directory_traversal #traversal #lfr #lfi #rfi



Дискуссия