SILENT KILLERPanel

Current Path: > home > transcarter > > www > 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 ]

Files and Folders in: /home/transcarter//www/wp-content/plugins/wordfence/lib

NameTypeSizeLast ModifiedActions
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.

Reading File: /home/transcarter//www/wp-content/plugins/wordfence/lib/wfJWT.php

<?php

class wfJWT {

	private $claims;
	const JWT_TTL = 600;
	const ISSUER = 600;

	public static function extractTokenContents($token) {
		if (!is_string($token)) {
			throw new InvalidArgumentException('Token is not a string. ' . gettype($token) . ' given.');
		}

		// Verify the token matches the JWT format.
		if (!preg_match('/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?$/', $token)) {
			throw new wfJWTException('Invalid token format.');
		}
		list($header, $body, $signature) = explode('.', $token);

		// Test that the token is valid and not expired.
		$decodedHeader = base64_decode($header);

		if (!(is_string($decodedHeader) && $decodedHeader)) {
			throw new wfJWTException('Token header is invalid.');
		}

		$header = json_decode($decodedHeader, true);
		if (!is_array($header)) {
			throw new wfJWTException('Token header is invalid.');
		}

		$decodedBody = base64_decode($body);

		if (!(is_string($decodedBody) && $decodedBody)) {
			throw new wfJWTException('Token body is invalid.');
		}

		$body = json_decode($decodedBody, true);
		if (!is_array($body)) {
			throw new wfJWTException('Token body is invalid.');
		}

		return array(
			'header'    => $header,
			'body'      => $body,
			'signature' => $signature,
		);

	}

	/**
	 * @param mixed $subject
	 */
	public function __construct($subject = null) {
		$this->claims = $this->getClaimDefaults();
		$this->claims['sub'] = $subject;
	}

	/**
	 * @return string
	 */
	public function encode() {
		$header = $this->encodeString($this->buildHeader());
		$body = $this->encodeString($this->buildBody());
		return sprintf('%s.%s.%s', $header, $body,
			$this->encodeString($this->sign(sprintf('%s.%s', $header, $body))));
	}

	/**
	 * @param string $token
	 * @return array
	 * @throws wfJWTException|InvalidArgumentException
	 */
	public function decode($token) {
		if (!is_string($token)) {
			throw new InvalidArgumentException('Token is not a string. ' . gettype($token) . ' given.');
		}

		// Verify the token matches the JWT format.
		if (!preg_match('/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?$/', $token)) {
			throw new wfJWTException('Invalid token format.');
		}
		list($header, $body, $signature) = explode('.', $token);

		// Verify signature matches the supplied payload.
		if (!$this->verifySignature($this->decodeString($signature), sprintf('%s.%s', $header, $body))) {
			throw new wfJWTException('Invalid signature.');
		}

		// Test that the token is valid and not expired.
		$decodedHeader = base64_decode($header);

		if (!(is_string($decodedHeader) && $decodedHeader)) {
			throw new wfJWTException('Token header is invalid.');
		}

		$header = json_decode($decodedHeader, true);
		if (!(
			is_array($header) &&
			array_key_exists('alg', $header) &&
			$header['alg'] === 'HS256' &&
			$header['typ'] === 'JWT'
		)) {
			throw new wfJWTException('Token header is invalid.');
		}

		$decodedBody = base64_decode($body);

		if (!(is_string($decodedBody) && $decodedBody)) {
			throw new wfJWTException('Token body is invalid.');
		}

		$body = json_decode($decodedBody, true);
		if (!(
			is_array($body) &&

			// Check the token not before now timestamp.
			array_key_exists('nbf', $body) &&
			is_numeric($body['nbf']) &&
			$body['nbf'] <= time() &&

			// Check the token is not expired.
			array_key_exists('exp', $body) &&
			is_numeric($body['exp']) &&
			$body['exp'] >= time() &&

			// Check the issuer and audience is ours.
			$body['iss'] === 'Wordfence ' . WORDFENCE_VERSION &&
			$body['aud'] === 'Wordfence Central'
		)) {
			throw new wfJWTException('Token is invalid or expired.');
		}

		return array(
			'header' => $header,
			'body'   => $body,
		);
	}

	/**
	 * @param string $string
	 * @return string
	 */
	public function sign($string) {
		$salt = wp_salt('auth');

		return hash_hmac('sha256', $string, $salt, true);
	}

	/**
	 * @param string $signature
	 * @param string $message
	 * @return bool
	 */
	public function verifySignature($signature, $message) {
		return hash_equals($this->sign($message), $signature);
	}

	/**
	 * @return string
	 */
	public function __toString() {
		return $this->encode();
	}

	/**
	 * @param string $data
	 * @return string
	 */
	public function encodeString($data) {
		return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
	}

	/**
	 * @param string $data
	 * @return bool|string
	 */
	public function decodeString($data) {
		return base64_decode(strtr($data, '-_', '+/'));
	}

	/**
	 * @return mixed|string
	 */
	protected function buildHeader() {
		return '{"alg":"HS256","typ":"JWT"}';
	}

	/**
	 * @return mixed|string
	 */
	protected function buildBody() {
		return json_encode($this->getClaims());
	}

	/**
	 * @return array
	 */
	protected function getClaimDefaults() {
		$now = time();
		return array(
			'iss' => 'Wordfence ' . WORDFENCE_VERSION,
			'aud' => 'Wordfence Central',
			'nbf' => $now,
			'iat' => $now,
			'exp' => $now + self::JWT_TTL,
		);
	}

	/**
	 * @param array $claims
	 */
	public function addClaims($claims) {
		if (!is_array($claims)) {
			throw new InvalidArgumentException(__METHOD__ . ' expects argument 1 to be array.');
		}
		$this->setClaims(array_merge($this->getClaims(), $claims));
	}

	/**
	 * @return array
	 */
	public function getClaims() {
		return $this->claims;
	}

	/**
	 * @param array $claims
	 */
	public function setClaims($claims) {
		$this->claims = $claims;
	}
}

class wfJWTException extends Exception {

}

SILENT KILLER Tool