Использование fopen, когда к входу добавлено расширение
Для науки.
Скажем, у меня есть следующий код:
<?php
$filename = $_GET['filename'] . '.csv';
$handle = @fopen($filename);
Мы знаем, что эксплойт с нулевым байтом давно ушел, но возможно ли обойти вышеупомянутое добавление.csv, чтобы прочитать файл с другим расширением? Существуют очень творческие души.
Чтение удаленных файлов работает, имя файла = http://example.com/some.csv (.csv добавляется автоматически).
1 ответ
Решение
Если вы запрашиваете http://example.com/some.pdf?csv
, fopen
постараюсь собрать pdf файл...
Скорее используйте регулярное выражение для проверки $_GET
(вы всегда должны проверять свои данные):
/(\.csv)$/g
поможет вам проверить, является ли расширение .csv