LAN IP hinter Router/NAT
Wallpappe
- sicherheit
Problematische Seite zeigt meine lokale IP. Wie machen die das? Bzw. was gibt mein Router da raus und wie kann ich das abstellen!? Danke im Vorab.
Die machen das mit Javascript:
function checkLocal() {
window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome
var pc = new RTCPeerConnection({iceServers: []}), noop = function () {
};
pc.createDataChannel(""); //create a bogus data channel
pc.createOffer(pc.setLocalDescription.bind(pc), noop); // create offer and set local description
pc.onicecandidate = function (ice) { //listen for candidate events
if (!ice || !ice.candidate || !ice.candidate.candidate) return;
var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1];
jQuery(document).ready(function () {
jQuery("#local-ip").append("<li class=\"list-group-item\">Ihre locale IP ist: " + myIP + "</li>");
jQuery("#local-ip").show("slow");
});
pc.onicecandidate = noop;
};
Dein Router gibt da also nichts raus. Es gibt allerdings Proxys, die mit Forwared-For-Header die IP des Clients verraten, das ist aber bei Dir nicht wohl nicht der Fall.
Unglaublich! Aber wahr 😉 Danke Dir!
Hier der getestete "Stand-Alone-Nachbau". Ich halte das übrigens für ein Sicherheitsrisiko, weil es missbraucht werden kann um einem Angreifer Informationen zu liefern.
<html>
<p>Lokale IP: <span id="locIP">Unbekannt</span></p>
<script>
function checkLocal() {
window.RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection; //compatibility for firefox and chrome
var pc = new RTCPeerConnection( { iceServers: [] } ), noop = function () { };
pc.createDataChannel(""); //create a bogus data channel
pc.createOffer(pc.setLocalDescription.bind(pc), noop); // create offer and set local description
pc.onicecandidate = function (ice) { //listen for candidate events
if (!ice || !ice.candidate || !ice.candidate.candidate) {
return;
}
var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec( ice.candidate.candidate )[1];
document.getElementById('locIP').innerHTML = myIP;
pc.onicecandidate = noop;
};
}
checkLocal();
</script>
</html>
Resultat:
Ich sehe das auch problematisch: Der Browser leckt. Auf die Idee, daß man diesbezüglich den Browser mit JS anzapfen kann bin ich gar nicht gekommen. Wer weiß was der noch alles an Informationen rausgibt. Sauber an der DSVG vorbei.
Auf die Idee, daß man diesbezüglich den Browser mit JS anzapfen kann bin ich gar nicht gekommen.
Dito.
"Sauber an der DSVG vorbei" geht das erst, wenn jemand auf die Idee kommt, diese Daten an einen Server zu schicken, dort zu verarbeiten und/oder zu speichern. (Die "problematische Seite" SCHEINT das nicht zu tun, benutzt aber Cookies mit merkwürdigen Inhalten, deren Herkunft ich noch nicht nachvollzogen habe.)
Andererseits könnte eben diese Funktion in lokalen Netzen (Intranets) mit mehreren Adressbereichen durchaus eine fassbare Funktion und Bedeutung haben…
Grüße an die LKA und das BKA!
Die benutzen das sicherlich schon lange, um (nach dem Kapern eines .onion-Servers) Tor-Benutzer identifizieren zu können, die Javascript angeschaltet haben…
Andererseits haben die Staatsorgane mindestens der DDR und der BRD eine gemeinsame Eigenschaft: Die unter deren Subjekten auffällig starke Verbreitung einer geradezu unfassbaren Dummheit.
Auf die Idee, daß man diesbezüglich den Browser mit JS anzapfen kann bin ich gar nicht gekommen.
Dito.
"Sauber an der DSVG vorbei" geht das erst, wenn jemand auf die Idee kommt, diese Daten an einen Server zu schicken, dort zu verarbeiten und/oder zu speichern.
Es geht in dem Moment an der DSGV vorbei wenn der Browser über eine fremde Seite auf lokale Daten zugreift ohne den Anwender zu fragen!
Es geht in dem Moment an der DSGV vorbei wenn der Browser auf lokale Daten zugreift ohne den Anwender zu fragen!
Nein. Die DSGV greift (jedenfalls so lange die Daten nicht an einen Server gesendet werden) nicht, weil der Browser vom Benutzer selbst gestartet, gesteuert und beendet wird und die Anzeige der IP (hier) auch nur für den Benutzer erfolgt.
Du kannst in einer Konsole bzw. einem Terminal auch ip a
, ifconfig -a
oder ipconfig /all
eingeben und siehst auch diese Information.
Ich fühle mich gerade mächtig hintergangen und eins kann ich Dir versichern: Dieses Gefühl ist einfach nur beschissen!
Ich fühle mich gerade mächtig hintergangen
Unbedingt. Sowas müsste man aktiv und mit Warnung aktivieren müssen.
Hello,
Es geht in dem Moment an der DSGV vorbei wenn der Browser auf lokale Daten zugreift ohne den Anwender zu fragen!
Nein. Die DSGV greift (jedenfalls so lange die Daten nicht an einen Server gesendet werden) nicht, weil der Browser vom Benutzer selbst gestartet, gesteuert und beendet wird und die Anzeige der IP (hier) auch nur für den Benutzer erfolgt.
Du kannst in einer Konsole bzw. einem Terminal auch
ip a
,ifconfig -a
oderipconfig /all
eingeben und siehst auch diese Information.
Lässt die sich hier nicht in einen AJAX-Request stopfen? Greift da doch noch eine Schutzhürde?
Glück Auf
Tom vom Berg
Tach!
Lässt die sich hier nicht in einen AJAX-Request stopfen? Greift da doch noch eine Schutzhürde?
Nach dem Ermitteln der Adresse ist das ein String, und da gibts keine Hürde, einen solchen auf welche Art auch immer weiterzuverarbeiten. Dass es eine solche Möglichkeit gibt, ändert aber immer noch nichts daran, dass in diesem Fall die Daten nicht nach außen gesendet werden und die DSGVO damit nicht relevant ist.
dedlfix.
Hello,
Lässt die sich hier nicht in einen AJAX-Request stopfen? Greift da doch noch eine Schutzhürde?
Nach dem Ermitteln der Adresse ist das ein String, und da gibts keine Hürde, einen solchen auf welche Art auch immer weiterzuverarbeiten. Dass es eine solche Möglichkeit gibt, ändert aber immer noch nichts daran, dass in diesem Fall die Daten nicht nach außen gesendet werden und die DSGVO damit nicht relevant ist.
Es wäre demnach aber möglich diesen String per AJAX o. ä. zum Server zu transportieren?
Glück Auf
Tom vom Berg
Tach!
Es wäre demnach aber möglich diesen String per AJAX o. ä. zum Server zu transportieren?
Sagte ich ja bereits, ist nur ein String.
dedlfix.
Hello,
Es wäre demnach aber möglich diesen String per AJAX o. ä. zum Server zu transportieren?
Sagte ich ja bereits, ist nur ein String.
Naja, der Filename im Dzrchsuchen-Feld ist auch nur ein String und man daf/durfte(?) ihn irgendwann nicht mal mehr ins src-Attribut eines image-Tags übertragen.
Glück Auf
Tom vom Berg
Tach!
Naja, der Filename im Dzrchsuchen-Feld ist auch nur ein String und man daf/durfte(?) ihn irgendwann nicht mal mehr ins src-Attribut eines image-Tags übertragen.
Ist der Filename einfach nur irgendein String oder ist er ein Javascript-String, der in einer Variable oder Objekteigenschaft vorliegt?
dedlfix.
Lässt die sich hier nicht in einen AJAX-Request stopfen? Greift da doch noch eine Schutzhürde?
Du meinst ahnlich <input type="file" value=..>
das ist wohl nicht der Fall. Sicher wird ein Browser in den lokalen IPStack greifen müssen und RTCPeerConnection
ist auch nicht undokumentiert. Für Anwender jedoch die nun wissen daß sie damit hintergangen werden können ohne gefragt zu werden ist die DSGVO denn mehr ein Witz als in irgendeiner Weise hilfreich und da bin ich nicht der Einzige!
Tach!
Für Anwender jedoch die nun wissen daß sie damit hintergangen werden können ohne gefragt zu werden ist die DSGVO denn mehr ein Witz als in irgendeiner Weise hilfreich.
Die Aussage ist nicht weiter sinnvoll. Die DSGVO ist kein technisches Hindernis, wenn es darum geht, Daten zu übertragen. Sie gibt lediglich mehr oder weniger klare rechtliche Bedingungen für die Beteiligten vor. Ob jemand diese beachtet oder unerlaubt Daten sendet, kann die DSGVO nicht beeinflussen. Das geht auch ohne die Erkenntnis, dass RTCPeerConnection lokale IP-Adressen lesen kann.
dedlfix.
Hello,
Hier der getestete "Stand-Alone-Nachbau". Ich halte das übrigens für ein Sicherheitsrisiko, weil es missbraucht werden kann um einem Angreifer Informationen zu liefern.
<html> <p>Lokale IP: <span id="locIP">Unbekannt</span></p> <script> function checkLocal() { window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome var pc = new RTCPeerConnection( { iceServers: [] } ), noop = function () { }; pc.createDataChannel(""); //create a bogus data channel pc.createOffer(pc.setLocalDescription.bind(pc), noop); // create offer and set local description pc.onicecandidate = function (ice) { //listen for candidate events if (!ice || !ice.candidate || !ice.candidate.candidate) { return; } var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec( ice.candidate.candidate )[1]; document.getElementById('locIP').innerHTML = myIP; pc.onicecandidate = noop; }; } checkLocal(); </script> </html>
Resultat:
Daran sieht man aber wieder mal: der Feind sitzt meistens innen!
Unc Leute, die JavaScript abschalten, haben doch keinen Knall.
Glück Auf
Tom vom Berg
Hallo TS,
die Wikipedia benennt das Problem und nennt Lösungsmöglichkeiten.
Einfach mal wertneutrale Info, ohne was geprüft zu haben.
Rolf
Hello Rolf,
die Wikipedia benennt das Problem und nennt Lösungsmöglichkeiten.
Einfach mal wertneutrale Info, ohne was geprüft zu haben.
Danke für den Tipp.
Muss ich nachher gleich mal unsere Freifunk-JavaScripts untersuchen. Nicht dass da auch so ein "Wurm" drinsteckt.
Glück Auf
Tom vom Berg