Задать вопрос
@zahar22

Какие уязвимости могут тут быть?

У меня есть загрузка csv-файла, в котором хранится два столбца: имя файла и его содержимое. Что-то вроде:
test.html | Hello, world
a.txt | привет

После того, как файл загрузили, я кидаю в папку эти файлы с их содержимым.
Какие тут могут быть проблемы? Заранее спасибо
  • Вопрос задан
  • 232 просмотра
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 5
coderisimo
@coderisimo
Если файл csv , то это текст с разделителями. Т.е , если сам текст не экстремистский, то ничего страшного произойти не сможет )
Или уточните вопрос.
Ответ написан
php666
@php666
PHP-макака
лучший способ проверить, является ли файл допустимым CSV-файлом, — попытаться проанализировать его
https://stackoverflow.com/questions/3739013/verify...

+ php_flag engine off на диру с загруженными файлами
Ответ написан
Комментировать
xenon
@xenon
Too drunk to fsck
cross site request forgery (наиболее вероятно и достаточно опасно)
clickjacking (хотя он тут не кажется опасным)
возможность забить ваш диск большим количеством файлов (если на виртуалке 20 гигов, то передать 20 гиг скриптом можно быстро)
возможность залить какой-то ненастоящий CSV
если (самое ужасное) имя и-или путь к файлу как-то зависит от пользователя (от данных в форме) - возможность перезаписать другие доступные файлы
Ответ написан
Комментировать
r3n0
@r3n0
// _ AppSec // Bug Bounty / Legal Hacking
Привет.

Да, csv это текст с разделителем, но мы загружаем на сайт файлы, записанные в нем. То есть если мы напишем index.php и запишем туда какую-нибудь белеберду, то это файл с белебердой будет хранится на сервере.
Мне интересно какие именно атаки могут произойти(SQL-инъекции, или XSS-атаки или еще что-то)
Отталкивайтесь от максимально возможного риска, что в данном случае будет шеллом (в идеале - однострочником). Ну и, в зависимости от реализации/обстоятельств, можно ещё на CSV-инъекции обратить внимание.

В остальном - зависит уже от конкретных деталей реализации этого функционала.
Ответ написан
Комментировать
@mletov
Если содержимое .csv в базу запросом сохранять, то можно еще в тело csv "DROP DATABASE" вписать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы