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

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

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

  #1  
Старый 13.12.2017, 17:35
crlf
Guest
Сообщений: n/a
Провел на форуме:
169212

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

В процессе поиска на bugs.php.net краша под свой случай, накопилось много различных реализаций. К сожаленю, я всё ещё в поисках, поэтому предлагаю постить здесь различные примеры и, по возможности, обсуждать их.

Различные кейсы могут быть полезны для возможности оставления временных файлов, развития дальнейшей атаки на интерпретатор и других хитрых штук

Потестить на различных версиях пыха можно здесь.

Следующие примеры тестились на LinuxсPHP 5.6.32.

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]f[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$foo[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$d[/COLOR][COLOR="#007700"]=new[/COLOR][COLOR="#0000BB"]bad[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]unserialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]serialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$foo[/COLOR][COLOR="#007700"]));[/COLOR][COLOR="#0000BB"]gc_collect_cycles[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]e[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]ob0ect[/COLOR][COLOR="#007700"]=new\[/COLOR][COLOR="#0000BB"]stdClass[/COLOR][COLOR="#007700"];}public function[/COLOR][COLOR="#0000BB"]__destruct[/COLOR][COLOR="#007700"](){[/COLOR][COLOR="#FF8000"]//
[/COLOR][COLOR="#007700"]if(![/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]ob0ect[/COLOR][COLOR="#007700"])([/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]);}}class[/COLOR][COLOR="#0000BB"]SomeContainer[/COLOR][COLOR="#007700"]{public function[/COLOR][COLOR="#0000BB"]run[/COLOR][COLOR="#007700"](){new[/COLOR][COLOR="#0000BB"]SegfaultScenario[/COLOR][COLOR="#007700"];}}[/COLOR][COLOR="#0000BB"]$container[/COLOR][COLOR="#007700"]=new[/COLOR][COLOR="#0000BB"]SomeContainer[/COLOR][COLOR="#007700"]();[/COLOR][COLOR="#0000BB"]$container[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]run[/COLOR][COLOR="#007700"]();[/COLOR][COLOR="#0000BB"]gc_collect_cycles[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]newImage[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'black'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]// This works fine
[/COLOR][COLOR="#0000BB"]$it[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$im[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getPixelIterator[/COLOR][COLOR="#007700"]();
[/
COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$it[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getCurrentIteratorRow[/COLOR][COLOR="#007700"]();
[/
COLOR][COLOR="#0000BB"]$rgb[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]]->[/COLOR][COLOR="#0000BB"]getColor[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rgb[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]// This crashes with SIGABRT
[/COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$im[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getPixelIterator[/COLOR][COLOR="#007700"]()->[/COLOR][COLOR="#0000BB"]getCurrentIteratorRow[/COLOR][COLOR="#007700"]();
[/
COLOR][COLOR="#0000BB"]$rgb[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]]->[/COLOR][COLOR="#0000BB"]getColor[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rgb[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
[PHP]
PHP:
0; --$len) {
$className.=$symbols[rand(0,count($symbols) -1)];
}
} while (
class_exists($className,false));
$className=trim($className,'_ ');
$code='
PHP код:
 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]data[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"];
}

public function[/COLOR][COLOR="#0000BB"]__toString[/COLOR][COLOR="#007700"]() {
[/
COLOR][COLOR="#0000BB"]openssl_pkey_export[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]data[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$output[/COLOR][COLOR="#007700"]);
return[/COLOR][COLOR="#0000BB"]$output[/COLOR][COLOR="#007700"];
}

}

[/
COLOR][COLOR="#0000BB"]$csr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]openssl_csr_new[/COLOR][COLOR="#007700"]([],[/COLOR][COLOR="#0000BB"]$privateKey[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$certificate[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]openssl_csr_sign[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$csr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]NULL[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$privateKey[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$privateKey[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]PrivateKey[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$privateKey[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]openssl_pkcs12_export_to_file[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$certificate[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'/tmp/test.p12'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$privateKey[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'el_a'[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$a[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$doc1[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]append[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$x[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]stream[/COLOR][COLOR="#007700"]);
}
}
[/
COLOR][COLOR="#0000BB"]stream_filter_register[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'user_filter'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'user_filter'[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$fd[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fopen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'php://memory'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'w'[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$filter[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]stream_filter_append[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fd[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'user_filter'[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]fwrite[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fd[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"foo"[/COLOR][COLOR="#007700"]);

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

  #2  
Старый 16.12.2017, 15:07
crlf
Guest
Сообщений: n/a
Провел на форуме:
169212

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


Ещё немного "роняний"

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"]));

[/
COLOR][COLOR="#0000BB"]$lines[/COLOR][COLOR="#007700"]= [
[/
COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"],
[/
COLOR][COLOR="#DD0000"]" -=()\r\n"[/COLOR][COLOR="#007700"],
[/
COLOR][COLOR="#DD0000"]" -=\r\n"[/COLOR][COLOR="#007700"],
[/
COLOR][COLOR="#DD0000"]"\r\n"
[/COLOR][COLOR="#007700"]];

foreach ([/COLOR][COLOR="#0000BB"]$lines[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$line[/COLOR][COLOR="#007700"])
{
try
{
[/
COLOR][COLOR="#0000BB"]fwrite[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fh[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$line[/COLOR][COLOR="#007700"]);
}
catch (\[/COLOR][COLOR="#0000BB"]Exception $e[/COLOR][COLOR="#007700"]) { }
}

[/
COLOR][COLOR="#0000BB"]fclose[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fh[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]5[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'line-break-chars'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"]));
[/
COLOR][COLOR="#0000BB"]rewind[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]stream_copy_to_stream[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$stream[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]loadXML[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'

'
[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$dom[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]documentElement[/COLOR][COLOR="#007700"]) {
if ([/COLOR][COLOR="#0000BB"]$spaceNode[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$dom[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]documentElement[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getAttributeNode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'xmlns'[/COLOR][COLOR="#007700"])) {
[/
COLOR][COLOR="#0000BB"]$spaceNode[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]parentNode[/COLOR][COLOR="#007700"];
}
}

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]aProperty[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$root[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$root[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$tmp[/COLOR][COLOR="#007700"];
}

echo[/COLOR][COLOR="#DD0000"]"Finished making objects!\n"[/COLOR][COLOR="#007700"];
}

[/
COLOR][COLOR="#0000BB"]fun[/COLOR][COLOR="#007700"]();
echo[/
COLOR][COLOR="#DD0000"]"Done!\n"[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]n0[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$node[/COLOR][COLOR="#007700"];return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"];}}class[/COLOR][COLOR="#0000BB"]Lin0edList[/COLOR][COLOR="#007700"]{private[/COLOR][COLOR="#0000BB"]$d[/COLOR][COLOR="#007700"];public function[/COLOR][COLOR="#0000BB"]addNode[/COLOR][COLOR="#007700"](){[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]head[/COLOR][COLOR="#007700"]=(new[/COLOR][COLOR="#0000BB"]Node[/COLOR][COLOR="#007700"])->[/COLOR][COLOR="#0000BB"]setNe0t[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]head[/COLOR][COLOR="#007700"]);}}[/COLOR][COLOR="#0000BB"]$ll[/COLOR][COLOR="#007700"]=new[/COLOR][COLOR="#0000BB"]Lin0edList[/COLOR][COLOR="#007700"];for(;[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]addNode[/COLOR][COLOR="#007700"]();}

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]self_recursive[/COLOR][COLOR="#007700"]();
}
}

[/
COLOR][COLOR="#0000BB"]$obj[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]ABC[/COLOR][COLOR="#007700"]();
[/
COLOR][COLOR="#0000BB"]$obj[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]self_recursive[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]object[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$object[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]oarray[/COLOR][COLOR="#007700"]= &[/COLOR][COLOR="#0000BB"]$array[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$element[/COLOR][COLOR="#007700"];
}
function[/COLOR][COLOR="#0000BB"]offsetExists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]__METHOD__[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#DD0000"],[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#DD0000"])\n"[/COLOR][COLOR="#007700"];
return[/COLOR][COLOR="#0000BB"]array_key_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]oarray[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#007700"]]);
}
function[/COLOR][COLOR="#0000BB"]offsetGet[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]__METHOD__[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#DD0000"],[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#DD0000"])\n"[/COLOR][COLOR="#007700"];
return isset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]oarray[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]]) ?[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]oarray[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]] :[/COLOR][COLOR="#0000BB"]NULL[/COLOR][COLOR="#007700"];
}
function[/COLOR][COLOR="#0000BB"]offsetSet[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]__METHOD__[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#DD0000"],[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#DD0000"],[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#DD0000"])\n"[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]oarray[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"];
}
function[/COLOR][COLOR="#0000BB"]offsetUnset[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]__METHOD__[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#DD0000"],[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#DD0000"])\n"[/COLOR][COLOR="#007700"];
unset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]object[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]element[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]]);
}
}
class[/
COLOR][COLOR="#0000BB"]Peoples[/COLOR][COLOR="#007700"]implements[/COLOR][COLOR="#0000BB"]ArrayAccess
[/COLOR][COLOR="#007700"]{
public[/COLOR][COLOR="#0000BB"]$person[/COLOR][COLOR="#007700"];

function
[/COLOR][COLOR="#0000BB"]__construct[/COLOR][COLOR="#007700"]()
{
[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"]= array(array([/COLOR][COLOR="#DD0000"]'name'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]'Foo'[/COLOR][COLOR="#007700"]));
}
function[/COLOR][COLOR="#0000BB"]offsetExists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"])
{
return[/COLOR][COLOR="#0000BB"]array_key_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"]);
}
function[/COLOR][COLOR="#0000BB"]offsetGet[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"])
{
if ([/COLOR][COLOR="#0000BB"]is_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]]))
{
return new[/COLOR][COLOR="#0000BB"]ArrayAccessReferenceProxy[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]);
}
else
{
return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]];
}
}
function[/COLOR][COLOR="#0000BB"]offsetSet[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"])
{
[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"];
}
function[/COLOR][COLOR="#0000BB"]offsetUnset[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"])
{
unset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]person[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$index[/COLOR][COLOR="#007700"]]);
}
}
[/
COLOR][COLOR="#0000BB"]$people[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]Peoples[/COLOR][COLOR="#007700"];
echo[/
COLOR][COLOR="#DD0000"]"===ArrayOverloading===\n"[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]$people[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]Peoples[/COLOR][COLOR="#007700"];
unset([/
COLOR][COLOR="#0000BB"]$people[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#DD0000"]'name'[/COLOR][COLOR="#007700"]]);
[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$people[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]]);

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

  #3  
Старый 22.12.2017, 17:53
crlf
Guest
Сообщений: n/a
Провел на форуме:
169212

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

Цитата:
Сообщение от Britney Spears  
Britney Spears said:
Gimme gimme more, gimme more, gimme gimme more [x4]

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]$x[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'O:16:"DOMConfiguration":1:{s:1:"A";r:1;}'[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]unserialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$x[/COLOR][COLOR="#007700"]));
[/
COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]function[/COLOR][COLOR="#0000BB"]test[/COLOR][COLOR="#007700"]() {
static[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];
if ([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]===[/COLOR][COLOR="#0000BB"]PHP_INT_MAX[/COLOR][COLOR="#007700"]) {
echo[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]PHP_EOL[/COLOR][COLOR="#007700"];
return ;
}
if (!([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]%[/COLOR][COLOR="#0000BB"]256[/COLOR][COLOR="#007700"])) {
echo[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]PHP_EOL[/COLOR][COLOR="#007700"];
}
[/
COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]++;
[/
COLOR][COLOR="#0000BB"]test[/COLOR][COLOR="#007700"]();
}
[/
COLOR][COLOR="#0000BB"]test[/COLOR][COLOR="#007700"]();
[/
COLOR][/COLOR
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]interface[/COLOR][COLOR="#0000BB"]MyInterface[/COLOR][COLOR="#007700"]{
public function[/COLOR][COLOR="#0000BB"]toHtml[/COLOR][COLOR="#007700"]();
}

abstract class[/COLOR][COLOR="#0000BB"]MyAbstract[/COLOR][COLOR="#007700"]{
protected function[/COLOR][COLOR="#0000BB"]_toHtml[/COLOR][COLOR="#007700"]()
{
return[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];
}

final public function[/COLOR][COLOR="#0000BB"]toHtml[/COLOR][COLOR="#007700"]()
{
return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]_toHtml[/COLOR][COLOR="#007700"]();
}
}

class[/
COLOR][COLOR="#0000BB"]MyClass[/COLOR][COLOR="#007700"]extends[/COLOR][COLOR="#0000BB"]MyAbstract[/COLOR][COLOR="#007700"]implements[/COLOR][COLOR="#0000BB"]MyInterface[/COLOR][COLOR="#007700"]{
function[/COLOR][COLOR="#0000BB"]_toHtml[/COLOR][COLOR="#007700"]() {
return[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]toHtml[/COLOR][COLOR="#007700"]();
}
}

[/
COLOR][COLOR="#0000BB"]$obj[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]MyClass[/COLOR][COLOR="#007700"]();
[/
COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$obj[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]_toHtml[/COLOR][COLOR="#007700"]());
exit;
[/
COLOR][/COLOR
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ