Fritz!Load…

… Forum für Software-Entwickler, Web-Designer und Benutzer.

Du bist nicht angemeldet.

Ankündigung

Liebe Fritz!Load-Nutzer,
wie man am Datum des letzten Beitrags erkennt, wird dieses Forum seit langem nicht mehr benutzt. Zwar entstehen keine zusätzliche Kosten, um dieses Forum zu halten, nichtsdestotrotz macht es keinen Sinn ein totes Forum im Internet zu präsentieren. Aus diesem Grund werden wir demnächst dieses Forum schließen. Falls sich dennoch ein paar hartgesottene Mitglieder finden, die dieses Forum immer noch am Leben halten wollen, sollen sich bitte im Forum „Allgemeine Diskussion“ melden.
(19.12.2023)

Hinweis: Falls sich die Forum-Adresse ändern sollte, so gehe bitte auf die Fritz!Load-FAQ-Seite in Sourceforge.net, um die aktuelle Forum-Adresse zu erfahren oder aktualisiere deine Fritz!Load-Version auf den neuesten Stand und nutze den Link „Forum“ unter „Allgemein“ in der Registerkarte „Hilfe“ direkt in Fritz!Load.

#1 am 03. Mar. 2014 um 14:29 Uhr

Andy
Mitglied
Registriert: am 13. Feb. 2014
Beiträge: 108

Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

http://dyndns/cgi-bin/fritzload/gui_download.cgi

Bei aktiven Fernzugang kommt man ohne Passwortanfrage unter der obigen Adresse auf Fritzload und hat da alle Möglichkeiten.

Ein riesiges Sicherheitsleck!

Habe jetzt den Fernzugriff erst mal abgeschaltet, würden den aber gern wieder verwenden.

Ist das Problem bekannt?


Gibt es eine Möglichkeit den Standard Pfad zu ändern
von
http://dyndns/cgi-bin/fritzload/gui_download.cgi
in
http://dyndns/cgi-bin/"irgendetwas"/gui_download.cgi

Das wäre erst mal ein Notbehelf.


DSL: 1&1 Doppel-FLAT VDSL 100 (Komplettanschluss)
Router: AVM FRITZ!Box 7490 - FRITZ!OS - 07.21

Abwesend

#2 am 14. Apr. 2014 um 16:54 Uhr

mucki
Mitglied
Registriert: am 01. Aug. 2012
Beiträge: 25

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Bei mir geht die URL nur mit https mit Benutzername und Passwort - Port 80 ist dicht.
das galt nur bis 5.54 mit der 6.05 habe ich auch Probleme ...

Der Beitrag wurde geändert von mucki (am 23. Aug. 2014 um 03:16 Uhr)


Fritz!Load V0.42/Rev.: 3204 FRITZ!Box 7490 FRITZ!OS: 06.93

Abwesend

#3 am 14. Apr. 2014 um 18:28 Uhr

darki2012
Mitglied
Registriert: am 04. Aug. 2012
Beiträge: 51

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

bei mir ist die url auch offen mit neuster fritzbox/fritzload version... kann auf die usb platte und interface voll zugreifen... ohne Abfrage...wenn da
man jemand ip ranges abscannt ist nicht so toll.... der bug ist schon älter aber noch nicht gefixt worden.

Abwesend

#4 am 15. Apr. 2014 um 10:00 Uhr

rolex0815
Entwickler
Registriert: am 29. Jun. 2012
Beiträge: 558

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Ist hier schon mal behandelt worden:

http://ryblog.eu/fritzload/viewtopic.ph … er=ASC&p=1

Zur Zeit muss man den Fernzugriff deaktivieren.

Abwesend

#5 am 01. Jun. 2014 um 20:46 Uhr

Andy
Mitglied
Registriert: am 13. Feb. 2014
Beiträge: 108

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Habe mir einen funktionierenden Passwortschutz für Fritzload gebastelt. Bei Interesse bitte melden.


DSL: 1&1 Doppel-FLAT VDSL 100 (Komplettanschluss)
Router: AVM FRITZ!Box 7490 - FRITZ!OS - 07.21

Abwesend

#6 am 01. Jun. 2014 um 21:44 Uhr

luka3487
Mitglied
Registriert: am 31. Mar. 2014
Beiträge: 39

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Hallo Andy

das mit dem Passwortschutz interessiert mich, und sicherlich auch viele andere, brennend. Wie hast Du das umgesetzt?
Vielleicht könnte man es auch in das svn einpflegen?

LG

Luka

Abwesend

#7 am 02. Jun. 2014 um 12:04 Uhr

genuk
Entwickler
Registriert: am 30. Sep. 2013
Beiträge: 34

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Hallo Andy

Super. Bin auch sehr interessiert.

Abwesend

#8 am 02. Jun. 2014 um 17:12 Uhr

darki2012
Mitglied
Registriert: am 04. Aug. 2012
Beiträge: 51

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

ich auch ...

Abwesend

#9 am 28. Jul. 2014 um 10:41 Uhr

Andy
Mitglied
Registriert: am 13. Feb. 2014
Beiträge: 108

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Passwortabfrage für Fritzload.


-------------------------------------------------------------------------------------------------------------
cgi/gui_main.cgi bitte ersetzen.
--------------------------------------------------------------------------------------------------------------

#!/bin/ash
VERSION="V0.42"
# release revision for this VERSION
ReleaseRevision="1712"

#pdir="$(cd ..; pwd)"
if [ -f /var/tmp/fritzload.cache ]; then
  . /var/tmp/fritzload.cache
else
  pdir="$(realpath $0/../../)" || pdir="$(cd .. && pwd)"
	. $pdir/bin/BBox
fi
#? cd "$pdir/cgi"
. $pdir/lib/util_file.sh
. $pdir/lib/util_string.sh
. $pdir/lib/captcha_service/captcha_stat.sh

if [ -f ./updatefix2.sh ]; then
	. ./updatefix2.sh
fi

# Check if revision exists. If not create it
if [ ! -f $pdir/config/revision.txt ]; then
	# for first update
	echo "$ReleaseRevision" >$pdir/config/revision.txt
fi

VERSION="$VERSION/Rev.: $(cat $pdir/config/revision.txt)"

# newline!
N="
"

#rm -f $pdir/log/cgi.txt
#log(){
#	echo "$1" >>$pdir/log/cgi.txt
#}

# Taken from LCR Updater, [url=http://www.telefonsparbuch.de]www.telefonsparbuch.de[/url]
cgi_queryString() {
	QVARS=
	QTYPE=GET
	if [ "$REQUEST_METHOD" = POST ]; then
		if [ -z "${CONTENT_TYPE##multipart/form-data*}" ]; then
			QTYPE=MULTI
			local boundary="--${CONTENT_TYPE#multipart/form-data; boundary=}" Rquery= Bquery=
			local contentLength=$CONTENT_LENGTH
			local br="$(echo -e "\015")$N"
			while [ "${contentLength:-0}" -gt 0 ]; do
				read Rquery
				contentLength=$(( $(($contentLength-${#Rquery})) -1))
				Bquery="$Bquery$Rquery$N"
			done
			# boundary-Blöcke
			local data= name= value= file=
			while true; do
				Bquery="${Bquery#*$boundary}"
				data="${Bquery%%$boundary*}"
				[ "$data" = "--$br" ] && break
				data="${data#*name=\"}"
				name="${data%%\"*}"
				file="${data#*filename=\"}"
				if [ "$file" != "$data" ]; then
					file="${file%%\"*}"
					eval Q_${name}_FILE=\"$file\"
				fi
				value="${data#*$br$br}"
				value="${value%$br}"
				eval Q_${name}=\"$value\"
				QVARS="$QVARS$name$N"
			done
		else
			QTYPE=POST
			read query
			local br=$(echo -e "\015")
			query="${query%$br}"
		fi
	else
		query="$QUERY_STRING"
	fi

	# query / param Werte auslesen (Q_name=value)
	local oldIFS="$IFS" data= name=
	export IFS="&"
	for data in $query; do
		name=${data%\=*}
		value="${data#$name}"
		value="${value#=}"
		eval value0="\$Q_${name}"
		if [ -n "$value0" ]; then
			eval Q_${name}=\"$value0$N$value\"
		else
			eval Q_${name}=\"$value\"
			QVARS="$QVARS$name$N"
		fi
	done
	export IFS="$oldIFS"
}
cgi_queryString

# Current instance:
instance=${Q_i:-1}
#?[ -n "$Q_instance" ] && instance="$Q_instance"
tmp=/var/tmp/fritzload$instance
mkdir -pm 0777 $tmp

activeButton(){
	echo -n "<script type=\"text/javascript\">document.getElementById('$1').className='button active';</script>"
}

#!TODO: Uppercase all ini-Vars or set prefix to vars!
if [ -z "$SKIP_INIT_SETTINGS" ]; then
	if [ -f $pdir/config/fritzload.ini ]; then
		. $pdir/config/fritzload.ini
	else
		. $pdir/config/fritzload.default
	fi
	#? cd $pdir/cgi
	if [ ! -d "$skindir" ]; then
		skindir="skins/Skin 1 (mastertester)"
	fi
fi

if [ -d /usr/www/$OEM/html/de/tools/fritzload ]; then
	htmlpath=/html/de/tools/fritzload
elif [ -d /usr/www/$OEM/html/de/tr69_autoconfig/fritzload ]; then
	htmlpath=/html/de/tr69_autoconfig/fritzload
else
	htmlpath=../html
fi

[ -f /var/tmp/fritzload.htmlpath ] && . /var/tmp/fritzload.htmlpath

if [ "$HTTPS" = on ]; then
	fritzurl="https://$HTTP_HOST/"
elif [ "$HTTPS" = off ]; then
	fritzurl="http://$HTTP_HOST/"
fi

### downloadTransfer einbinden, für _checkNAS
# Muss der Aufruf jedesmal sein?
if [ "$change_nas_active" = 1 ]; then
	. $pdir/lib/downloadTransfer.sh
else
	# DUMMY
	_checkNAS(){
		return
	}
fi

# Header
# Der komplette Header muss gesendet werden damit die Ausgabe nicht gepuffert wird.
echo -e "HTTP/1.0 200 OK\r"
echo -e "Content-Type: text/html; charset=iso-8859-15\r"
echo -e "Expires: -1\r"
echo -e "Pragma: no-cache\r"
########## Andy Passwortabfrage Anfang
VOIPPASS="$(grep ^passvoip= $pdir/config/fritzload.ini | ${BBox} cut -c11- | sed "s/\"//g" )"
if [ $Q_passwd == $VOIPPASS ]; then
echo -e "Set-Cookie: test=12345678" # irgend ein Wert
fi
########## Andy Passwortabfrage Ende
echo -e "\r"

[ -z "$SKIP_PAGE_TOP" ]	&& . "$skindir/gui_pagetop.sh"
[ -f $signaldir/flblupdated ] && echo "<p class=msg>Der Fritz!Load-Bootloader wurde aktualisiert. Bitte den Router neustarten.</p>"

# action=flaction.json?do=changeskin
skin_select(){
	cat <<-EOF
		<form action=#>
			<select size=1 name=skindir onchange="change_skin(this)">
				$(
					local cdir="$(pwd)"
					cd $pdir/cgi/skins
					for skin in *; do
						if [ "skins/$skin" = "$skindir" ]; then
							echo "<option value=\"$skindir\" selected=\"selected\">$skin</option>"
						else
							echo "<option value=\"skins/$skin\">$skin</option>"
						fi
					done
					cd $cdir
				)
			</select>
		</form>
	EOF
}

# Update textarea via xhttprequest
# JS_UPDATE_TEXTAREA [BUTTON-ID] [TEXTAREA-ID] [JSLOAD-FILEID]
JS_UPDATE_TEXTAREA(){
	cat <<-EOF
		\$('#$1').click(function() {
			\$.ajax({
			  url: "flinfo.json?get=file_source_$3",
			  dataType: 'text',
			  success: function(data, textStatus){
					\$('#$2').val( data.replace(/^\n+/, "") );
					if ("$2" == "logList") showHistory($SET_showReverse)
				},
				error: function(jqXHR, textStatus, errorThrown) {
					alert("Fehler! Empfange Daten für $1 $2 $3\n[Stand:"+ textStatus +"]\n[Ankomende:"+ jqXHR.responseText +"]");
				}
			})
			return false;
		});
	EOF
}
########## Andy Passwortabfrage Anfang

if ([ "$flg_password_check_config_page" == "1" ] && [ $addurl -n ]); then


 if [ `echo $HTTP_COOKIE | grep -c "test=12345678" ` -gt 0 ]
then
  echo "" #"Success"
  else
  #echo "Fail";

  if ([ "$VOIPPASS" != "" ] && [ "$Q_passwd" != "$VOIPPASS" ]); then
cat <<-EOF

<form method="post" name="FritzLoad">
	<fieldset>
	<legend>Fritz!Load - Anmeldung</legend>
		<table class="formTable" cellspacing="10">
			<tr>
				<td colspan=2>
					Die Einstellungenoberfläche von FRITZ!Load ist mit einem Kennwort geschützt.<br>
					Melden Sie sich mit dem Kennwort der FRITZ!Box an.<br>&nbsp;
				</td>
			</tr>
			<tr>
				<th style="text-align: right; padding-right: 5px"><b>Kennwort</b></th>
				<td>
					<input name="passwd" type="password" size="20" maxlength="128">
					<input type=submit value=Anmelden>
				</td>
			</tr>
		</table>
	</fieldset>
</form>

EOF
	PAGEEND
  exit 0
  fi
fi
fi

########## Andy Passwortabfrage Ende


----------------------------------------------------------------------------------------------------------------------------
cgi/add_url.cgi     bitte ersetzen
----------------------------------------------------------------------------------------------------------------------------
#!/bin/ash
SKIP_PAGE_TOP=1
########## Andy Passwortabfrage Anfang
addurl="1";
########## Andy Passwortabfrage Ende
. ./gui_main.cgi

file=${targetdir:-/var/tmp}/add_url.txt
prio=0
if [ "$QTYPE" = MULTI ];then
	if [ -n "$Q_url" ];then
		urldecode "$Q_url" >$file
		url="FILE"
		if [ -n "$Q_prio" ];then
			prio=1
		fi
	elif [ -n "$Q_wireshark" ];then
		urldecode "$Q_wireshark" >$file
		url="WIRESHARK"
		links="${targetdir:-$tdir}/added_links.txt"
	fi
else
	url="$(urldecode "$Q_url")"
	file=""
fi

if [ -n "$url" ];then
	cd $pdir/bin
	./add_url.sh "$url" "$file" "$links" $instance 1 $prio
	echo "Die Download-Liste wurde gespeichert.";
	if [ -n "$links" ];then
		if [ ! -f "$links" ];then
			echo "Keine Datei entpackter Links wurde gefunden."
		else
			cat $links
		fi
	fi
else
	echo "Keine gültige Parameter (FILE Upload/Post/Get) oder keine URL erhalten!"
fi

## Kleine Verzögerung, damit das Ausgabefenster unter Windows nicht zu schnell schließt.
#sleep 1
echo

Der Beitrag wurde geändert von Andy (am 01. Aug. 2014 um 20:32 Uhr)


DSL: 1&1 Doppel-FLAT VDSL 100 (Komplettanschluss)
Router: AVM FRITZ!Box 7490 - FRITZ!OS - 07.21

Abwesend

#10 am 28. Jul. 2014 um 10:47 Uhr

Andy
Mitglied
Registriert: am 13. Feb. 2014
Beiträge: 108

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Unter Konfiguration muss natürlich Passwortabfrage aktiviert sein


DSL: 1&1 Doppel-FLAT VDSL 100 (Komplettanschluss)
Router: AVM FRITZ!Box 7490 - FRITZ!OS - 07.21

Abwesend

#11 am 09. Mar. 2018 um 16:46 Uhr

Chefi
Mitglied
Registriert: am 21. Jan. 2013
Beiträge: 108

Antw.: Fritzload ist ohne Passwortschutz aus dem Internet erreichbar

Wir schreiben das Jahr 2018, würdet ihr annehmen das dieser Passwortschutz noch stark genug ist um ein Portforwarding darauf zuzulassen?

Edit: Vielleicht sollte ich das etwas präzisieren:
Mir ist schon bewusst das es in jedem Fall suboptimal ist, aber angenommen ich nehme Benutzername und Kennwort aus einem vollen Zeichensatz, 32 Zeichen lang, was einen Bruteforce unwahrscheinlich macht, und verwende das immer nur über eine vertrauenswürde Verbindung, eigene gesicherte Netzwerke oder Mobilfunk, da es ja kein https ist und der stunnel nicht mehr zu funktionieren scheint, ist der verwendete Webserver (httpd glaube ich) dann noch aktuell genug als das es nicht einfach einen Bypass, exploit oder verstecktes Masterkennwort gibt?

Edit2:Stunnel funktioniert offensichtlich doch noch, man muss dann nur natürlich diesen Port in die "Portforwarding" Ausnahmen in der Firewall eingeben. Vllt könnt ihr ja eine Einschätzung für beide Fälle abgeben?

Edit3: Der User lernt noch während dem Schreiben, und vor die Wahl gestellt zwischen weiterer Leichenschändung und Off-Topic entscheide ich mich für die Leichenschändung und führe mein kleines Selbstgespräch in einem anderen Thread fort.

Der Beitrag wurde geändert von Chefi (am 10. Mar. 2018 um 00:58 Uhr)

Abwesend

Fußzeile des Forums

Angetrieben von FluxBB