[HowTo] Fritz!Box Led´s deaktivieren Fritz!OS 6.50 ganz einfach.

Tribonia

Neuer User
Mitglied seit
8 Okt 2016
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Es gibt eine ganz einfache möglichkeit die Anzeige der Fritz!Box zu deaktivieren! eine Anleitung gibt es unter folgendem link...

[...]
 
Zuletzt bearbeitet von einem Moderator:
Also ich würde diese Seite nicht benutzen!
Hier wird die SessionID zu einem Server im Internet gesendet, dort wird eine Seite zusammengebastelt die neben dem harmlosen Ändern der LED's auch alle anderen Einstellungen der Box versteckt modifizieren könnte!
Mit dem drücken auf den OK-Knopf hat man dann plötzlich einen Fenrzugung für einen neuen Benutzer aktivert oder ähnliches.

[Sorry für meien Doppelpost, aber hoffentlich nutzt diese Seite niemand]
 
Also ich würde diese Seite nicht benutzen!
Hier wird die SessionID zu einem Server im Internet gesendet, dort wird eine Seite zusammengebastelt die neben dem harmlosen Ändern der LED's auch alle anderen Einstellungen der Box versteckt modifizieren könnte!
Mit dem drücken auf den OK-Knopf hat man dann plötzlich einen Fenrzugung für einen neuen Benutzer aktivert oder ähnliches.

[Sorry für meien Doppelpost, aber hoffentlich nutzt diese Seite niemand]

Du kannst dir gerne den Quellcode anschauen. Das form wird nur an http://fritz.box/system/led_display.lua gesendet. Da es leider durch die neue Fritz Version nicht möglich ist diese Seite ohne Session ID aufzurufen. Ist diese Möglichkeit die Benutzerfreundlichste. Du kannst ja gerne prüfen ob neue Nutzer angelegt werden.

Für alle paranoiden kann ich auch gerne noch einmal eine Anleitung machen ohne die Webseite....
 
Nein, den Quellcode von led.php können wir uns nicht anschauen, das wird durch das StGB verboten. Man kann sie da speichern und dann einige Minuten später damit Spaß haben.
 
Bitte -> [...]

- - - Aktualisiert - - -

Und wenn ich die ID hätte würde ich nicht Lokal auf deine Fritz.box kommen. Außerdem ist nach dem Absenden des Scriptes die SessionID ungültig...

Musst das ja nicht benutzen wollte nur helfen, aber das wird ja nicht gedankt
 
Zuletzt bearbeitet von einem Moderator:
Warum ist die Seite jetzt schon wieder weg?
 
Moin

Weiss nicht. :noidea:

Hab mir aber das RAR runtergeladen und mir eine "komprimierte" Version (für lokalen Webserver) daraus gebastelt...
Screenshot_2016-10-10-10-35-28.pngScreenshot_2016-10-10-10-35-50.png
...funktioniert hier mit: 7360SL (6.30) und 7560 (6.53)

@Tribonia: Was hälst du davon hier eine Offline-Javascript-Version mit uns zu entwickeln?
Ein Ansatz wäre, statt POST GET zu nehmen, weil der Querystring z.B. dann so behandelt werden kann...
gqs.html
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" type="image/x-ico" href="http://fritz.box/favicon.ico" />
<style>*{overflow:hidden;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}</style>
<title></title>
<script type="text/javascript">
function getQuerystring(key, default_) {
if (default_==null) default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null)
return default_;
else
return qs[1];
}
</script>
</head>
<body>
<h1>
<script type="text/javascript">
document.title = getQuerystring('sid');
document.write('<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
+'<SnomIPPhoneText>'
+'<Text>' +getQuerystring('url')+'/system/led_display.lua?sid='+getQuerystring('sid')
+'<\/Text>'
+'<\/SnomIPPhoneText>');
</script>
</h1>
<noscript><h1>JavaScript disabled?!</h1></noscript>
</body>
</html>
Screenshot_2016-10-10-10-35-12.png
 
Zuletzt bearbeitet:
Seite wurde vom Berteiber offline genommen.... Also vom Provider

- - - Aktualisiert - - -

Moin

Weiss nicht. :noidea:

Hab mir aber das RAR runtergeladen und mir eine "komprimierte" Version (für lokalen Webserver) daraus gebastelt...
Anhang anzeigen 87784Anhang anzeigen 87785
...funktioniert hier mit: 7360SL (6.30) und 7560 (6.53)

@Tribonia: Was hälst du davon hier eine Offline-Javascript-Version mit uns zu entwickeln?
Ein Ansatz wäre, statt POST GET zu nehmen, weil der Querystring z.B. dann so behandelt werden kann...
gqs.html
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" type="image/x-ico" href="http://fritz.box/favicon.ico" />
<style>*{overflow:hidden;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}</style>
<title></title>
<script type="text/javascript">
function getQuerystring(key, default_) {
if (default_==null) default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null)
return default_;
else
return qs[1];
}
</script>
</head>
<body>
<h1>
<script type="text/javascript">
document.title = getQuerystring('sid');
document.write('<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
+'<SnomIPPhoneText>'
+'<Text>' +getQuerystring('url')+'/system/led_display.lua?sid='+getQuerystring('sid')
+'<\/Text>'
+'<\/SnomIPPhoneText>');
</script>
</h1>
<noscript><h1>JavaScript disabled?!</h1></noscript>
</body>
</html>
Anhang anzeigen 87786






Gute Idee von dir, können wir so umsetzten. War auch schon meine Idee, war nur mit meinem script am einfachsten ohne viel entwicklung rein zu stecken
 
Moins

Sehr gut :D

Hab schon eine reine HTML/CSS/JS gemacht.
Sie besteht aus drei Teilen...
1. index.html
2. gqs.html
3. fbled.css
...und ich füge sie etwas später als Quelltext in diesen Post ein.
...

Sourcecode

index.html
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>FritzBox LEDs an/aus</title>
<link rel="shortcut icon" type="image/x-ico" href="http://fritz.box/favicon.ico" />
<link rel="stylesheet" type="text/css" href="fbled.css" />
</head>
<body>
<header>
<img src="http://fritz.box/favicon.ico" width="32" height="32" alt="Keine Fritz!Box erkannt">Fritz!Box LEDs an/aus
</header>
<div>
<form method="GET" action="gqs.html">
<label>Session ID: <input type="password" name="sid"></label> 
<label>Fritz!Box URL: <input type="url" name="url" value="https://fritz.box"></label>
<button type="submit">Absenden</button>
</form>
</div> 
<p><a href="index.txt">index.html</a></p>
<p><a href="gqs.txt">gqs.html</a></p>
<p><a href="fbled.css">fbled.css</a></p>
</body> 
</html>

gqs.html
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" type="image/x-ico" href="http://fritz.box/favicon.ico" />
<link rel="stylesheet" type="text/css" href="fbled.css" />
<title></title>
<script type="text/javascript"> 
function getQuerystring(key, default_) {
if (default_==null)
default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null || qs[1] == '')
 return default_;
else
 return qs[1];
}
</script>
</head>
<body>
<header>
<img src="http://fritz.box/favicon.ico" width="32" height="32" alt="Keine Fritz!Box erkannt">Fritz!Box LEDs an/aus
</header>
<script type="text/javascript">
var sid_default="0123456789abcdef";
var url_default="http://fritz.box";
var sid=getQuerystring('sid',sid_default);
var url=decodeURIComponent(getQuerystring('url',url_default));
document.title = url;
document.write('<div>'
+'<form method=\"POST\" action=\"'+url+'/system/led_display.lua?sid='+sid+'\" name=\"main_form\">'
+'<label><input name=\"led_display\" id=\"uiViewLedDisplay0\" value=\"0\" onchange=\"OnChangeLedDisplay(0)\" type=\"radio\">LED-Anzeige an<\/label>'
+'<label><input name=\"led_display\" id=\"uiViewLedDisplay2\" value=\"2\" onchange=\"OnChangeLedDisplay(1)\" checked=\"checked\" type=\"radio\">LED-Anzeige aus<\/label>'
+'<input name=\"sid\" value=\"'+sid+'\" type=\"hidden\">'
+'<button type=\"submit\" id=\"uiApply\" name=\"apply\">Ok<\/button>'
+'<\/form>' 
+'<\/div>');
</script>
<noscript><h1>JavaScript disabled?!</h1></noscript>
</body>
</html>

fbled.css
Code:
header {
width:100%;
position:relative;
top:0;
left:0;
background-color:#006ec0;
color:white;
font-size:50px;
text-align:center;
font-family:Arial;
padding-top:15px;
padding-bottom:15px;
}
header > img {
color:yellow;
font-size:33%;
float:left;
margin-left:30px;
}
body {
background-color:#f0eee6;
font-family: Arial;
}
div > form {
text-align:center;
border:solid gray 1px;
background:white;
width:33%;
padding:3%;
margin:10% 33% 10% 33%;
}
div > form > label {
display:block;
text-align:center;
}
div > form > button {
background-color:#006ec0;
border:0px; color:white;
font-size:23px;
min-width:100px;
padding:10px;
}

Hab alles entfernt, was zum Funktionieren nicht notwendig ist.
:rolleyes:

Damit die Links in index.html für den Sourcecode funktionieren...

Linux:
ln -sf index.html index.txt
ln -sf gqs.html gqs.txt

Windows
copy index.html index.txt
copy qgs.html gqs.txt

CSS Info
Da der <header> mit position:fixed; auf den "Androiden" beim automatischen Zoomen mir immer die Sicht versperrte, hab ich ihn auf "relative" gesetzt.
Außerdem ermöglicht das zentrale CSS eine bequemere "Designoptimierung".

index.html
Die <input> Eingabefelder sind vom Typ: password und url
...wer das nicht mag kann das ändern in: type="text"
 
Zuletzt bearbeitet:
Finde ich SUPER Jungs, ein kleines Tool für Dummys BITTE ;)
 
Cool, ist eine nette Sache. Danke an euch beiden! :)
 
Für Linux-Benutzer geht das auch als "Einzeiler" - Windows-Benutzer müßten ggf. die Linux-Integration von W10 benutzen oder auf PowerShell ausweichen.

Am Ende ist das auch nichts anderes als der Aufruf einer URL, ein Browser folgt dann halt noch diversen Umleitungen und landet wieder auf der Login-Seite.

Code:
wget -q -O - http://fritz.box/data.lua?sid=[B]<SID>[/B]\&led_display=[B]<0|1|2>[/B]\&apply=\&oldpage=/system/led_display.lua >/dev/null
ist zwar nicht "browsertauglich", aber für Automatisierungen (nachts, wenn alles schläft, ist meistens keiner wach und die LEDs können abgeschaltet werden) einfacher umzusetzen ... auch das automatische Ermitteln einer gültigen SID ist ja machbar, wenn man automatisieren will.

Ansonsten bastelt man sich einfach die URL "http://fritz.box/data.lua?sid=<SID>&led_display=<0|1|2>&apply=&oldpage=/system/led_display.lua" zusammen und ruft diese im Browser auf - die Umschaltung der LEDs sollte auch so erfolgen und die Weiterleitung auf die Login-Seite muß man dann halt ignorieren - alte SIDs behalten trotzdem ihre Gültigkeit.

Ich bin ja auch für Bequemlichkeit zu haben ... aber wenn es am Ende drei Dateien braucht und die SID dann immer noch in einem HTML-Eingabefeld von Hand einzutragen ist, dann sehe ich da den Unterschied zu einer "handgemachten URL" nicht so richtig.

AVM hat mehr oder weniger die Auswertung der unterschiedlichen Requests (GET vs. POST) in einen "Verteiler" ausgelagert und wertet jetzt meistens nur noch POST-Variablen in den einzelnen Seiten aus. Daher klappt auch der direkte Aufruf einer URL mit Query-String für "led_display.lua" nicht, wenn man die Einstellung verändern will. Die "data.lua" geht bei einem GET-Request hin und kopiert die Daten aus "box.get" einfach noch einmal nach "box.post":
Code:
if box.get.oldpage and not box.get.page and getPid(box.get.oldpage, gPageData) then
box.post = box.get
end
und damit kommen die dann auch bei der "led_display.lua" in der Form an, wie sie erwartet werden. Die "data.lua" braucht halt zusätzlich die Angabe, welche Seite am Ende gemeint war, denn sie selbst ist eben nur der erwähnte "Verteiler".

EDIT: Das funktioniert nur, wenn die "led_display.lua" auch in den Menüdaten verzeichnet ist ... bei AVM ist das nicht mehr der Fall. Damit klappt das nur dann, wenn man z.B. das betreffende "modscript" mittels "modfs" auf seine Firmware losgelassen hat ... dann bleibt es allerdings ein "Einzeiler", um die LEDs z.B. zeitgesteuert ein- und auszuschalten.
 
Zuletzt bearbeitet:
Es geht auch nur mit der gqs.html, von mir aus auch ohne CSS.
Denn die macht das finale POST.

Und wer noch modifizieren kann, verbiegt sich: "myfritz.box <-> /var/html.myfritz"
...auf den eigenen Webspace, wo index.html ein Link auf gqs.html ist.
Screenshot_2016-10-12-17-38-17.png
(Nach Klick/Tap auf MyFRITZ! im AVM Webinterface)
...so wird die SID automatisch (bei einer modifizierten 7360SL mit 6.30) übertragen.
Bei der landet man auf der led_display Seite und nicht auf der Loginseite.

Normalerweise sieht man das wegen dem iframe nicht.
Mit "über iframe" und HTTPS siehts übrigens so aus...
Screenshot_2016-10-12-18-52-08.png
...und nach Klick auf "OK"...
Screenshot_2016-10-12-18-52-26.png
...wo sich ordentlich ausgeloggt (SID ungültigmachen) wird.

Das CSS wird gefunden (HTTPS), wenn es im Header so eingebunden wird...
HTML:
<link rel="stylesheet" type="text/css" href="https://myfritz.box/myfritz/fbled.css" />
...bei Standard HTTPS Port (443).
 
Zuletzt bearbeitet:
Hier mal meine Version. Entpacken und index starten.
 

Anhänge

  • avm-led-tool.zip
    4 KB · Aufrufe: 1,412
  • Like
Reaktionen: kdrkdr und deoroller
Danke, funzt !!!
 
Bei der 7580 funzt es fast. Die Internet-LED bleibt leider an.:-(
 
Ist ein 7580 Problem.
Bei einer 7560 funzt es wie es soll.
 
Gerade auf meiner 7390 ausprobiert. Funzt :) Dankeschön :keks:
 
Bug in gqs.html

Die beiden <input>s enthalten ungültige/unnötige Event (onchange) Funktionsaufrufe.


Code:
+'<label><input name=\"led_display\" id=\"uiViewLedDisplay0\" value=\"0\" onchange=\"OnChangeLedDisplay(0)\" type=\"radio\">LED-Anzeige an<\/label>'
+'<label><input name=\"led_display\" id=\"uiViewLedDisplay2\" value=\"2\" onchange=\"OnChangeLedDisplay(1)\" checked=\"checked\" type=\"radio\">LED-Anzeige aus<\/label>'
...ändern in...


Code:
+'<label><input name=\"led_display\" id=\"uiViewLedDisplay0\" value=\"0\" type=\"radio\">LED-Anzeige an<\/label>'
+'<label><input name=\"led_display\" id=\"uiViewLedDisplay2\" value=\"2\" checked=\"checked\" type=\"radio\">LED-Anzeige aus<\/label>'
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.