Current Path: > home > transcarter > public_html > wp-content > > plugins > wordfence > lib >
Operation : Linux host59.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 Software : Apache Server IP : 198.54.126.42 | Your IP: 216.73.216.135 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
Diff | Directory | - | - | |
audit-log | Directory | - | - | |
dashboard | Directory | - | - | |
rest-api | Directory | - | - | |
.htaccess | File | 354 bytes | July 17 2025 21:05:48. | |
Diff.php | File | 5762 bytes | July 17 2025 21:05:47. | |
GeoLite2-Country.mmdb | File | 7825225 bytes | July 17 2025 21:05:48. | |
IPTraf.php | File | 1195 bytes | July 17 2025 21:05:48. | |
IPTrafList.php | File | 3054 bytes | July 17 2025 21:05:48. | |
WFLSPHP52Compatability.php | File | 1303 bytes | July 17 2025 21:05:48. | |
compat.php | File | 425 bytes | July 17 2025 21:05:47. | |
diffResult.php | File | 2874 bytes | July 17 2025 21:05:47. | |
email_genericAlert.php | File | 1422 bytes | July 17 2025 21:05:47. | |
email_newIssues.php | File | 9035 bytes | July 17 2025 21:05:47. | |
email_unlockRequest.php | File | 2397 bytes | July 17 2025 21:05:47. | |
email_unsubscribeRequest.php | File | 1077 bytes | July 17 2025 21:05:47. | |
flags.php | File | 6779 bytes | July 17 2025 21:05:47. | |
live_activity.php | File | 580 bytes | July 17 2025 21:05:48. | |
menu_dashboard.php | File | 28671 bytes | July 17 2025 21:05:48. | |
menu_dashboard_options.php | File | 15577 bytes | July 17 2025 21:05:48. | |
menu_firewall.php | File | 2167 bytes | July 17 2025 21:05:48. | |
menu_firewall_blocking.php | File | 10495 bytes | July 17 2025 21:05:48. | |
menu_firewall_blocking_options.php | File | 4737 bytes | July 17 2025 21:05:48. | |
menu_firewall_waf.php | File | 20443 bytes | July 17 2025 21:05:48. | |
menu_firewall_waf_options.php | File | 11357 bytes | July 17 2025 21:05:48. | |
menu_install.php | File | 1767 bytes | July 17 2025 21:05:48. | |
menu_options.php | File | 25291 bytes | July 17 2025 21:05:48. | |
menu_scanner.php | File | 22047 bytes | July 17 2025 21:05:48. | |
menu_scanner_credentials.php | File | 2838 bytes | July 17 2025 21:05:48. | |
menu_scanner_options.php | File | 8615 bytes | July 17 2025 21:05:48. | |
menu_support.php | File | 18243 bytes | July 17 2025 21:05:48. | |
menu_tools.php | File | 1528 bytes | July 17 2025 21:05:48. | |
menu_tools_auditlog.php | File | 16829 bytes | July 17 2025 21:05:48. | |
menu_tools_diagnostic.php | File | 50536 bytes | July 17 2025 21:05:48. | |
menu_tools_importExport.php | File | 1310 bytes | July 17 2025 21:05:48. | |
menu_tools_livetraffic.php | File | 40381 bytes | July 17 2025 21:05:48. | |
menu_tools_twoFactor.php | File | 20070 bytes | July 17 2025 21:05:48. | |
menu_tools_whois.php | File | 4722 bytes | July 17 2025 21:05:48. | |
menu_wordfence_central.php | File | 9889 bytes | July 17 2025 21:05:48. | |
noc1.key | File | 1683 bytes | July 17 2025 21:05:48. | |
sodium_compat_fast.php | File | 185 bytes | July 17 2025 21:05:48. | |
sysinfo.php | File | 1501 bytes | July 17 2025 21:05:48. | |
viewFullActivityLog.php | File | 1501 bytes | July 17 2025 21:05:48. | |
wf503.php | File | 9860 bytes | July 17 2025 21:05:48. | |
wfAPI.php | File | 10338 bytes | July 17 2025 21:05:48. | |
wfActivityReport.php | File | 20945 bytes | July 17 2025 21:05:48. | |
wfAdminNoticeQueue.php | File | 5323 bytes | July 17 2025 21:05:48. | |
wfAlerts.php | File | 7549 bytes | July 17 2025 21:05:48. | |
wfArray.php | File | 1816 bytes | July 17 2025 21:05:48. | |
wfAuditLog.php | File | 48265 bytes | July 17 2025 21:05:48. | |
wfBrowscap.php | File | 3996 bytes | July 17 2025 21:05:48. | |
wfBrowscapCache.php | File | 262994 bytes | July 17 2025 21:05:48. | |
wfBulkCountries.php | File | 10002 bytes | July 17 2025 21:05:48. | |
wfCache.php | File | 6166 bytes | July 17 2025 21:05:48. | |
wfCentralAPI.php | File | 26419 bytes | July 17 2025 21:05:48. | |
wfConfig.php | File | 125427 bytes | July 17 2025 21:05:48. | |
wfCrawl.php | File | 6722 bytes | July 17 2025 21:05:48. | |
wfCredentialsController.php | File | 5284 bytes | July 17 2025 21:05:48. | |
wfCrypt.php | File | 4146 bytes | July 17 2025 21:05:48. | |
wfCurlInterceptor.php | File | 1047 bytes | July 17 2025 21:05:48. | |
wfDB.php | File | 11764 bytes | July 17 2025 21:05:48. | |
wfDashboard.php | File | 8399 bytes | July 17 2025 21:05:48. | |
wfDateLocalization.php | File | 360582 bytes | July 17 2025 21:05:48. | |
wfDeactivationOption.php | File | 2184 bytes | July 17 2025 21:05:48. | |
wfDiagnostic.php | File | 68476 bytes | July 17 2025 21:05:48. | |
wfDict.php | File | 738 bytes | July 17 2025 21:05:48. | |
wfDirectoryIterator.php | File | 1937 bytes | July 17 2025 21:05:48. | |
wfFileUtils.php | File | 2784 bytes | July 17 2025 21:05:48. | |
wfHelperBin.php | File | 2015 bytes | July 17 2025 21:05:48. | |
wfHelperString.php | File | 2180 bytes | July 17 2025 21:05:48. | |
wfIPWhitelist.php | File | 1596 bytes | July 17 2025 21:05:48. | |
wfImportExportController.php | File | 3306 bytes | July 17 2025 21:05:48. | |
wfInaccessibleDirectoryException.php | File | 303 bytes | July 17 2025 21:05:48. | |
wfInvalidPathException.php | File | 266 bytes | July 17 2025 21:05:48. | |
wfIpLocation.php | File | 1768 bytes | July 17 2025 21:05:48. | |
wfIpLocator.php | File | 2810 bytes | July 17 2025 21:05:48. | |
wfIssues.php | File | 28582 bytes | July 17 2025 21:05:48. | |
wfJWT.php | File | 5455 bytes | July 17 2025 21:05:48. | |
wfLicense.php | File | 10682 bytes | July 17 2025 21:05:48. | |
wfLockedOut.php | File | 9959 bytes | July 17 2025 21:05:48. | |
wfLog.php | File | 58480 bytes | July 17 2025 21:05:48. | |
wfMD5BloomFilter.php | File | 5327 bytes | July 17 2025 21:05:48. | |
wfModuleController.php | File | 754 bytes | July 17 2025 21:05:48. | |
wfNotification.php | File | 6564 bytes | July 17 2025 21:05:48. | |
wfOnboardingController.php | File | 9443 bytes | July 17 2025 21:05:48. | |
wfPersistenceController.php | File | 819 bytes | July 17 2025 21:05:48. | |
wfRESTAPI.php | File | 377 bytes | July 17 2025 21:05:48. | |
wfScan.php | File | 16300 bytes | July 17 2025 21:05:48. | |
wfScanEngine.php | File | 136810 bytes | July 17 2025 21:05:48. | |
wfScanEntrypoint.php | File | 1070 bytes | July 17 2025 21:05:48. | |
wfScanFile.php | File | 1037 bytes | July 17 2025 21:05:48. | |
wfScanFileLink.php | File | 403 bytes | July 17 2025 21:05:48. | |
wfScanFileListItem.php | File | 408 bytes | July 17 2025 21:05:48. | |
wfScanFileProperties.php | File | 1095 bytes | July 17 2025 21:05:48. | |
wfScanMonitor.php | File | 4152 bytes | July 17 2025 21:05:48. | |
wfScanPath.php | File | 1817 bytes | July 17 2025 21:05:48. | |
wfSchema.php | File | 11175 bytes | July 17 2025 21:05:48. | |
wfStyle.php | File | 1244 bytes | July 17 2025 21:05:48. | |
wfSupportController.php | File | 24758 bytes | July 17 2025 21:05:48. | |
wfUnlockMsg.php | File | 1163 bytes | July 17 2025 21:05:48. | |
wfUpdateCheck.php | File | 27888 bytes | July 17 2025 21:05:48. | |
wfUtils.php | File | 127089 bytes | July 17 2025 21:05:48. | |
wfVersionCheckController.php | File | 19729 bytes | July 17 2025 21:05:48. | |
wfVersionSupport.php | File | 535 bytes | July 17 2025 21:05:48. | |
wfView.php | File | 2269 bytes | July 17 2025 21:05:48. | |
wfViewResult.php | File | 1455 bytes | July 17 2025 21:05:48. | |
wfWebsite.php | File | 1792 bytes | July 17 2025 21:05:48. | |
wordfenceClass.php | File | 447131 bytes | July 17 2025 21:05:48. | |
wordfenceConstants.php | File | 3650 bytes | July 17 2025 21:05:48. | |
wordfenceHash.php | File | 43726 bytes | July 17 2025 21:05:48. | |
wordfenceScanner.php | File | 31200 bytes | July 17 2025 21:05:48. | |
wordfenceURLHoover.php | File | 18804 bytes | July 17 2025 21:05:48. |
<?php require_once(dirname(__FILE__) . '/wfUtils.php'); class wfCrawl { const GOOGLE_BOT_VERIFIED = 'verified'; const GOOGLE_BOT_FAKE = 'fakeBot'; const GOOGLE_BOT_UNDETERMINED = 'undetermined'; public static function isCrawler($UA){ $browscap = new wfBrowscap(); $b = $browscap->getBrowser($UA); if (!$b || $b['Parent'] == 'DefaultProperties') { $IP = wfUtils::getIP(); return !wfLog::isHumanRequest($IP, $UA); } else if (isset($b['Crawler']) && $b['Crawler']) { return true; } return false; } public static function verifyCrawlerPTR($hostPattern, $IP){ $table = wfDB::networkTable('wfCrawlers'); $db = new wfDB(); $IPn = wfUtils::inet_pton($IP); $ipHex = wfDB::binaryValueToSQLHex(wfUtils::inet_pton($IPn)); $status = $db->querySingle("select status from $table where IP={$ipHex} and patternSig=UNHEX(MD5('%s')) and lastUpdate > unix_timestamp() - %d", $hostPattern, WORDFENCE_CRAWLER_VERIFY_CACHE_TIME); if($status){ if($status == 'verified'){ return true; } else { return false; } } $host = wfUtils::reverseLookup($IP); if(! $host){ $db->queryWrite("insert into $table (IP, patternSig, status, lastUpdate, PTR) values ({$ipHex}, UNHEX(MD5('%s')), '%s', unix_timestamp(), '%s') ON DUPLICATE KEY UPDATE status='%s', lastUpdate=unix_timestamp(), PTR='%s'", $hostPattern, 'noPTR', '', 'noPTR', ''); return false; } if(preg_match($hostPattern, $host)){ $resultIPs = wfUtils::resolveDomainName($host); $addrsMatch = false; foreach($resultIPs as $resultIP){ if($resultIP == $IP){ $addrsMatch = true; break; } } if($addrsMatch){ $db->queryWrite("insert into $table (IP, patternSig, status, lastUpdate, PTR) values ({$ipHex}, UNHEX(MD5('%s')), '%s', unix_timestamp(), '%s') ON DUPLICATE KEY UPDATE status='%s', lastUpdate=unix_timestamp(), PTR='%s'", $hostPattern, 'verified', $host, 'verified', $host); return true; } else { $db->queryWrite("insert into $table (IP, patternSig, status, lastUpdate, PTR) values ({$ipHex}, UNHEX(MD5('%s')), '%s', unix_timestamp(), '%s') ON DUPLICATE KEY UPDATE status='%s', lastUpdate=unix_timestamp(), PTR='%s'", $hostPattern, 'fwdFail', $host, 'fwdFail', $host); return false; } } else { $db->queryWrite("insert into $table (IP, patternSig, status, lastUpdate, PTR) values ({$ipHex}, UNHEX(MD5('%s')), '%s', unix_timestamp(), '%s') ON DUPLICATE KEY UPDATE status='%s', lastUpdate=unix_timestamp(), PTR='%s'", $hostPattern, 'badPTR', $host, 'badPTR', $host); return false; } } public static function isGooglebot($userAgent = null){ if ($userAgent === null) { $userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; } return (bool) preg_match('/Googlebot\/\d\.\d/', $userAgent); } public static function isGoogleCrawler($userAgent = null){ if ($userAgent === null) { $userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; } foreach (self::$googPat as $pat) { if (preg_match($pat . 'i', $userAgent)) { return true; } } return false; } private static $googPat = array( '@^Mozilla/5\\.0 \\(.*Google Keyword Tool.*\\)$@', '@^Mozilla/5\\.0 \\(.*Feedfetcher\\-Google.*\\)$@', '@^Feedfetcher\\-Google\\-iGoogleGadgets.*$@', '@^searchbot admin\\@google\\.com$@', '@^Google\\-Site\\-Verification.*$@', '@^Google OpenSocial agent.*$@', '@^.*Googlebot\\-Mobile/2\\..*$@', '@^AdsBot\\-Google\\-Mobile.*$@', '@^google \\(.*Enterprise.*\\)$@', '@^Mediapartners\\-Google.*$@', '@^GoogleFriendConnect.*$@', '@^googlebot\\-urlconsole$@', '@^.*Google Web Preview.*$@', '@^Feedfetcher\\-Google.*$@', '@^AppEngine\\-Google.*$@', '@^Googlebot\\-Video.*$@', '@^Googlebot\\-Image.*$@', '@^Google\\-Sitemaps.*$@', '@^Googlebot/Test.*$@', '@^Googlebot\\-News.*$@', '@^.*Googlebot/2\\.1.*$@', '@^AdsBot\\-Google.*$@', '@^Google$@' ); /** * Has correct user agent and PTR record points to .googlebot.com domain. * * @param string|null $ip * @param string|null $ua * @return bool */ public static function isVerifiedGoogleCrawler($ip = null, $ua = null) { static $verified; if (!isset($verified)) { $verified = array(); } if ($ip === null) { $ip = wfUtils::getIP(); } if ($ip === null || $ip === false) { //Likely a CLI execution return false; } if (array_key_exists($ip, $verified)) { return $verified[$ip]; } if (self::isGoogleCrawler($ua)) { if (self::verifyCrawlerPTR(wordfence::getLog()->getGooglePattern(), $ip)) { $verified[$ip] = true; return $verified[$ip]; } $noc1Status = self::verifyGooglebotViaNOC1($ip); if ($noc1Status == self::GOOGLE_BOT_VERIFIED) { $verified[$ip] = true; return $verified[$ip]; } else if ($noc1Status == self::GOOGLE_BOT_FAKE) { $verified[$ip] = false; return $verified[$ip]; } return true; //We were unable to successfully validate Googlebot status so default to being permissive } $verified[$ip] = false; return $verified[$ip]; } /** * Attempts to verify whether an IP claiming to be Googlebot is actually Googlebot. * * @param string|null $ip * @return string */ public static function verifyGooglebotViaNOC1($ip = null) { $table = wfDB::networkTable('wfCrawlers'); if ($ip === null) { $ip = wfUtils::getIP(); } $db = new wfDB(); $IPn = wfUtils::inet_pton($ip); $ipHex = wfDB::binaryValueToSQLHex($IPn); $patternSig = 'googlenoc1'; $status = $db->querySingle("select status from $table where IP={$ipHex} and patternSig=UNHEX(MD5('%s')) and lastUpdate > unix_timestamp() - %d", $patternSig, WORDFENCE_CRAWLER_VERIFY_CACHE_TIME); if ($status === 'verified') { return self::GOOGLE_BOT_VERIFIED; } else if ($status === 'fakeBot') { return self::GOOGLE_BOT_FAKE; } $api = new wfAPI(wfConfig::get('apiKey'), wfUtils::getWPVersion()); try { $data = $api->call('verify_googlebot', array( 'ip' => $ip, )); if (is_array($data) && !empty($data['verified'])) { // Cache results $db->queryWrite("INSERT INTO {$table} (IP, patternSig, status, lastUpdate) VALUES ({$ipHex}, UNHEX(MD5('%s')), '%s', unix_timestamp()) ON DUPLICATE KEY UPDATE status = VALUES(status), lastUpdate = VALUES(lastUpdate)", $patternSig, 'verified'); return self::GOOGLE_BOT_VERIFIED; } else { $db->queryWrite("INSERT INTO {$table} (IP, patternSig, status, lastUpdate) VALUES ({$ipHex}, UNHEX(MD5('%s')), '%s', unix_timestamp()) ON DUPLICATE KEY UPDATE status = VALUES(status), lastUpdate = VALUES(lastUpdate)", $patternSig, 'fakeBot'); self::GOOGLE_BOT_FAKE; } } catch (Exception $e) { // Do nothing, bail } return self::GOOGLE_BOT_UNDETERMINED; } }
SILENT KILLER Tool