RewriteEngine on
RewriteCond %{HTTP:Accept-Language} ="" [NC]
RewriteRule .* http://%{SERVER_NAME}/?s=%{REQUEST_URI} [R=301,L]
'."\r\n\r\n";
}
if($_POST['Webshell'] == true) {
$htaccess .= '#protect Webshell
Order allow,deny
Deny from all
'."\r\n\r\n";
}
if($_POST['FileInclution'] == true) {
$htaccess .= '
#protect FileInclution
RewriteEngine on
RewriteCond %{QUERY_STRING} (\.php|passwd|\.inc) [NC]
RewriteRule .* http://%{SERVER_NAME}/?s=%{REQUEST_URI} [R=301,L]
'."\r\n\r\n";
}
if($_POST['XSS'] == true) {
$htaccess .= '
#protect XSS
RewriteEngine on
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC]
RewriteRule .* http://%{SERVER_NAME}/?s=%{REQUEST_URI} [R=301,L]
'."\r\n\r\n";
}
if($_POST['SQLi'] == true) {
$htaccess .= '
#protect SQL Injection
RewriteEngine on
RewriteCond %{QUERY_STRING} (from\(select|union|database\(|ascii\() [NC]
RewriteRule .* http://%{SERVER_NAME}/?s=%{REQUEST_URI} [R=301,L]
'."\r\n\r\n";
}
if($_POST['NullByte'] == true) {
$htaccess .= '
#protect NullByte
RewriteEngine on
RewriteCond %{QUERY_STRING} (%u002e%u002e%u2215|%252e%252e%252f|%00|%5C00|||%09|%0D%0A) [NC]
RewriteRule .* http://%{SERVER_NAME}/?s=%{REQUEST_URI} [R=301,L]
'."\r\n\r\n";
}
if($_POST['RCE'] == true) {
$htaccess .= '
#protect RCE Abitrary
RewriteEngine on
RewriteCond %{QUERY_STRING} (eval\(|base64\_decode\(|str\_rot13\(|php\_uname\(|system\(|exec\(|passthru\(|popen\(|include|require|wget|lwp\_download|file\_get\_contents\(|fwrite\(|die\(|exit\(|6ae6ba59fcaca6cbc7ec9a75bb51295c|6c6f67696e70776e7a|36655e88aae705fa607da6bb513b3b99) [NC]
RewriteRule .* http://%{SERVER_NAME}/?s=%{REQUEST_URI} [R=301,L]
'."\r\n\r\n";
}
$htaccess .= "#END AntiHaxtool"."\r\n\r\n";
$file_htaccess = dirname(__file__)."./../../.htaccess";
if(file_exists($file_htaccess)) {
$fp = fopen($file_htaccess,'r');
$content = fread($fp,filesize($file_htaccess));
fclose($fp);
if(!preg_match("/AntiHaxtool/i",trim($content))) {
$htaccess .= $content."\r\n\r\n";
$fp_backup = fopen("backup".$file_htaccess,'w');
fwrite($fp_backup,$content);
fclose($fp_backup);
}
}
$fp = fopen($file_htaccess,'w');
fwrite($fp,$htaccess);
fclose($fp);
$ret = '';
}
return $ret;
}
function current_htaccess() {
$file = dirname(__file__)."./../../.htaccess";
if(file_exists($file)) {
$fp = fopen($file,'r');
$content = fread($fp,filesize($file));
fclose($fp);
}
$AuthBypass = '
AuthBypass'."\r\n";
$Webshell = ' Webshell'."\r\n";
$FileInclution = ' Local/Remote File Inclution';
$XSS = ' XSS Injection'."\r\n";
$SQLi = ' SQL Injection'."\r\n";
$NullByte = ' Directory Travarsal & Null Byte Injection'."\r\n";
$RCE = ' Remote Command Excute'."\r\n";
if(file_exists($file)) {
if(preg_match("/AuthBypass/i",trim($content))) {
$AuthBypass = ' AuthBypass'."\r\n";
}
if(preg_match("/Webshell/i",trim($content))) {
$Webshell = ' Webshell'."\r\n";
}
if(preg_match("/FileInclution/i",trim($content))) {
$FileInclution = ' Local/Remote File Inclution';
}
if(preg_match("/XSS/i",trim($content))) {
$XSS = ' XSS Injection'."\r\n";
}
if(preg_match("/SQL Injection/i",trim($content))) {
$SQLi = ' SQL Injection'."\r\n";
}
if(preg_match("/NullByte/i",trim($content))) {
$NullByte = ' Directory Travarsal & Null Byte Injection'."\r\n";
}
if(preg_match("/RCE/i",trim($content))) {
$RCE = ' Remote Command Excute'."\r\n";
}
}
return $AuthBypass.$Webshell.$FileInclution.$XSS.$SQLi.$NullByte.$RCE;
}
function get_x_server() {
$_HTTP_SERVER = $_SERVER;
unset($_HTTP_SERVER["SERVER_NAME"],$_HTTP_SERVER["HTTP_HOST"],$_HTTP_SERVER['SERVER_SOFTWARE'],$_HTTP_SERVER['REQUEST_URI'],$_HTTP_SERVER['REDIRECT_MIBDIRS'],$_HTTP_SERVER['REDIRECT_MYSQL_HOME'],$_HTTP_SERVER['REDIRECT_OPENSSL_CONF'],$_HTTP_SERVER['REDIRECT_PHP_PEAR_SYSCONF_DIR'],$_HTTP_SERVER['REDIRECT_PHPRC'],$_HTTP_SERVER['REDIRECT_TMP'],$_HTTP_SERVER['REDIRECT_STATUS'],$_HTTP_SERVER['MIBDIRS'],$_HTTP_SERVER['MYSQL_HOME'],$_HTTP_SERVER['OPENSSL_CONF'],$_HTTP_SERVER['PHP_PEAR_SYSCONF_DIR'],$_HTTP_SERVER['PHPRC'],$_HTTP_SERVER['TMP'],$_HTTP_SERVER['PATH'],$_HTTP_SERVER['SystemRoot'],$_HTTP_SERVER['COMSPEC'],$_HTTP_SERVER['PATHEXT'],$_HTTP_SERVER['WINDIR'],$_HTTP_SERVER['SERVER_SIGNATURE'],$_HTTP_SERVER['SERVER_ADDR'],$_HTTP_SERVER['SERVER_PORT'],$_HTTP_SERVER['DOCUMENT_ROOT'],$_HTTP_SERVER['SERVER_ADMIN'],
$_HTTP_SERVER['SCRIPT_FILENAME'],$_HTTP_SERVER['REMOTE_PORT'],$_HTTP_SERVER['REDIRECT_URL'],$_HTTP_SERVER['GATEWAY_INTERFACE'],$_HTTP_SERVER['SERVER_PROTOCOL'],$_HTTP_SERVER['REQUEST_METHOD'],$_HTTP_SERVER['QUERY_STRING'],$_HTTP_SERVER['SCRIPT_NAME'],$_HTTP_SERVER['PHP_SELF'],$_HTTP_SERVER['REQUEST_TIME'],$_HTTP_SERVER['HTTP_PRAGMA'],$_HTTP_SERVER['HTTP_IF_MODIFIED_SINCE'],$_HTTP_SERVER['HTTP_ACCEPT_ENCODING']);
$_TRACKER_HTTP_SERVER = @array_keys($_HTTP_SERVER);
$_TRACKER_HTTP_VALUE = @array_values($_HTTP_SERVER);
for($i = 0; $i < count($_TRACKER_HTTP_SERVER); $i++) {
if(!is_array($_TRACKER_HTTP_VALUE[$i])) {
$_X_SERVER[strtoupper(md5($_TRACKER_HTTP_SERVER[$i]))] = strtoupper(md5($_TRACKER_HTTP_VALUE[$i]));
}
}
return $_X_SERVER;
}
function strtoraw($str) {
$ret = null;
$str = strtoupper($str);
for($i = 0; $i < strlen($str); $i++) {
$ret .= dechex(ord($str[$i]));
}
return $ret;
}
function update_whitelist() {
global $wpdb;
if((isset($_GET['id'])) && (is_numeric($_GET['id']) == true)) {
if($_GET['val'] != '1') {
$_GET['val'] = '0';
}
$query = "UPDATE `".$wpdb->base_prefix."anti_haxtool` SET `anti_haxtool_status` = ".$_GET['val']." WHERE `anti_haxtool_ID` = '".$_GET['id']."' ;";
$update = $wpdb->query($query);
return '';
}
}
function show_hash($hash) {
$ret = null;
$len = (32 - strlen($hash));
for($i = 0; $i < $len; $i++) {
$ret .= "0";
}
return $ret.$hash;
}
$_HTTP_SERVER = get_x_server();
$_TRACKER_HTTP_SERVER = array_keys($_HTTP_SERVER);
//read only for fake browser/crawler
if(!isset($_HTTP_SERVER["C3A4F849BE3640756A7F2F53C491EAE0"])) {
log_attack("C3A4F849BE3640756A7F2F53C491EAE0");
unset($_POST,$_FILES);
}
//ceksum from db
$t = 0;
function get_ahi_db() {
global $wpdb;
$signature_list = null;
if(!is_admin())
$signature_list = $wpdb->get_results("SELECT `anti_haxtool_signature`, `anti_haxtool_type` FROM `".$wpdb->base_prefix."anti_haxtool`");
return $signature_list;
}
$signature_list = get_ahi_db();
while($t < count($signature_list)) {
$signature[$t] = strtoupper($signature_list[$t]->anti_haxtool_signature);
$haxtool_type[$t] = strtoupper($signature_list[$t]->anti_haxtool_type);
switch($haxtool_type[$t]) {
case "SVR-UA":
if(($signature[$t] == $_HTTP_SERVER["FBB136FB8C616E6AE43F65E63B7E795C"]) && (!isset($_HTTP_SERVER["C3A4F849BE3640756A7F2F53C491EAE0"]))) {
die(_anti_haxtool_visitor_notice($signature[$t]));
exit();
}
break;
case "SVR-UNIQUE":
$z = 0;
while($z < count($_TRACKER_HTTP_SERVER)) {
if($_TRACKER_HTTP_SERVER[$z] == $signature[$t]) {
die(_anti_haxtool_visitor_notice($signature[$t]));
exit();
}
$z++;
}
break;
case "MASK-UA":
$ua = strtoupper(strtoraw(strtoupper($_SERVER["HTTP_USER_AGENT"])));
if((preg_match("/".$signature[$t]."/",$ua)) && (!isset($_HTTP_SERVER["C3A4F849BE3640756A7F2F53C491EAE0"]))) {
die(_anti_haxtool_visitor_notice($signature[$t]));
exit();
}
break;
case "SVR-GET":
$qs = strtoupper(strtoraw(strtoupper($_SERVER["QUERY_STRING"])));
if((preg_match("/".$signature[$t]."/",$qs))) {
die(_anti_haxtool_visitor_notice($signature[$t]));
exit();
}
break;
case "SVR-GET/POST/UA/COOKIES":
$qs = strtoupper(strtoraw(strtoupper($_SERVER["QUERY_STRING"])));
$ua = strtoupper(strtoraw(strtoupper($_SERVER["HTTP_USER_AGENT"])));
$post = strtoupper(strtoraw(strtoupper(implode(',',$_POST))));
$cookies = strtoupper(strtoraw(strtoupper($_SERVER["HTTP_COOKIE"])));
if((preg_match("/".$signature[$t]."/",$qs.$ua.$post.$cookies))) {
die(_anti_haxtool_visitor_notice($signature[$t]));
exit();
}
break;
}
$t++;
}
?>