file io — обход строки concat в файле чтения PHP для эксплойта LFD

Я прохожу курс по безопасности программного обеспечения, и мне предложили следующий сценарий:

PHP-код работает на сервере:

<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=response.txt");
readfile($_GET['file']."/remove/this.txt");
?>

Мне нужно знать, может ли это быть использовано для получения произвольного файла на сервере (кроме * / remove / this.txt).

Я попытался использовать нулевой байт (% 00), но он не работает (сервер apache работает под управлением PHP 5.3 в Ubuntu).

Я также пытался проявить творческий подход с помощью фильтра php: //, ввода php: // и т. Д. И ничего. Проблема здесь в том, что последняя часть инструкции является ресурсом.

Усечение пути тоже не работает. Пока единственное, что я могу сделать, это прочитать URL-адреса, используя? Var = …

1

Решение

Я только что провел простой тест и могу сказать, что нет не замужем использование символов для этого, которое отрубит последнюю часть имени файла. Пример:

<pre>
<?php

for($i=0;$i<=255;$i++){
$chr = chr($i);

readfile("B.txt{$chr}A.txt");
}

Создан файл с именем A.txt это стандартный файл и B.txt это целевой файл. Поместите что-нибудь заметное в каждый файл, чтобы вы знали, когда он был прочитан (у меня уже были файлы для чего-то другого, и в каждом из них был другой список из примерно 100 элементов).

В моей системе не было ни одного символического эксплойта RHEL6. Очевидный эксплойт был бы, если файл remove/this.txt существует в другом месте, и вы можете перенаправить в другой каталог.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]