'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
'starhack', 'DeLiMehmet', 'hisset', 'Hisset', 'delimert', 'MecTruy',
'busca'
);
+
+ // Load email header
+ $GLOBALS['ctracker_header'] = crackerTrackerLoadEmailTemplate('header');
}
// Checks for worms
function isCrackerTrackerWormDetected () {
// Check against the whole list
- $GLOBALS['ctracker_checkworm'] = str_replace($GLOBALS['ctracker_wormprotector'], '*', $_SERVER['QUERY_STRING']);
+ $GLOBALS['ctracker_checkworm'] = str_replace($GLOBALS['ctracker_wormprotector'], '*', crackerTrackerQueryString());
// If it differs to original and the *whole* request string is not in whitelist
// then blog the attempt
- return ($GLOBALS['ctracker_checkworm'] != $_SERVER['QUERY_STRING'] && (!in_array($_SERVER['QUERY_STRING'], $GLOBALS['ctracker_whitelist'])));
+ return ($GLOBALS['ctracker_checkworm'] != crackerTrackerQueryString() && (!in_array(crackerTrackerQueryString(), $GLOBALS['ctracker_whitelist'])));
}
// Checks POST data
$mail = "Attack detected:
-----------------------------------------------------
Remote-IP : ".determineCrackerTrackerRealRemoteAddress()."
-User-Agent : ".$_SERVER['HTTP_USER_AGENT']."
-Request-string : ".$_SERVER['QUERY_STRING']."
+User-Agent : ".crackerTrackerUserAgent()."
+Request-string : ".crackerTrackerQueryString()."
Filtered string : ".$GLOBALS['ctracker_checkworm']."
-Server : ".$_SERVER['SERVER_NAME']."
-Script : ".$_SERVER['SCRIPT_NAME']."
-Referrer : ".$_SERVER['HTTP_REFERRER']."
+Server : ".crackerTrackerServerName()."
+Script : ".crackerTrackerScriptName()."
+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) {
+function crackerTrackerSendMail ($mail, $recipient = null, $subject = null) {
// Construct dummy array
$rowData = array(
'remote_addr' => determineCrackerTrackerRealRemoteAddress(),
'check_worm' => $GLOBALS['ctracker_checkworm'],
- 'server_name' => $_SERVER['SERVER_NAME']
+ 'server_name' => crackerTrackerServerName()
);
// Only send email if not yet found
// Send the email out only in non-debug mode
if (isCrackerTrackerDebug()) {
// Output message
- print '<pre>' . $mail . '</pre>';
+ print 'Recipient='.$recipient.'<br />Subject='.$subject.'<br />Text=<pre>' . $mail . '</pre>';
// All fine
return true;
+ } elseif (!is_null($recipient)) {
+ // Recipient specified
+ return mail($recipient, $subject, $mail, $GLOBALS['ctracker_header']);
} elseif (isset($GLOBALS['ctracker_email'])) {
// Send it
return mail($GLOBALS['ctracker_email'], 'CTracker: Attack detected!', $mail, $GLOBALS['ctracker_header']);
$mail = "POST-Attack detected:
-----------------------------------------------------
Remote-IP : ".determineCrackerTrackerRealRemoteAddress()."
-User-Agent : ".$_SERVER['HTTP_USER_AGENT']."
-Request-string : ".$_SERVER['QUERY_STRING']."
+User-Agent : ".crackerTrackerUserAgent()."
+Request-string : ".crackerTrackerQueryString()."
Filtered string : ".$GLOBALS['ctracker_checkworm']."
-Server : ".$_SERVER['SERVER_NAME']."
-Script : ".$_SERVER['SCRIPT_NAME']."
-Referrer : ".$_SERVER['HTTP_REFERRER']."
+Server : ".crackerTrackerServerName()."
+Script : ".crackerTrackerScriptName()."
+Referrer : ".crackerTrackerReferer()."
-----------------------------------------------------
POST string : ".$GLOBALS['ctracker_post_track']."
Filtered POST string : ".$GLOBALS['ctracker_check_post']."
if (!isCrackerTrackerDebug()) sleep(mt_rand(10,30));
// Bye, bye...
- die();
+ if (isCrackerTrackerDebug()) {
+ // With debug backtrace
+ print '<pre>';
+ debug_print_backtrace();
+ die('</pre>');
+ } else {
+ // Simple die()
+ die();
+ }
}
// Logs the attack attempt
// Prepare array for database insert
$rowData = array(
'remote_addr' => determineCrackerTrackerRealRemoteAddress(),
- 'user_agent' => $_SERVER['HTTP_USER_AGENT'],
- 'get_data' => $_SERVER['QUERY_STRING'],
+ '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' => $_SERVER['SERVER_NAME'],
- 'script_name' => $_SERVER['SCRIPT_NAME'],
- 'referer' => $_SERVER['HTTP_REFERER'],
+ 'server_name' => crackerTrackerServerName(),
+ 'script_name' => crackerTrackerScriptName(),
+ 'referer' => crackerTrackerReferer(),
'proxy_used' => $proxyUsed
);
crackerTrackerInsertArray($rowData);
}
+// Alerts the current user about malicious/suspicious traffic
+function crackerTrackerAlertCurrentUser () {
+ // Is there some data?
+ if (isset($GLOBALS['ctracker_last_suspicious_entry'])) {
+ // Does the user have a ticket?
+ if (ifCrackerTrackerIpHasTicket()) {
+ // Should we continue?
+ if (isset($_POST['ctracker_continue'])) {
+ // Set cookie
+ sendCrackerTrackerCookie();
+
+ // And redirect to same URL
+ crackerTrackerRedirectSameUrl();
+ } elseif (ifCrackerTrackerCookieIsSet()) {
+ // Return here to normal program
+ return;
+ } else {
+ // Load "Thank you" template
+ crackerTrackerLoadTemplate('add_ticket_thanks');
+ }
+ } 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');
+ }
+ } // END - if
+
+ // And stop here
+ die();
+}
+
// [EOF]
?>