Обходим блокировку сайта DPI двумя скриптами

от автора

В связи с разгулом банхамера по интернет просторам участились советы по использованию различных прокси, vpn, tor и анонимайзеров для обхода блокировок сайтов. Эти все способы отправляют трафик третей стороне которая его может перехватывать и модифицировать. Это не наш метод. Мы сейчас просто и легко научим браузер дурить DPI.

Я вдохновился этой статьёй и сообразил относительно лёгкий способ ходить на заблокированные сайты прямо а не используя чужие прокси, дополнения и программы.

я осуществил необратимые манипуляции с доменным именем таким образом, чтобы не существовало ни одного достоверного и однозначного алгоритма обращения получившейся хеш-функции.

Исходные данные:

Заблокированный сайт(Адрес изменён): http://rutracker.og
Это один из сайтов на который РКН ограничил доступ.

Страница блокировки(Адрес изменён): http://198.51.100.0/...
Адрес страницы заглушки которая появляется при попытке открытия сайта. У каждого провайдера адрес страницы заглушки наверно разный.

Итак открываем блокнот и пишем первый скрипт:

function FindProxyForURL(url, host) {    if (shExpMatch(url, "http://*") && (shExpMatch(host, "rutracker.og") || shExpMatch(host, "*.rutracker.og"))) {     return "PROXY rutracker.og; DIRECT";   }    return "DIRECT"; } 

Сохраняем как «proxy.pac»

Суть этого скрипта в том чтобы использовать как прокси сам сервер к которому мы и хотим получить доступ.

Подключаем «proxy.pac» в Chrome:

1. Настройки -> Показать дополнительные настройки ->
Сеть -> Изменить настройки прокси-сервера ->
Вкладка «Поключения» -> Настройка сети

2. Ставим галочку «Использовать сценарий автоматической настройки»
3. В поле адрес пишем полный путь к «proxy.pac»
Например: C:\Users\name\Documents\proxy.pac

Теперь страница блокировки будет появляется через раз.

Снова открываем блокнот и пишем:

// ==UserScript== // @name BackUserJS // @description Window History Back Script // @author ivan386 // @license MIT // @version 1.0 // @include http://198.51.100.0/* // @run-at document_start // ==/UserScript==  (function (window) {      var w;     if (typeof(unsafeWindow)  != 'undefined') {         w = unsafeWindow     } else {         w = window;     }         if (w.self != w.top) {         return;     }      if (/http:\/\/198.51.100.0/.test(w.location.href)) { 		w.history.back()     } })(window); 

Сохраняем как «back.user.js» в папку «back»

Этот скрипт возвращает нас на страницу где мы можем снова кликнуть заблокированную ссылку.

И опять открываем Блокнот и пишем:

{      "manifest_version": 2,     "content_scripts" : [         {             "js":[ "back.user.js" ],              "matches":[ "http://198.51.100.0/*" ],              "run_at":"document_start"           }     ],      "description" : "Window History Back Script",      "name" : "BackUserJS",     "version" : "1.0.0" } 

Сохраняем как «manifest.json» в папку «back»

Теперь добавим в Chrome как Расширение:

1. Дополнительные инструменты -> Расширения
2. Ставим галочку «Режим разработчика»
3. Нажимаем «Загрузить распакованное расширение…»
4. Находим папку «back» в которую сохраняли «back.user.js» и «manifest.json» и нажимаем ОК

Проверяем:
1. Перезагружаем Chrome
2. Нажимаем «Отмена» в окошке «Отключить расширения в режиме разработчика» справа.
3. Пишем в адресную строку адрес заблокированного сайта и нажимаем Enter.
4. ???
5. PROFIT

Использованные материалы:
Изучаем deep packet inspection у RETN
Proxy Auto Configuration (PAC)
Учимся писать userscript’ы
Userscripts. Упаковываем юзерскрипт для Chrome

ссылка на оригинал статьи https://habrahabr.ru/post/276141/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *