]> git.mxchange.org Git - ctracker.git/commitdiff
Some code blocks moved, detection of '..//' added, user-agent is now securely used
authorRoland Haeder <roland@mxchange.org>
Thu, 23 Sep 2010 12:09:23 +0000 (12:09 +0000)
committerRoland Haeder <roland@mxchange.org>
Thu, 23 Sep 2010 12:09:23 +0000 (12:09 +0000)
libs/lib_detector.php
libs/lib_general.php

index 6c95c815588e1763ea968233d13b89b045050ef1..9659a40530080b0f5f03d0d190ff2bd47d018ab1 100644 (file)
@@ -41,7 +41,7 @@ function initCrackerTrackerArrays () {
        );
 
        // Attacks we should detect and blok
-       $GLOBALS['ctracker_wormprotector'] = array(
+       $GLOBALS['ctracker_get_blacklist'] = 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=',
@@ -54,7 +54,7 @@ function initCrackerTrackerArrays () {
                '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/passwd','/etc/shadow', '/etc/groups', '/etc/gshadow',
-               'HTTP_USER_AGENT', 'HTTP_HOST', 'wget%20', 'uname\x20-a', 'bin/id', '/bin/', '/chgrp',
+               'HTTP_USER_AGENT', 'HTTP_HOST', 'wget%20', 'uname\x20-', 'uname%20-', 'bin/id', '/bin/', '/chgrp',
                '/chown', '/usr/bin', 'g\+\+', 'bin/python', 'bin/tclsh', 'bin/nasm', 'perl%20', 'traceroute%20',
                'ping%20', '.pl', 'bin/xterm', 'lsof%20', '.conf', 'motd%20', 'HTTP/1.', '.inc.php', '.lib.php',
                'config.php', 'file\://', 'window.open', '<SCRIPT>', 'javascript\://', 'img src', 'img%20src', '.jsp',
@@ -66,8 +66,8 @@ function initCrackerTrackerArrays () {
                'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', 'php_', 'phpinfo()', '\<?php', '?\>', 'sql=',
                'div style=', 'overflow: auto', 'height: 1px', 'cc%20', 'admin_action=', 'path=', 'action=http',
                'page=http', 'module=http', 'op=http', 'id=http', 'id%3Dhttp', 'action%3Dhttp', 'page%3Dhttp',
-               'module%3Dhttp', 'op%3Dhttp', 'starhack', '../../', 'directory=http', 'dir=http', 'busca', 'uol.com',
-               '=http://', '=https://','=ftp://','_SESSION','CFG_ROOT','/proc/'
+               'module%3Dhttp', 'op%3Dhttp', 'starhack', '../../','..//', 'directory=http', 'dir=http', 'busca',
+               'uol.com', '=http://', '=https://','=ftp://','=file://','_SESSION','CFG_ROOT','/proc/'
        );
 
        // Block these words found in POST requests
@@ -87,7 +87,7 @@ function initCrackerTrackerArrays () {
 // Checks for worms
 function isCrackerTrackerWormDetected () {
        // Check against the whole list
-       $GLOBALS['ctracker_checkworm'] = str_replace($GLOBALS['ctracker_wormprotector'], '*', crackerTrackerQueryString());
+       $GLOBALS['ctracker_checkworm'] = str_replace($GLOBALS['ctracker_get_blacklist'], '*', crackerTrackerQueryString());
 
        // If it differs to original and the *whole* request string is not in whitelist
        // then blog the attempt
@@ -108,6 +108,9 @@ function isCrackerTrackerPostAttackDetected () {
 
 // Prepares a mail and send it out
 function sendCrackerTrackerMail () {
+       // Log the attack
+       crackerTrackerLogAttack();
+
        // Mail content
        $mail = "Attack detected:
 -----------------------------------------------------
@@ -121,9 +124,6 @@ Referrer        : ".crackerTrackerReferer()."
 -----------------------------------------------------
 ";
 
-       // Log the attack
-       crackerTrackerLogAttack();
-
        // Send it out
        crackerTrackerSendMail($mail);
 
@@ -185,6 +185,9 @@ function crackerTrackerSendMail ($mail, $recipient = null, $subject = null) {
 
 // Sends a detected POST attack mail
 function sendCrackerTrackerPostMail () {
+       // Log the attack
+       crackerTrackerLogAttack();
+
        // Mail text
        $mail = "POST-Attack detected:
 -----------------------------------------------------
@@ -201,9 +204,6 @@ Filtered POST string : ".$GLOBALS['ctracker_check_post']."
 -----------------------------------------------------
 ";
 
-       // Log the attack
-       crackerTrackerLogAttack();
-
        // Send it out
        crackerTrackerSendMail($mail);
 
@@ -216,17 +216,20 @@ function crackerTrackerDie () {
        // Close database link
        crackerTrackerCloseDatabaseLink();
 
-       // Sleep a little to waste the attacker's time
-       if (!isCrackerTrackerDebug()) sleep(mt_rand(10,30));
+       // Do only sleep if debug/developer mode is not enabled
+       if (!isCrackerTrackerDebug()) {
+               // Sleep a little to waste the attacker's time
+               sleep(mt_rand(10,30));
+       } // END - if
 
        // Bye, bye...
        if (isCrackerTrackerDebug()) {
-               // With debug backtrace
+               // With debug backtrace in debug/developer mode
                print '<pre>';
                debug_print_backtrace();
                die('</pre>');
        } else {
-               // Simple die()
+               // Simple die() call
                die();
        }
 }
index dee78e189b0ccfc467f66797d36f78d40942e307..0738f41cd69a844564de659423f0b04d8b85c533 100644 (file)
@@ -119,8 +119,8 @@ function crackerTrackerUserAgent () {
 
        // Is the entry there?
        if (isset($_SERVER['HTTP_USER_AGENT'])) {
-               // Then use it
-               $ua = $_SERVER['HTTP_USER_AGENT'];
+               // Then use it securely
+               $ua = crackerTrackerSecureString($_SERVER['HTTP_USER_AGENT']);
        } // END - if
 
        // Return it