CBack (CrackerTracker) – Schutz gegen Hacker!

Posted by eddy14 - 02/06/07 at 07:06 am

Habe mir vor 3 Tagen den “Stand alone CrackerTracker” angeschaut, und festgestellt, das es garnicht so sicher ist :S

Vielleicht kennt ihr das Script als “CBack” was so manche Foren (als phpBB Version!) benutzen, um sich gegen Hacker-Angriffe zu schützen. Ich habe mir nur die Standalone Version angeschaut (nicht die Foren-Version!) und viele Lücken entdeckt:

Schaut euch die kleine Datei mal an, die euch vor jeglichen Angriffen (wie z.B. SQL-Injections) schützen soll.

$cracktrack = $_SERVER['QUERY_STRING'];
$wormprotector = array(‘chr(‘, ‘chr=’, ‘chr%20′, ‘%20chr’, ‘wget%20′, ‘%20wget’, ‘wget(‘,
‘cmd=’, ‘%20cmd’, ‘cmd%20′, ‘rush=’, ‘%20rush’, ‘rush%20′,
‘union%20′, ‘%20union’, ‘union(‘, ‘union=’, ‘echr(‘, ‘%20echr’, ‘echr%20′, ‘echr=’,
‘esystem(‘, ‘esystem%20′, ‘cp%20′, ‘%20cp’, ‘cp(‘, ‘mdir%20′, ‘%20mdir’, ‘mdir(‘,
‘mcd%20′, ‘mrd%20′, ‘rm%20′, ‘%20mcd’, ‘%20mrd’, ‘%20rm’,
‘mcd(‘, ‘mrd(‘, ‘rm(‘, ‘mcd=’, ‘mrd=’, ‘mv%20′, ‘rmdir%20′, ‘mv(‘, ‘rmdir(‘,
‘chmod(‘, ‘chmod%20′, ‘%20chmod’, ‘chmod(‘, ‘chmod=’, ‘chown%20′, ‘chgrp%20′, ‘chown(‘, ‘chgrp(‘,
‘locate%20′, ‘grep%20′, ‘locate(‘, ‘grep(‘, ‘diff%20′, ‘kill%20′, ‘kill(‘, ‘killall’,
‘passwd%20′, ‘%20passwd’, ‘passwd(‘, ‘telnet%20′, ‘vi(‘, ‘vi%20′,
‘insert%20into’, ‘select%20′, ‘nigga(‘, ‘%20nigga’, ‘nigga%20′, ‘fopen’, ‘fwrite’, ‘%20like’, ‘like%20′,
‘$_request’, ‘$_get’, ‘$request’, ‘$get’, ‘.system’, ‘HTTP_PHP’, ‘&aim’, ‘%20getenv’, ‘getenv%20′,
‘new_password’, ‘&icq’,'/etc/password’,'/etc/shadow’, ‘/etc/groups’, ‘/etc/gshadow’,
‘HTTP_USER_AGENT’, ‘HTTP_HOST’, ‘/bin/ps’, ‘wget%20′, ‘uname\x20-a’, ‘/usr/bin/id’,
‘/bin/echo’, ‘/bin/kill’, ‘/bin/’, ‘/chgrp’, ‘/chown’, ‘/usr/bin’, ‘g\+\+’, ‘bin/python’,
‘bin/tclsh’, ‘bin/nasm’, ‘perl%20′, ‘traceroute%20′, ‘ping%20′, ‘.pl’, ‘/usr/X11R6/bin/xterm’, ‘lsof%20′,
‘/bin/mail’, ‘.conf’, ‘motd%20′, ‘HTTP/1.’, ‘.inc.php’, ‘config.php’, ‘cgi-’, ‘.eml’,
‘file\://’, ‘window.open’, ‘<SCRIPT>’, ‘javascript\://’,'img src’, ‘img%20src’,’.jsp’,'ftp.exe’,
‘xp_enumdsn’, ‘xp_availablemedia’, ‘xp_filelist’, ‘xp_cmdshell’, ‘nc.exe’, ‘.htpasswd’,
‘servlet’, ‘/etc/passwd’, ‘wwwacl’, ‘~root’, ‘~ftp’, ‘.js’, ‘.jsp’, ‘admin_’, ‘.history’,
‘bash_history’, ‘.bash_history’, ‘~nobody’, ‘server-info’, ‘server-status’, ‘reboot%20′, ‘halt%20′,
‘powerdown%20′, ‘/home/ftp’, ‘/home/www’, ‘secure_site, ok’, ‘chunked’, ‘org.apache’, ‘/servlet/con’,
‘<script’, ‘/robot.txt’ ,’/perl’ ,’mod_gzip_status’, ‘db_mysql.inc’, ‘.inc’, ‘select%20from’,
‘select from’, ‘drop%20′, ‘.system’, ‘getenv’, ‘http_’, ‘_php’, ‘php_’, ‘phpinfo()’, ‘<?php’, ‘?>’, ‘sql=’);$checkworm = str_replace($wormprotector, ‘*’, $cracktrack);if ($cracktrack != $checkworm)
{
$cremotead = $_SERVER['REMOTE_ADDR'];
$cuseragent = $_SERVER['HTTP_USER_AGENT'];

die( “Attack detected! <br /><br /><b>Dieser Angriff wurde erkannt und blockiert:</b><br />$cremotead – $cuseragent” );
}

Ok, die erste Sicherheitslücke die ich fand, war die, das nur die URL nach verdächtigen Strings durchsucht wird ($_SERVER['QUERY_STRING'] durchsucht nur die URL). Man kann also immernoch alle Exploits nutzen, die durch $_POST in das System eindringen

Als 2tes fand ich, das nicht mal wirklich “union” und “select” ausgefiltert werden. Eher das “select” mit einem Leerzeichen hinten dran (“select%20″).
Was bedeutet das? Richtig, wir können “select+” oder “select/**/” verwenden, was genau das gleiche tut, und somit die Schutzvorrichtung umgeht.

Aber man muss sagen, das die vor XSS Schutz bieten (Per POST XSS zu machen ist fuck, und sowas wie “<script>” wird rausgefiltert … stimmts? Jo stimmt, aber jetzt kommt das komische, und die 3te Lücke die ich fand.
CBack selbst bietet uns eine XSS Lücke an

die( “Attack detected! <br /><br /><b>Dieser Angriff wurde erkannt und blockiert:</b><br />$cremotead – $cuseragent” );

Unseren User-Agent können wir fälschen! Wir müssen die URL nur abändern, sodass diese Meldung erscheint, und dabei müssen wir unseren User-Agent z.B. zu

<script>alert(document.cookie)</script>

ändern. Aaaaber, filtert CBack nicht die “<script>”s raus? Ja schon, aber wie gesagt, nur in der URL, und unseren User-Agent gibt der Browser beim ansurfen der Seite mit
Der einzige Nachteil, und wieso man diese Lücke nicht effektiv nutzen kann ist: Man kann vom User nicht verlangen, den HTTP_USER_AGENT zu fälschen xD Aber, das komische sollte ja sein, das eine Schutzvorrichtung, eine Lücke hat, vor der es schützen sollte! ^^

Aber dann gibts noch die 4te, und wohl erschreckenste Lücke:
str_replace ist case-sensitive! Das heißt, es achtet auf die Klein und Großschreibung … und dies heißt wiederum, das sowas wie z.B. “UnIoN%20″ oder “UNION%20″ nicht gefiltert wird…. und dies heißt nochmals, das die Abfrage:

if ($cracktrack != $checkworm)
{


Fehlschlägt, und das Script nicht abbricht weiterzu arbeiten.

Letzendlich finde ich, das CBack fast keine Schutzvorrichtung bietet … (sogar eine Lücke öffnet, um genau zu sein ^^)

If you enjoyed this article please consider staying updated via RSS. Links to your own social media pages could be added here.

3 Responses to “CBack (CrackerTracker) – Schutz gegen Hacker!”

  1. D4m14n says:
    June 2nd, 2007 at 08:13

    Nett Nett,
    jedoch im Grunde genommen alles schon bekannt, außer die 4te Lücke, die du beschrieben hast.

    WIe du schon sagtest, das Script zum “Schutz” gegen Hacker bringt rein gar nix, wenn der Angriff über einen Exploit der $_post benutzt kommt… ebenfalls nicht, wenn man UNION/**/ oä benutzt… das kann man ja aber mit leichtigkeit ändern ;)

    Wie dem auch sei, das Script habe ich früher bei Woltlab Burning Boards verwendet:
    http://www.wbb-security.de/support/products.php?action=demo&product=security

    Kannste dir ja mal bei Gelegenheit anschauen :P

  2. admin says:
    June 2nd, 2007 at 10:44

    Jo, danke für deinen Comment …. werds mir bei Gelegenheit mal reinziehen =)

  3. earlyhost says:
    June 3rd, 2007 at 12:56

    Hi,

    ich bin der Admin von wbb-security.de! Mich würde es interessieren, was du bei meinem SecuritySystem premium findest. Ich würde dir eine Lizenz kostenlos zur Verfügung stellen. Melde dich bitte einfach per E-Mail bei mir.

    Mit freundlichen Grüßen,
    earlyhost

    //edit by Eddy:
    kk, hat sich erledigt. Hab dem netten hier gerne geholfen … hoffe ich war hilfreich genug ;D

Leave a Reply

I would love to hear your view.