Ffmap-d3 map frontend mit unescaped HTML - Sicherheit

Hallo,

vorab
Das Frontend schon vor langer Zeit mit dem Meshviewer ersetzt, aber einige Communitys setzten es noch mehr oder weniger aktiv ein.

In das Frontend von ffmap kann HTML beliebig via Router Modell usw. injected werden. (Letzter versuch ist etwas her). Daher ist es an der Zeit auch die letzten Instanzen stillzulegen.

Wer ein Beispiel möchte → Einfach eine PM schicken oder IRC, wo ich eure ffmap erreichen kann.

Wollte das nur mal gerne angesprochen haben, da mir dies vor 1,2 Jahren schon aufgefallen war und im Forum nichts gefunden den habe. In unserem Meshviewer hab ich aktuell kein Weg gefunden. Andere Tools hab ich nicht probiert.

Viele Gruesse
Xaver

2 Likes

du meinst über das entsprechende backend kann man beliebigen code hochspielen, oder? Seh da das problem nicht wirklich. Aber das auch wirklich oldschool kartenzeug

Nein, das Backend läuft OK samt nodes.json. Aber im Frontend wird kein HTMl-Markup escaped. Also Routername <b>XYZ-123</b> wird zu XYZ-123. Habs beim letzten versuch nicht probiert mal ein <script>alert(1);</script> einzufügen.

Das teil meine ich
http://map.freifunk.in-kiel.de/

UPDATE neue bekannte links:
http://map.freifunk-wuppertal.net/list.html

Die Kieler haben map ja auf mesh umgeleitet :wink: Aber an welcher Stelle siehst Du das Problem, HTML-Injection via Alfred oder via URL?

Ja ich habe das heute Nacht umgeleitet, weil mapquest keine Daten mehr liefert.
Vorher hatten wir noch beide Maps aktiv.

Ist der HTML inject nur in der Karte möglich? Oder auch im Graph?

In der table jedenfalls. Alles andere hab ich schon länger nicht mehr probiert.

Nicht via URL sondern via Alfred.

Wo sehe ich das Problem?
Normal sollte die Software es im Frontend escapen (mit einer valid JSON umgehen können). Routernamen im Interface zu begrenzen bringt wenig, da ssh jeden Value erlaubt. Beispielsweise hat auch Grafana mit einigen Zeichen wie . oder anderen Steuerungszeichen Probleme. Daher haben wir im meshviewer als auch Grafana ein Regex Whitelist.

Ich hoffe so ein Doppelpost ist OK, da es einige neue Sachen dabei sein. Eher unabhängig von oben.

Targets:
https://www.google.de/?#q=Knotenliste+freifunk
→ Knotenlsite is unique @ freifunk

Requirements
Router mit firmware oder VM offlaoder

Inject:
$EDITOR /etc/config/system

</a><a href="#" onclick="alert(1)">NODENAME

href für link style und onclick erlaubt js. Iframe overlay wäre auch vorstellbar usw. Ist nur ein beispiel.

Ergebnis:

Möglichkeiten:
Clickjacking usw. JS injecten usw.

1 Like

Der Bug ist seit mindestens 3 Jahren behoben. Der Code ist hier archiviert. Ggf. wollt ihr dann mal updaten: GitHub - ffnord/ffmap-d3 at deprecated

1 Like

Also in der community wo ich es zuerst gesehen habe, gibt es noch keine 3 Jahre.
Einer der branches müsste ja für v2 nodes.json sein? Sind die auch gesichert?

Was meinst du damit? ffmap-d3 nutzt ein anderes Datenformat als meshviewer.