]> git.mxchange.org Git - ctracker.git/blobdiff - libs/lib_detector.php
Updated to allow database-less operation
[ctracker.git] / libs / lib_detector.php
index be64007b4907a2c87a229c3e0e2cf4856cf02f92..1c16b54588cb31df37fbe97d857bc3952aca121a 100644 (file)
@@ -67,7 +67,7 @@ function initCrackerTrackerArrays () {
                '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://'
+               '=http://', '=https://','=ftp://','_SESSION'
        );
 
        // Block these words found in POST requests
@@ -81,7 +81,7 @@ function initCrackerTrackerArrays () {
        );
 
        // Load email header
-       $GLOBALS['ctracker_header'] = crackerTrackerLoadEmaiLTemplate('header');
+       $GLOBALS['ctracker_header'] = crackerTrackerLoadEmailTemplate('header');
 }
 
 // Checks for worms
@@ -131,6 +131,21 @@ Referrer        : ".crackerTrackerReferer()."
        crackerTrackerDie();
 }
 
+// Sends the ticket emails out
+function sendCrackerTrackerTicketMails () {
+       // Load user template
+       $mail = crackerTrackerLoadEmailTemplate('user_add_ticket', $GLOBALS['ctracker_last_ticket']);
+
+       // Send email to the user
+       crackerTrackerSendMail($mail, $GLOBALS['ctracker_last_ticket']['ctracker_ticket_email'], getCrackerTrackerLocalized('user_add_ticket_subject'));
+
+       // Load webmaster template
+       $mail = crackerTrackerLoadEmailTemplate('webmaster_add_ticket', $GLOBALS['ctracker_last_ticket'], getCrackerTrackerConfig('ctracker_language'));
+
+       // Send email to the user
+       crackerTrackerSendMail($mail, null, getCrackerTrackerLocalized('webmaster_add_ticket_subject'));
+}
+
 // Sends a mail out
 function crackerTrackerSendMail ($mail, $recipient = null, $subject = null) {
        // Construct dummy array
@@ -145,7 +160,7 @@ function crackerTrackerSendMail ($mail, $recipient = null, $subject = null) {
                // Send the email out only in non-debug mode
                if (isCrackerTrackerDebug()) {
                        // Output message
-                       print 'Recipient='.$recipient.'<br />Subject='.$subject.'<br />Text=<pre>' . $mail . '</pre>';
+                       print 'Recipient=' . $recipient . '<br />Subject=' . $subject . '<br />Text=<pre>' . $mail . '</pre>';
 
                        // All fine
                        return true;
@@ -159,7 +174,13 @@ function crackerTrackerSendMail ($mail, $recipient = null, $subject = null) {
                        // Send it the deprecated way with constant
                        return mail(constant('__CTRACKER_EMAIL'), 'CTracker: Attack detected!', $mail, $GLOBALS['ctracker_header']);
                }
-       } // END - if
+       } elseif (isCrackerTrackerDebug()) {
+               // Output message
+               print 'Recipient=' . $recipient . '<br />Subject=' . $subject . '<br />Text=<pre>' . $mail . '</pre>';
+
+               // All fine
+               return true;
+       }
 }
 
 // Sends a detected POST attack mail
@@ -199,10 +220,15 @@ function crackerTrackerDie () {
        if (!isCrackerTrackerDebug()) sleep(mt_rand(10,30));
 
        // Bye, bye...
-       print '<pre>';
-       debug_print_backtrace();
-       die('</pre>');
-       die();
+       if (isCrackerTrackerDebug()) {
+               // With debug backtrace
+               print '<pre>';
+               debug_print_backtrace();
+               die('</pre>');
+       } else {
+               // Simple die()
+               die();
+       }
 }
 
 // Logs the attack attempt
@@ -221,20 +247,21 @@ function crackerTrackerLogAttack () {
 
        // Prepare array for database insert
        $rowData = array(
-               'remote_addr' => determineCrackerTrackerRealRemoteAddress(),
-               'user_agent'  => crackerTrackerUserAgent(),
-               'get_data'    => crackerTrackerQueryString(),
-               'post_data'   => $GLOBALS['ctracker_post_track'],
-               'check_worm'  => $GLOBALS['ctracker_checkworm'],
-               'check_post'  => $GLOBALS['ctracker_check_post'],
-               'server_name' => crackerTrackerServerName(),
-               'script_name' => crackerTrackerScriptName(),
-               'referer'     => crackerTrackerReferer(),
-               'proxy_used'  => $proxyUsed
+               'remote_addr'   => determineCrackerTrackerRealRemoteAddress(),
+               'user_agent'    => crackerTrackerUserAgent(),
+               'get_data'      => crackerTrackerQueryString(),
+               'post_data'     => $GLOBALS['ctracker_post_track'],
+               'check_worm'    => $GLOBALS['ctracker_checkworm'],
+               'check_post'    => $GLOBALS['ctracker_check_post'],
+               'server_name'   => crackerTrackerServerName(),
+               'script_name'   => crackerTrackerScriptName(),
+               'referer'       => crackerTrackerReferer(),
+               'proxy_used'    => $proxyUsed,
+               'first_attempt' => 'NOW()'
        );
 
        // Insert the array in database
-       crackerTrackerInsertArray($rowData);
+       crackerTrackerInsertArray('ctracker_data', $rowData);
 }
 
 // Alerts the current user about malicious/suspicious traffic
@@ -257,9 +284,12 @@ function crackerTrackerAlertCurrentUser () {
                                // Load "Thank you" template
                                crackerTrackerLoadTemplate('add_ticket_thanks');
                        }
-               } elseif (isset($_POST['ctracker_add_ticket'])) {
+               } elseif ((isset($_POST['ctracker_add_ticket'])) && (!empty($_POST['name'])) && (!empty($_POST['email']))) {
                        // Add the ticket
                        addCrackerTrackerTicket($_POST);
+
+                       // Send the email out
+                       sendCrackerTrackerTicketMails();
                } else {
                        // Display the form for new ticket
                        crackerTrackerLoadTemplate('add_ticket');