Only for testing purposes the string is being sanitized, else http:// becomes http...
authorRoland Häder <rhaeder@cho-time.de>
Thu, 28 Jul 2016 09:53:13 +0000 (11:53 +0200)
committerRoland Häder <rhaeder@cho-time.de>
Thu, 28 Jul 2016 09:53:13 +0000 (11:53 +0200)
Signed-off-by: Roland Häder <rhaeder@cho-time.de>
ctracker.php
libs/lib_
libs/lib_connect.php
libs/lib_detector.php
libs/lib_general.php
libs/lib_updates.php

index 8dc66da748506fbf9f69bfc0f4185c9c1d7edb89..b9f04d6a84dd3ea6a9ce433c064235c8c3b46a09 100644 (file)
@@ -65,6 +65,3 @@ if (isCrackerTrackerWormDetected()) {
 
 // Close any open database links
 crackerTrackerCloseDatabaseLink();
-
-// [EOF]
-?>
index 61077ca0f2d80a92b3ed5f70f2f49193e911d98a..0f877be9e92f717cd4c0e142d261486df47ea975 100644 (file)
--- a/libs/lib_
+++ b/libs/lib_
@@ -20,6 +20,3 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-
-// [EOF]
-?>
index 05a7de9026e41722765a9576478ae5d95bccf908..4885b2fac3757c7111fc8e31d4338e9f8cd96e9f 100644 (file)
@@ -415,6 +415,3 @@ function freeCrackerTrackerResult (mysqli_result $result) {
        // Free result
        $result->free();
 }
-
-// [EOF]
-?>
index 49b39768fd6b5f93c1cb6ebcaa57048e39baf5fc..02e468385073a4c16b7e4a95a8a4f0d1cbae0608 100644 (file)
@@ -173,8 +173,8 @@ function initCrackerTrackerArrays () {
 // Checks for worms
 function isCrackerTrackerWormDetected () {
        // Check against the whole list
-       $GLOBALS['ctracker_checked_get'] = urldecode(str_ireplace($GLOBALS['ctracker_get_blacklist'], '*', str_replace(array('//', '/./'), array('/', '/'), crackerTrackerQueryString())));
-       $GLOBALS['ctracker_checked_ua']  = urldecode(str_ireplace($GLOBALS['ctracker_get_blacklist'], '*', str_replace(array('//', '/./'), array('/', '/'), crackerTrackerUserAgent())));
+       $GLOBALS['ctracker_checked_get'] = urldecode(str_ireplace($GLOBALS['ctracker_get_blacklist'], '*', crackerTrackerQueryString(TRUE)));
+       $GLOBALS['ctracker_checked_ua']  = urldecode(str_ireplace($GLOBALS['ctracker_get_blacklist'], '*', crackerTrackerUserAgent(TRUE)));
 
        /*
         * If it differs to original and the *whole* request string is not in
@@ -182,12 +182,12 @@ function isCrackerTrackerWormDetected () {
         */
        $isWorm = (
                (
-                       $GLOBALS['ctracker_checked_get'] != crackerTrackerQueryString() && (!in_array(crackerTrackerQueryString(), $GLOBALS['ctracker_whitelist']))
+                       $GLOBALS['ctracker_checked_get'] != crackerTrackerQueryString(TRUE) && (!in_array(crackerTrackerQueryString(TRUE), $GLOBALS['ctracker_whitelist']))
                ) || (
-                       $GLOBALS['ctracker_checked_ua'] != crackerTrackerUserAgent()
+                       $GLOBALS['ctracker_checked_ua'] != crackerTrackerUserAgent(TRUE)
                )
        );
-       //* DEBUG-DIE: */ die('isWorm='.intval($isWorm).PHP_EOL.'get="'.$GLOBALS['ctracker_checked_get'].'"'.PHP_EOL.'"'.crackerTrackerQueryString().'"'.PHP_EOL.'ua="'.$GLOBALS['ctracker_checked_ua'].'"'.PHP_EOL.'"'.crackerTrackerUserAgent().'"'.PHP_EOL);
+       //* DEBUG-DIE: */ die('isWorm='.intval($isWorm).PHP_EOL.'get='.PHP_EOL.'"'.$GLOBALS['ctracker_checked_get'].'"'.PHP_EOL.'"'.crackerTrackerQueryString().'"'.PHP_EOL.'ua='.PHP_EOL.'"'.$GLOBALS['ctracker_checked_ua'].'"'.PHP_EOL.'"'.crackerTrackerUserAgent().'"'.PHP_EOL);
 
        // Return it
        return $isWorm;
@@ -199,10 +199,10 @@ function isCrackerTrackerPostAttackDetected () {
        $GLOBALS['ctracker_post_track'] = urldecode(implode_r('&', $_POST));
 
        // Check for suspicious POST data
-       $GLOBALS['ctracker_checked_post'] = urldecode(str_ireplace($GLOBALS['ctracker_post_blacklist'], '*', str_replace(array('//', '/./'), array('/', '/'), $GLOBALS['ctracker_post_track'])));
+       $GLOBALS['ctracker_checked_post'] = urldecode(str_ireplace($GLOBALS['ctracker_post_blacklist'], '*', crackerTrackerSanitize($GLOBALS['ctracker_post_track'])));
 
        // Is it detected?
-       return ((isCrackerTrackerWormDetected()) || ($GLOBALS['ctracker_checked_post'] != $GLOBALS['ctracker_post_track']));
+       return ((isCrackerTrackerWormDetected()) || ($GLOBALS['ctracker_checked_post'] != crackerTrackerSanitize($GLOBALS['ctracker_post_track'])));
 }
 
 // Prepares a mail and send it out
@@ -393,6 +393,3 @@ function crackerTrackerAlertCurrentUser () {
        // And stop here
        die();
 }
-
-// [EOF]
-?>
index 4180c9d75a52685a05f610847b968d47d6b6dfe4..c13a5690f68f7cb2bd85e3812753f4b325a138e7 100644 (file)
@@ -143,7 +143,7 @@ function isCrackerTrackerProxyUsed () {
 }
 
 // Detects the user-agent string
-function crackerTrackerUserAgent () {
+function crackerTrackerUserAgent ($sanitize = FALSE) {
        // Default is 'unknown'
        $ua = 'unknown';
 
@@ -153,48 +153,81 @@ function crackerTrackerUserAgent () {
                $ua = crackerTrackerSecureString(urldecode($_SERVER['HTTP_USER_AGENT']));
        } // END - if
 
+       // Sanitize it?
+       if ($sanitize === TRUE) {
+               // Sanitize ...
+               $ua = crackerTrackerSanitize($ua);
+       } // END - if
+
        // Return it
        return $ua;
 }
 
 // Detects the script name
-function crackerTrackerScriptName () {
+function crackerTrackerScriptName ($sanitize = FALSE) {
+       // Default is NULL
+       $scriptName = NULL;
+
        // Is it there?
-       if (!isset($_SERVER['SCRIPT_NAME'])) {
+       if (!empty($_SERVER['SCRIPT_NAME'])) {
                // Return NULL
-               return NULL;
+               $scriptName = crackerTrackerSecureString($_SERVER['SCRIPT_NAME']);
        } // END - if
 
-       // Should always be there!
-       return crackerTrackerSecureString($_SERVER['SCRIPT_NAME']);
+       // Sanitize it?
+       if ($sanitize === TRUE) {
+               // Sanitize ...
+               $scriptName = crackerTrackerSanitize($scriptName);
+       } // END - if
+
+       // Return
+       return $scriptName;
 }
 
 // Detects the query string
-function crackerTrackerQueryString () {
+function crackerTrackerQueryString ($sanitize = FALSE) {
+       // Default is NULL
+       $query = NULL;
+
        // Is it there?
-       if (!isset($_SERVER['QUERY_STRING'])) {
+       if (!empty($_SERVER['QUERY_STRING'])) {
                // Return NULL
-               return NULL;
+               $query = crackerTrackerEscapeString(urldecode($_SERVER['QUERY_STRING']));
        } // END - if
 
-       // Should always be there!
-       return crackerTrackerEscapeString(urldecode($_SERVER['QUERY_STRING']));
+       // Sanitize it?
+       if ($sanitize === TRUE) {
+               // Sanitize ...
+               $query = crackerTrackerSanitize($query);
+       } // END - if
+
+       // Return it
+       return $query;
 }
 
 // Detects the server's name
-function crackerTrackerServerName () {
+function crackerTrackerServerName ($sanitize = FALSE) {
+       // Default is NULL
+       $serverName = NULL;
+
        // Is it there?
-       if (!isset($_SERVER['SERVER_NAME'])) {
+       if (!empty($_SERVER['SERVER_NAME'])) {
                // Return NULL
-               return NULL;
+               $serverName = crackerTrackerSecureString($_SERVER['SERVER_NAME']);
        } // END - if
 
-       // Should always be there!
-       return crackerTrackerSecureString($_SERVER['SERVER_NAME']);
+       // Sanitize it?
+       if ($sanitize === TRUE) {
+               // Sanitize ...
+               $serverName = crackerTrackerSanitize($serverName);
+       } // END - if
+
+       // Return it
+       return $serverName;
 }
 
 // Detects the referer
-function crackerTrackerReferer () {
+function crackerTrackerReferer ($sanitize = FALSE) {
        // Default is a dash
        $referer = '-';
 
@@ -204,6 +237,12 @@ function crackerTrackerReferer () {
                $referer = crackerTrackerSecureString(urldecode($_SERVER['HTTP_REFERER']));
        } // END - if
 
+       // Sanitize it?
+       if ($sanitize === TRUE) {
+               // Sanitize ...
+               $referer = crackerTrackerSanitize($referer);
+       } // END - if
+
        // Return it
        return $referer;
 }
@@ -545,5 +584,7 @@ function unsetCtrackerData () {
        } // END - foreach
 }
 
-// [EOF]
-?>
+// Sanitizes string
+function crackerTrackerSanitize ($str) {
+       return str_replace(array('//', '/./'), array('/', '/'), $str);
+}
index dc0cd675278088b16eafdca74eb53508b87f6d80..72b8e23676e45d599ccb528e29b778743c860c99 100644 (file)
@@ -101,6 +101,3 @@ function runCrackerTrackerUpdates ($update) {
                runCrackerTrackerSql($sql, __FUNCTION__, __LINE__);
        } // END - foreach
 }
-
-// [EOF]
-?>