Liebe Leser!
wenn es der 4er ist, wäre es peinlich :)
ist er ... s.u.
und eben diesen dann auszusperren ist NOCH peinlicher
Die JavaScript'verschlüsselung' läuft nur auf dem IE. Einige Zeichen stimmen bei NN einfach nicht, evtl. ist dass der unescape(%7e); bug. (Da kommt das Unicode Zeichen für Euro raus.)
Es könnte ja sein dass ich was falsch gemacht habe, aber wenn ich das richtig sehe liegt hinter vote.php das folgende:
Das vote.php liefert bei Aufruf mit IE anderen Code:
hier mal in dekodiert:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.78 [en] (Win98; U) [Netscape]">
</head>
<body background="wasserzeichenabraham-pokal30.jpg" onselectstart="return(false);" ontrackstart="return(false);" oncontextmenu="return(false);">
<center>
<br><br><br><br><br><br>
<a href=vote.php>Neu laden</a> <br>
<table width=334><tr><td><a href="vote2.php?vote=3&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Ajuh")</td>
</tr><tr><td><a href="vote2.php?vote=7&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Pssst!")</td>
</tr><tr><td><a href="vote2.php?vote=1&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Abraham in der Fremde")</td>
</tr><tr><td><a href="vote2.php?vote=6&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Märchen vom Auszug aller Ausländer")</td>
</tr><tr><td><a href="vote2.php?vote=8&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Sokrates zu Gast")</td>
</tr><tr><td><a href="vote2.php?vote=9&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Tobit und Tobias")</td>
</tr><tr><td><a href="vote2.php?vote=10&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Schon gewusst...?")</td>
</tr><tr><td><a href="vote2.php?vote=4&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Kinder von Mpeketoni")</td>
</tr><tr><td><a href="vote2.php?vote=5&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Doris")</td>
</tr><tr><td><a href="vote2.php?vote=2&vote2=8775128053861017958006908">Abstimmen</a></td>
<td>(Für "Abrakadabra")</td>
</tr></table><a href=vote.php>Neu laden</a> <a href=vote.php>Neu laden</a> <a href=vote.php>Neu laden</a> <a href=vote.php>Neu laden</a> </body>
</html>
Der vote2 Parameter wird dabei dynamisch für jeden Aufruf neu erzeugt. Die Reihenfolge der Zeilen ist jedesmal anders. (Das vote Script erzeugt also den Javascript verschleierten HTML-Text.)
Das vote2.php antwortet dann mit folgendem -wiederum verschleierten- Script:
<html>
<body onselectstart='return(false);' ontrackstart='return(false);' oncontextmenu='return(false);'>
Bitte warten Sie bis die Abstimmung registriert ist!
<script language='JavaScript'>
function nextdoc()
{
document.location.href='vote.php?vote=&vote2=&vote3=988491678440392';
}
if (window.prompt('Bitte geben Sie 204 ein zum abstimmen!', '') == '204')
{
window.setTimeout('nextdoc();', 1000);
}
</script>
</body>
</html>
Hier muss die Zahl (hier 204, die wird aber verschieden erzeugt) eingegeben werden, um dann die eigentliche Abstimmung zu tätigen.
Um mehrfach Abzustimmen muss/kann man den Vorgang mit einem reload von vote.php neu aufsetzen.
Nach einigem Nachdenken bin ich zu dem Schluss gekommen, das das ganze wohl 'voting' Scripte verhindern soll, andererseits soll mehrfaches Aufrufen der Abstimmung möglich bleiben.
(Gegen mehrfach-Abstimmen fehlen ansonsten die Cookies....[http://www.php-center.de/faq/faq-scripts.html#scripts-2]
)
Wenn ich mir allerdings die Postings von 'khani' so angucke war die Sorge wohl unbegründet.
Diese Quältextverschleierung ist mir übrigens schonmal begegnet. Interessant ist, dass die Variablen jedesmal anders benannt werden, das soll[1] wohl Dekoderscripten das Leben schwermachen. Um sich die Sachen selber mal schnell anzugucken tut es aber das übliche document.write("<plaintext>"+z); (statt des eval(...)). Wozu denn ein 'aufwändiges' Script schreiben wenn die Entschleierung kostenlos mitgeliefert wird?
Gruss,
Carsten
[1] mit RegExpen ist das rauspfriemeln der interessanten Strings dennoch einfach: /,[a-z]="([^"])*"/ für den "Schlüssel" und /[};][a-z]("([^"])")/ für die "Daten".