Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php defined("\x5f\x4a\105\130\x45\103") or die("\122\145\x73\164\x72\x69\x63\164\14..
Decoded Output download
<?php
defined("_JEXEC") or die("Restricted access");
jimport("joomla.plugin.plugin");
class plgSystemSamlredirect extends JPlugin
{
public function onAfterInitialise()
{
jimport("miniorangesamlplugin.utility.Utilities");
if (isset($_GET["morequest"]) && $_GET["morequest"] == "sso") {
goto HF;
}
if (isset($_GET["morequest"]) && $_GET["morequest"] == "acs") {
goto fj;
}
if (isset($_GET["morequest"]) && $_GET["morequest"] == "metadata") {
goto QS;
}
if (!(array_key_exists("SAMLResponse", $_REQUEST) && !empty($_REQUEST["SAMLResponse"]))) {
goto Og;
}
$M4 = $_REQUEST["SAMLResponse"];
$M4 = base64_decode($M4);
if (!(array_key_exists("SAMLResponse", $_GET) && !empty($_GET["SAMLResponse"]))) {
goto Ln;
}
$M4 = gzinflate($M4);
Ln:
$this->getSamlLogoutResponse($M4);
Og:
goto jX;
QS:
$Uo = Utilities::getSAMLConfiguration();
$this->generateMetadata($Uo);
jX:
goto eW;
fj:
$Uo = Utilities::getSAMLConfiguration();
$this->getSamlResponse($Uo);
eW:
goto W4;
HF:
$Uo = Utilities::getSAMLConfiguration();
$this->sendSamlRequest($Uo);
W4:
if (!(isset($_COOKIE["mosamlredirect"]) && $_COOKIE["mosamlredirect"] != "-1")) {
goto Rh;
}
$Uo = Utilities::getSAMLConfiguration();
$this->adminDashboardLogin($Uo);
Rh:
$Yi = Utilities::getCustomerDetails();
$pb = 0;
if (!isset($Yi["enable_redirect"])) {
goto At;
}
$pb = $Yi["enable_redirect"];
At:
if (!$pb) {
goto O4;
}
$Uo = Utilities::getSAMLConfiguration();
$this->autoRedirect($Uo);
O4:
}
function sendSamlRequest($Uo)
{
$aq = '';
$jn = '';
if (!isset($Uo["sp_base_url"])) {
goto fd;
}
$aq = $Uo["sp_base_url"];
$jn = $Uo["sp_entity_id"];
fd:
$lM = JURI::root();
if (!empty($aq)) {
goto nH;
}
$aq = $lM;
nH:
if (!empty($jn)) {
goto up;
}
$jn = $lM . "plugins/authentication/miniorangesaml/";
up:
if (defined("_JDEFINES")) {
goto mz;
}
require_once JPATH_BASE . "/includes/defines.php";
mz:
require_once JPATH_BASE . "/includes/framework.php";
$hD = JFactory::getApplication("site");
$hD->initialise();
$Jb = $aq;
$user = JFactory::getUser();
$NT = $aq . "?morequest=acs";
$Km = $Uo["single_signon_service_url"];
$FS = $Uo["binding"];
$r4 = $this->getRelayState($aq, $_REQUEST);
$dh = Utilities::createAuthnRequest($NT, $jn, $Km, "false", $FS);
$this->sendSamlRequestByBindingType($dh, $FS, $r4, $Km);
}
function sendSamlRequestByBindingType($dh, $FS, $r4, $Km)
{
if (empty($FS) || $FS == "HttpRedirect") {
goto nQ;
}
$rZ = JPATH_BASE . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "authentication" . DIRECTORY_SEPARATOR . "miniorangesaml" . DIRECTORY_SEPARATOR . "saml2" . DIRECTORY_SEPARATOR . "cert" . DIRECTORY_SEPARATOR . "sp-key.key";
$ct = JPATH_BASE . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "authentication" . DIRECTORY_SEPARATOR . "miniorangesaml" . DIRECTORY_SEPARATOR . "saml2" . DIRECTORY_SEPARATOR . "cert" . DIRECTORY_SEPARATOR . "sp-certificate.crt";
$fp = Utilities::signXML($dh, $ct, $rZ, "NameIDPolicy");
Utilities::postSAMLRequest($Km, $fp, $r4);
goto xF;
nQ:
$dh = "SAMLRequest=" . $dh . "&RelayState=" . $r4 . "&SigAlg=" . urlencode(XMLSecurityKey::RSA_SHA256);
$w_ = array("type" => "private");
$TS = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $w_);
$qb = JPATH_BASE . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "authentication" . DIRECTORY_SEPARATOR . "miniorangesaml" . DIRECTORY_SEPARATOR . "saml2" . DIRECTORY_SEPARATOR . "cert" . DIRECTORY_SEPARATOR . "sp-key.key";
$TS->loadKey($qb, TRUE);
$qT = new XMLSecurityDSig();
$kU = $TS->signData($dh);
$kU = base64_encode($kU);
$sW = $Km;
if (strpos($Km, "?") !== false) {
goto ak;
}
$sW .= "?";
goto DJ;
ak:
$sW .= "&";
DJ:
$sW .= $dh . "&Signature=" . urlencode($kU);
header("Location: " . $sW);
die;
xF:
}
function getRelayState($aq, $vC)
{
$r4 = $aq;
if (!isset($vC["q"])) {
goto GU;
}
if (!($vC["q"] == "test_config")) {
goto p0;
}
$r4 = "testValidate";
p0:
GU:
if (!isset($vC["RelayState"])) {
goto fY;
}
$r4 = $vC["RelayState"];
fY:
return $r4;
}
function getSamlResponse($Uo)
{
if (defined("_JDEFINES")) {
goto Oz;
}
require_once JPATH_BASE . "/includes/defines.php";
Oz:
require_once JPATH_BASE . "/includes/framework.php";
$QR = JPATH_BASE . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "authentication" . DIRECTORY_SEPARATOR . "miniorangesaml";
include_once $QR . DIRECTORY_SEPARATOR . "saml2" . DIRECTORY_SEPARATOR . "Response.php";
jimport("miniorangesamlplugin.utility.encryption");
jimport("joomla.application.application");
jimport("joomla.html.parameter");
$aq = '';
$jn = '';
if (!isset($Uo["sp_base_url"])) {
goto zR;
}
$aq = $Uo["sp_base_url"];
$jn = $Uo["sp_entity_id"];
zR:
$lM = JURI::root();
if (!empty($aq)) {
goto Vb;
}
$aq = $lM;
Vb:
if (!empty($jn)) {
goto hq;
}
$jn = $lM . "plugins/authentication/miniorangesaml/";
hq:
$hD = JFactory::getApplication("site");
$hD->initialise();
if (array_key_exists("SAMLResponse", $_REQUEST)) {
goto b8;
}
throw new Exception("Missing SAMLRequest or SAMLResponse parameter.");
goto Sx;
b8:
$M4 = $_REQUEST["SAMLResponse"];
$M4 = base64_decode($M4);
if (!(array_key_exists("SAMLResponse", $_GET) && !empty($_GET["SAMLResponse"]))) {
goto Gt;
}
$M4 = gzinflate($M4);
Gt:
$this->validateSamlResponse($M4, $aq, $jn, $Uo, $hD);
Sx:
}
function validateSamlResponse($M4, $aq, $jn, $gT, $hD)
{
if (array_key_exists("RelayState", $_REQUEST)) {
goto xM;
}
$XH = '';
goto hg;
xM:
$XH = $_REQUEST["RelayState"];
hg:
$wH = new DOMDocument();
$wH->loadXML($M4);
$rG = $wH->firstChild;
$dD = $wH->documentElement;
$Gj = new DOMXpath($wH);
$Gj->registerNamespace("samlp", "urn:oasis:names:tc:SAML:2.0:protocol");
$Gj->registerNamespace("saml", "urn:oasis:names:tc:SAML:2.0:assertion");
$mm = $Gj->query("/samlp:Response/samlp:Status/samlp:StatusCode", $dD);
$xc = $mm->item(0)->getAttribute("Value");
$oC = '';
if (!($mm->item(0)->firstChild !== null)) {
goto hC;
}
$oC = $mm->item(0)->firstChild->getAttribute("Value");
hC:
$mm = explode(":", $xc)[7];
if (!($mm != "Success")) {
goto qT;
}
if (empty($oC)) {
goto Id;
}
$mm = explode(":", $oC)[7];
Id:
$this->show_error_message($mm, $XH);
qT:
$NT = $aq . "?morequest=acs";
$hW = $gT["certificate"];
$hW = Utilities::sanitize_certificate($hW);
$dn = XMLSecurityKey::getRawThumbprint($hW);
$M4 = new SAML2_Response($rG);
$U3 = $M4->getSignatureData();
$Sd = current($M4->getAssertions())->getSignatureData();
$dn = iconv("UTF-8", "CP1252//IGNORE", $dn);
$dn = preg_replace("/\s+/", '', $dn);
if (empty($U3)) {
goto fO;
}
$dE = Utilities::processResponse($NT, $dn, $U3, $M4, $hW);
if (!($dE === FALSE)) {
goto Nc;
}
echo "Invalid signature in the SAML Response.";
die;
Nc:
fO:
if (empty($Sd)) {
goto ev;
}
$dE = Utilities::processResponse($NT, $dn, $Sd, $M4, $hW);
if (!($dE === FALSE)) {
goto eV;
}
echo "Invalid signature in the SAML Assertion.";
die;
eV:
ev:
if (!(empty($Sd) && empty($U3))) {
goto VW;
}
echo "No signature in SAML Response or Assertion.";
die;
VW:
$qd = $gT["idp_entity_id"];
Utilities::validateIssuerAndAudience($M4, $jn, $qd);
$C4 = current(current($M4->getAssertions())->getNameId());
$vM = current($M4->getAssertions())->getAttributes();
$vM["ASSERTION_NAME_ID"] = current(current($M4->getAssertions())->getNameId());
if (!($XH == "testValidate")) {
goto un;
}
Utilities::mo_saml_show_test_result($C4, $vM, $aq);
un:
$ao = current($M4->getAssertions())->getSessionIndex();
$vM["ASSERTION_SESSION_INDEX"] = $ao;
$vl = $C4;
$lI = '';
$x_ = '';
$Gq = '';
$wN = $gT["first_name"];
$qL = $gT["last_name"];
$VX = $gT["username"];
$bW = $gT["email"];
$Mt = $gT["grp"];
$U1 = $gT["disable_update_existing_users_attribute"];
if (!(!empty($VX) && isset($vM[$VX]) && !empty($vM[$VX]))) {
goto AP;
}
$C4 = $vM[$VX];
if (!is_array($C4)) {
goto SH;
}
$C4 = $C4[0];
SH:
AP:
if (!(!empty($bW) && isset($vM[$bW]) && !empty($vM[$bW]))) {
goto ht;
}
$vl = $vM[$bW];
if (!is_array($vl)) {
goto qi;
}
$vl = $vl[0];
qi:
ht:
if (!(!empty($wN) && isset($vM[$wN][0]) && !empty($vM[$wN][0]))) {
goto S8;
}
$x_ = $vM[$wN];
if (!is_array($x_)) {
goto P8;
}
$x_ = $x_[0];
P8:
S8:
if (!(!empty($qL) && isset($vM[$qL][0]) && !empty($vM[$qL][0]))) {
goto JN;
}
$Gq = $vM[$qL];
if (!is_array($Gq)) {
goto vD;
}
$Gq = $Gq[0];
vD:
JN:
if (!empty($Mt) && isset($vM[$Mt]) && !empty($vM[$Mt])) {
goto RY;
}
$cu = array();
goto Uy;
RY:
$cu = $vM[$Mt];
Uy:
if (isset($gT["enable_email"]) && $gT["enable_email"] == 0) {
goto Hm;
}
$zK = "email";
goto bU;
Hm:
$zK = "username";
bU:
if (!(isset($x_) && !empty($x_))) {
goto bz;
}
$lI = $x_ . " ";
bz:
if (!(isset($Gq) && !empty($Gq))) {
goto M8;
}
$lI = $lI . $Gq;
M8:
$Mh = Utilities::get_user_from_joomla($zK, $C4, $vl);
$Jb = isset($XH) ? $XH : $aq;
if ($Mh) {
goto N2;
}
$this->RegisterCurrentUser($vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $gT["user_profile_attributes"]);
goto h2;
N2:
$this->loginCurrentUser($Mh, $vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $U1, $gT["user_profile_attributes"]);
h2:
}
function loginCurrentUser($Mh, $vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $U1, $qf)
{
$user = JUser::getInstance($Mh->id);
$Z0 = Utilities::getRoleMapping();
if (!($Z0["disable_existing_users_role_update"] == 0)) {
goto ZP;
}
$UI = 2;
if (!isset($Z0["mapping_value_default"])) {
goto Nx;
}
$UI = $Z0["mapping_value_default"];
Nx:
$eD = array();
if (!isset($Z0["role_mapping_key_value"])) {
goto nK;
}
$eD = json_decode($Z0["role_mapping_key_value"]);
nK:
$PR = 0;
if (!isset($Z0["enable_saml_role_mapping"])) {
goto vw;
}
$PR = json_decode($Z0["enable_saml_role_mapping"]);
vw:
jimport("joomla.user.helper");
if (!($PR == 1)) {
goto PC;
}
$K3 = Utilities::get_mapped_groups($eD, $cu);
$this->addOrRemoveUserFromGroup($K3, $UI, $user);
PC:
ZP:
if ($U1) {
goto mI;
}
Utilities::updateCurrentUserName($user->id, $lI);
$this->updateUserProfileAttributes($user->id, $vM, $qf);
mI:
$hz = JFactory::getSession();
$hz->set("user", $user);
$hz->set("MO_SAML_NAMEID", $vM["ASSERTION_NAME_ID"]);
$hz->set("MO_SAML_SESSION_INDEX", $vM["ASSERTION_SESSION_INDEX"]);
$hD->checkSession();
$sO = $hz->getId();
Utilities::updateUsernameToSessionId($user->id, $user->username, $sO);
$user->setLastVisit();
$AX = $user->authorise("core.login.admin");
if ($AX) {
goto av;
}
$hD->redirect(urldecode($Jb));
goto lq;
av:
$this->loginIntoAdminDashboardIfEnabled($Jb, $user->username, $hz, $hD, false);
lq:
}
function RegisterCurrentUser($vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $qf)
{
$Z0 = Utilities::getRoleMapping();
$UI = 2;
if (!isset($Z0["mapping_value_default"])) {
goto Fg;
}
$UI = $Z0["mapping_value_default"];
Fg:
if (!isset($Z0["disable_create_users"])) {
goto OS;
}
$Mm = $Z0["disable_create_users"];
OS:
$eD = array();
if (!isset($Z0["role_mapping_key_value"])) {
goto Xr;
}
$eD = json_decode($Z0["role_mapping_key_value"]);
Xr:
$PR = 0;
if (!isset($Z0["enable_saml_role_mapping"])) {
goto Ix;
}
$PR = json_decode($Z0["enable_saml_role_mapping"]);
Ix:
$v7["name"] = isset($lI) && !empty($lI) ? $lI : $C4;
$v7["username"] = $C4;
$v7["email"] = $v7["email1"] = $v7["email2"] = JStringPunycode::emailToPunycode($vl);
$v7["password"] = $v7["password1"] = $v7["password2"] = JUserHelper::genRandomPassword();
$v7["activation"] = "0";
$v7["block"] = "0";
if (!($PR == 1)) {
goto uE;
}
$K3 = Utilities::get_mapped_groups($eD, $cu);
if (empty($K3)) {
goto ax;
}
foreach ($K3 as $IE) {
$v7["groups"][] = $IE;
K0:
}
LD:
goto uM;
ax:
if (!($Mm == 1)) {
goto Px;
}
echo "We could not sign you in. Please contact your Administrator.";
die;
Px:
$v7["groups"][] = $UI;
uM:
uE:
jimport("joomla.application.component.model");
if (defined("JPATH_COMPONENT")) {
goto js;
}
define("JPATH_COMPONENT", JPATH_BASE . "/components/");
js:
$user = new JUser();
if ($user->bind($v7)) {
goto eF;
}
throw new Exception("Could not bind data. Error: " . $user->getError());
eF:
if ($user->save()) {
goto FM;
}
throw new Exception("Could not save user. Error: " . $user->getError());
FM:
$Mh = Utilities::get_user_from_joomla($zK, $C4, $vl);
if (!$Mh) {
goto Rp;
}
$user = JUser::getInstance($Mh->id);
$this->updateUserProfileAttributes($user->id, $vM, $qf);
$hz = JFactory::getSession();
$hz->set("user", $user);
$hz->set("MO_SAML_NAMEID", $vM["ASSERTION_NAME_ID"]);
$hz->set("MO_SAML_SESSION_INDEX", $vM["ASSERTION_SESSION_INDEX"]);
$hD->checkSession();
$sO = $hz->getId();
Utilities::updateUsernameToSessionId($user->id, $user->username, $sO);
$user->setLastVisit();
$AX = $user->authorise("core.login.admin");
if ($AX) {
goto d0;
}
$hD->redirect(urldecode($Jb), "Welcome {$user->username}", "message");
goto pK;
d0:
$this->loginIntoAdminDashboardIfEnabled($Jb, $user->username, $hz, $hD, true);
pK:
Rp:
}
function updateUserProfileAttributes($JT, $vM, $qf)
{
$Cx = Utilities::get_user_profile_data($vM, $qf);
$EG = array();
$EG = Utilities::get_user_profile_data_from_table($JT);
if (!(isset($Cx) && !empty($Cx))) {
goto QD;
}
$vL = Utilities::selectMaxOrdering($JT);
$aB = JFactory::getDbo();
foreach ($Cx as $Cb) {
$TS = $Cb["profile_key"];
$qH = $Cb["profile_value"];
if (in_array($TS, $EG)) {
goto JC;
}
$HA = $aB->getQuery(true);
$wl = array("user_id", "profile_key", "profile_value", "ordering");
$V5 = array($JT, $aB->quote($TS), $aB->quote($qH), ++$vL);
$HA->insert($aB->quoteName("#__user_profiles"))->columns($aB->quoteName($wl))->values(implode(",", $V5));
$aB->setQuery($HA);
$aB->execute();
goto GS;
JC:
$HA = $aB->getQuery(true);
$PC = array($aB->quoteName("profile_value") . " = " . $aB->quote($qH));
$DH = array($aB->quoteName("user_id") . " = " . $aB->quote($JT), $aB->quoteName("profile_key") . " = " . $aB->quote($TS));
$HA->update($aB->quoteName("#__user_profiles"))->set($PC)->where($DH);
$aB->setQuery($HA);
$Mh = $aB->query();
GS:
pe:
}
XR:
QD:
}
function addOrRemoveUserFromGroup($K3, $UI, $user)
{
if (empty($K3)) {
goto aV;
}
$Gm = 1;
foreach ($K3 as $IE) {
JUserHelper::addUserToGroup($user->id, $IE);
if (!$Gm) {
goto K9;
}
foreach ($user->groups as $rU) {
if (!($rU != $IE)) {
goto BU;
}
JUserHelper::removeUserFromGroup($user->id, $rU);
BU:
hG:
}
Tz:
$Gm = 0;
K9:
H9:
}
e_:
goto cM;
aV:
JUserHelper::addUserToGroup($user->id, $UI);
foreach ($user->groups as $rU) {
if (!($rU != $UI)) {
goto Sy;
}
JUserHelper::removeUserFromGroup($user->id, $rU);
Sy:
Uj:
}
iq:
cM:
}
function getSamlLogoutResponse($M4)
{
$wH = new DOMDocument();
$M4 = str_replace("&", "&", $M4);
$wH->loadXML($M4);
$rG = $wH->firstChild;
if (!($rG->localName == "LogoutResponse")) {
goto sS;
}
$hD = JFactory::getApplication("site");
$tR = JURI::root();
if (!isset($_REQUEST["RelayState"])) {
goto jT;
}
$tR = $_REQUEST["RelayState"];
jT:
$zr = strpos($tR, "?");
if (!($zr !== false)) {
goto rv;
}
$tR = substr($tR, 0, $zr);
rv:
$hD->redirect($tR);
sS:
}
function loginIntoAdminDashboardIfEnabled($Jb, $C4, $hz, $hD, $h2)
{
$Yi = Utilities::getCustomerDetails();
$JY = $Yi["enable_admin_login"];
if ($JY) {
goto wo;
}
if ($h2) {
goto zL;
}
$hD->redirect(urldecode($Jb));
goto Gy;
zL:
$hD->redirect(urldecode($Jb), "Welcome {$C4}", "message");
Gy:
goto Uf;
wo:
$kB = time();
$gv = $Yi["api_key"];
$rx = $kB . ":" . $gv . ":" . $C4;
$ax = $Yi["customer_token"];
$rx = AESEncryption::encrypt_data($rx, $ax);
$fc = $kB + 30;
$nM = setcookie("mosamlredirect", $rx, $fc, "/");
$iI = $hz->get("MO_SAML_NAMEID");
$ao = $hz->set("MO_SAML_SESSION_INDEX");
$rx = $ao . ":" . $iI;
$rx = AESEncryption::encrypt_data($rx, $ax);
$nM = setcookie("_mosession", $rx, $fc, "/");
$GF = JURI::base();
$TB = $GF . "administrator";
$hD->redirect($TB);
Uf:
}
function generateMetadata($gT)
{
$aq = '';
$jn = '';
if (!isset($gT["sp_base_url"])) {
goto RN;
}
$aq = $gT["sp_base_url"];
$jn = $gT["sp_entity_id"];
RN:
$lM = JURI::root();
if (!empty($aq)) {
goto w2;
}
$aq = $lM;
w2:
if (!empty($jn)) {
goto n3;
}
$jn = $lM . "plugins/authentication/miniorangesaml/";
n3:
$FO = $aq . "?morequest=acs";
$Y4 = $aq . "index.php?option=com_users&task=logout";
$cE = JPATH_BASE . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "authentication" . DIRECTORY_SEPARATOR . "miniorangesaml" . DIRECTORY_SEPARATOR . "saml2" . DIRECTORY_SEPARATOR . "cert" . DIRECTORY_SEPARATOR . "sp-certificate.crt";
$cE = file_get_contents($cE);
$cE = Utilities::desanitize_certificate($cE);
header("Content-Type: text/xml");
echo "<?xml version="1.0"?>
\x9<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2020-10-28T23:59:59Z" cacheDuration="PT1446808792S" entityID="" . $jn . "">\xa\x9\x9 <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">\xa\x9\x9 <md:KeyDescriptor use="signing">
\x9 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">\xa\x9 \x9\x9<ds:X509Data>\xa\x9 \x9\x9 <ds:X509Certificate>" . $cE . "</ds:X509Certificate>
\x9\x9\x9\x9</ds:X509Data>\xa \x9 </ds:KeyInfo>
</md:KeyDescriptor>
\x9\x9\x9<md:KeyDescriptor use="encryption">\xa \x9 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
\x9 <ds:X509Data>\xa\x9\x9\x9\x9 <ds:X509Certificate>" . $cE . "</ds:X509Certificate>\xa\x9\x9\x9\x9</ds:X509Data>
</ds:KeyInfo>\xa\x9\x9\x9</md:KeyDescriptor>\xa \x9\x9<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="" . $Y4 . ""/>
\x9<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="" . $Y4 . ""/>\xa \x9<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>\xa\x9 \x9<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
\x9\x9\x9<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>\xa\x9 \x9<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="" . $FO . "" index="1"/>\xa\x9 </md:SPSSODescriptor>\xa\x9\x9 <md:Organization>
<md:OrganizationName xml:lang="en-US">miniOrange</md:OrganizationName>
\x9\x9 <md:OrganizationDisplayName xml:lang="en-US">miniOrange</md:OrganizationDisplayName>
\x9\x9 <md:OrganizationURL xml:lang="en-US">http://miniorange.com</md:OrganizationURL>\xa \x9 </md:Organization>
\x9 <md:ContactPerson contactType="technical">
\x9\x9<md:GivenName>miniOrange</md:GivenName>
\x9 <md:EmailAddress>[email protected]</md:EmailAddress>
\x9\x9 </md:ContactPerson>
\x9\x9 <md:ContactPerson contactType="support">
\x9 <md:GivenName>miniOrange</md:GivenName>
\x9 \x9<md:EmailAddress>[email protected]</md:EmailAddress>
\x9 </md:ContactPerson>\xa\x9 </md:EntityDescriptor>";
die;
}
function adminDashboardLogin($gT)
{
$Yi = Utilities::getCustomerDetails();
$JY = $Yi["enable_admin_login"];
if (!$JY) {
goto SU;
}
$aq = '';
$jn = '';
if (!isset($gT["sp_base_url"])) {
goto WJ;
}
$aq = $gT["sp_base_url"];
$jn = $gT["sp_entity_id"];
WJ:
$lM = JURI::root();
if (!empty($aq)) {
goto wY;
}
$aq = $lM;
wY:
if (!empty($jn)) {
goto iD;
}
$jn = $lM . "plugins/authentication/miniorangesaml/";
iD:
jimport("miniorangesamlplugin.utility.encryption");
$rx = $_COOKIE["mosamlredirect"];
$BA = $Yi["customer_token"];
$Fv = $Yi["api_key"];
$rx = AESEncryption::decrypt_data($rx, $BA);
$cw = array();
$cw = explode(":", $rx);
$FR = $cw[0];
$sz = $cw[1];
$C4 = $cw[2];
$kB = time();
if (!($sz == $Fv && $kB - $FR < 30)) {
goto ta;
}
setcookie("mosamlredirect", "-1", time() - 100, "/");
unset($_COOKIE["mosamlredirect"]);
$kB = time();
$rx = $kB . ":" . $Fv;
$rx = AESEncryption::encrypt_data($rx, $BA);
$fc = $kB + 30;
$nM = setcookie("mosamlauthadmin", $rx, $fc, "/");
$TB = $aq . "administrator/index.php";
$rx = $_COOKIE["_mosession"];
setcookie("_mosession", "-1", time() - 100, "/");
unset($_COOKIE["_mosession"]);
$rx = AESEncryption::decrypt_data($rx, $BA);
$IW = array();
$IW = explode(":", $rx);
$US = $IW[0];
$wM = $IW[1];
$hz = JFactory::getSession();
$hz->set("MO_SAML_NAMEID", $wM);
$hz->set("MO_SAML_SESSION_INDEX", $US);
echo "<form id="mosaml_adminloginform" action="" . $TB . "" method="post">
\x9\x9\x9 \x9<input type="hidden" name="username" value="" . $C4 . "" />\xa \x9 <input type="hidden" name="passwd" value="passwd" />\xa\x9 \x9<input type="hidden" name="option" value="com_login">\xa\x9\x9 \x9\x9<input type="hidden" name="task" value="login">
\x9 <input type="hidden" name="return" value="aW5kZXgucGhw">" . JHtml::_("form.token") . "</form>
\x9 \x9<script>
\x9\x9setTimeout(function(){
\x9\x9\x9 document.getElementById("mosaml_adminloginform").submit();\xa \x9 \x9\x9}, 100);\x9\xa \x9 \x9</script>";
die;
ta:
SU:
}
function autoRedirect($Uo)
{
$user = JFactory::getUser();
$hD = JFactory::getApplication("site");
$hD->initialise();
if ($hD->isAdmin()) {
goto Jj;
}
if ($user->id) {
goto zT;
}
$this->redirectToIDP($Uo);
zT:
Jj:
}
function redirectToIDP($Uo)
{
$Km = $Uo["single_signon_service_url"];
if (!empty($Km)) {
goto X5;
}
return;
X5:
$aq = '';
$jn = '';
if (!isset($Uo["sp_base_url"])) {
goto C2;
}
$aq = $Uo["sp_base_url"];
$jn = $Uo["sp_entity_id"];
C2:
$lM = JURI::root();
if (!empty($aq)) {
goto Ys;
}
$aq = $lM;
Ys:
if (!empty($jn)) {
goto VH;
}
$jn = $lM . "plugins/authentication/miniorangesaml/";
VH:
$JU = !empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] !== "off" || $_SERVER["SERVER_PORT"] == 443 ? "https://" : "http://";
$XH = $JU . "{$_SERVER["HTTP_HOST"]}{$_SERVER["REQUEST_URI"]}";
$sW = $aq . "?morequest=sso&RelayState=" . urlencode($XH);
header("Location: " . $sW);
die;
}
function show_error_message($Hu, $XH)
{
if ($XH == "testValidate") {
goto y1;
}
if ($Hu == "RequestDenied") {
goto nu;
}
echo "We could not sign you in. Please contact your Administrator.";
die;
goto p_;
nu:
echo "You are not allowed to login into the site. Please contact your Administrator.";
die;
p_:
goto Fl;
y1:
echo "<div style="font-family:Calibri;padding:0 3%;">";
echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>\xa\x9 <div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong> Invalid SAML Response Status.</p>
<p><strong>Causes</strong>: Identity Provider has sent '" . $Hu . "' status code in SAML Response. </p>
\x9\x9\x9\x9<p><strong>Reason</strong>: " . $this->get_status_message($Hu) . "</p><br>
</div>\xa
<div style="margin:3%;display:block;text-align:center;">\xa \x9<div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>";
die;
Fl:
}
function get_status_message($Hu)
{
switch ($Hu) {
case "RequestDenied":
return "You are not allowed to login into the site. Please contact your Administrator.";
goto Ny;
case "Requester":
return "The request could not be performed due to an error on the part of the requester.";
goto Ny;
case "Responder":
return "The request could not be performed due to an error on the part of the SAML responder or SAML authority.";
goto Ny;
case "VersionMismatch":
return "The SAML responder could not process the request because the version of the request message was incorrect.";
goto Ny;
default:
return "Unknown";
}
NB:
Ny:
}
} ?>
Did this file decode correctly?
Original Code
<?php
defined("\x5f\x4a\105\130\x45\103") or die("\122\145\x73\164\x72\x69\x63\164\145\x64\x20\141\143\x63\145\x73\x73");
jimport("\152\x6f\x6f\x6d\154\141\x2e\x70\x6c\165\147\151\156\x2e\160\154\165\147\x69\x6e");
class plgSystemSamlredirect extends JPlugin
{
public function onAfterInitialise()
{
jimport("\x6d\151\x6e\151\x6f\x72\x61\156\147\x65\163\x61\155\154\160\154\x75\147\x69\156\56\165\x74\151\154\151\164\171\56\x55\164\x69\x6c\151\164\x69\145\163");
if (isset($_GET["\155\x6f\x72\145\x71\x75\x65\163\x74"]) && $_GET["\155\157\162\x65\161\x75\x65\163\164"] == "\x73\x73\157") {
goto HF;
}
if (isset($_GET["\155\157\162\x65\161\165\x65\163\164"]) && $_GET["\x6d\157\x72\145\161\x75\145\163\164"] == "\x61\143\163") {
goto fj;
}
if (isset($_GET["\x6d\x6f\162\x65\161\165\x65\163\164"]) && $_GET["\155\157\162\x65\x71\x75\x65\x73\x74"] == "\155\x65\164\141\x64\x61\x74\x61") {
goto QS;
}
if (!(array_key_exists("\x53\101\x4d\x4c\x52\x65\163\x70\x6f\x6e\163\145", $_REQUEST) && !empty($_REQUEST["\123\x41\115\114\122\x65\x73\x70\157\156\x73\x65"]))) {
goto Og;
}
$M4 = $_REQUEST["\123\x41\x4d\x4c\x52\x65\163\160\x6f\x6e\x73\145"];
$M4 = base64_decode($M4);
if (!(array_key_exists("\123\101\115\114\x52\x65\163\160\157\156\x73\145", $_GET) && !empty($_GET["\x53\101\x4d\114\122\x65\x73\160\157\156\x73\x65"]))) {
goto Ln;
}
$M4 = gzinflate($M4);
Ln:
$this->getSamlLogoutResponse($M4);
Og:
goto jX;
QS:
$Uo = Utilities::getSAMLConfiguration();
$this->generateMetadata($Uo);
jX:
goto eW;
fj:
$Uo = Utilities::getSAMLConfiguration();
$this->getSamlResponse($Uo);
eW:
goto W4;
HF:
$Uo = Utilities::getSAMLConfiguration();
$this->sendSamlRequest($Uo);
W4:
if (!(isset($_COOKIE["\x6d\157\163\141\x6d\x6c\162\x65\x64\151\x72\145\143\164"]) && $_COOKIE["\x6d\157\x73\141\x6d\154\x72\145\144\x69\162\145\x63\x74"] != "\x2d\x31")) {
goto Rh;
}
$Uo = Utilities::getSAMLConfiguration();
$this->adminDashboardLogin($Uo);
Rh:
$Yi = Utilities::getCustomerDetails();
$pb = 0;
if (!isset($Yi["\x65\156\141\142\x6c\145\x5f\162\145\144\x69\x72\145\x63\164"])) {
goto At;
}
$pb = $Yi["\145\156\x61\142\154\x65\137\162\x65\x64\x69\162\x65\143\x74"];
At:
if (!$pb) {
goto O4;
}
$Uo = Utilities::getSAMLConfiguration();
$this->autoRedirect($Uo);
O4:
}
function sendSamlRequest($Uo)
{
$aq = '';
$jn = '';
if (!isset($Uo["\163\160\137\142\141\x73\x65\137\x75\x72\x6c"])) {
goto fd;
}
$aq = $Uo["\x73\160\137\142\141\x73\145\137\x75\162\x6c"];
$jn = $Uo["\x73\x70\x5f\x65\x6e\x74\x69\x74\171\x5f\x69\144"];
fd:
$lM = JURI::root();
if (!empty($aq)) {
goto nH;
}
$aq = $lM;
nH:
if (!empty($jn)) {
goto up;
}
$jn = $lM . "\x70\154\165\147\151\x6e\163\57\141\x75\164\150\x65\156\164\151\x63\141\164\151\x6f\156\x2f\x6d\151\156\151\x6f\162\141\x6e\147\x65\163\x61\x6d\x6c\57";
up:
if (defined("\x5f\112\x44\105\x46\x49\116\x45\123")) {
goto mz;
}
require_once JPATH_BASE . "\x2f\151\x6e\x63\x6c\x75\144\x65\163\57\x64\x65\x66\151\x6e\145\x73\x2e\x70\x68\160";
mz:
require_once JPATH_BASE . "\x2f\x69\x6e\143\x6c\165\144\x65\163\x2f\146\x72\141\155\145\x77\x6f\162\x6b\56\x70\x68\x70";
$hD = JFactory::getApplication("\163\x69\x74\x65");
$hD->initialise();
$Jb = $aq;
$user = JFactory::getUser();
$NT = $aq . "\77\x6d\x6f\x72\145\x71\165\145\163\x74\75\x61\143\163";
$Km = $Uo["\x73\x69\x6e\x67\154\145\137\163\151\x67\156\x6f\x6e\137\163\145\x72\x76\151\143\x65\x5f\165\162\154"];
$FS = $Uo["\x62\x69\156\x64\x69\x6e\x67"];
$r4 = $this->getRelayState($aq, $_REQUEST);
$dh = Utilities::createAuthnRequest($NT, $jn, $Km, "\146\x61\154\163\145", $FS);
$this->sendSamlRequestByBindingType($dh, $FS, $r4, $Km);
}
function sendSamlRequestByBindingType($dh, $FS, $r4, $Km)
{
if (empty($FS) || $FS == "\x48\164\164\x70\122\145\144\151\162\145\143\x74") {
goto nQ;
}
$rZ = JPATH_BASE . DIRECTORY_SEPARATOR . "\x70\x6c\x75\x67\151\156\163" . DIRECTORY_SEPARATOR . "\141\x75\164\150\x65\x6e\164\151\143\x61\164\151\x6f\x6e" . DIRECTORY_SEPARATOR . "\x6d\151\x6e\x69\157\162\x61\x6e\x67\x65\163\x61\155\x6c" . DIRECTORY_SEPARATOR . "\x73\x61\x6d\154\62" . DIRECTORY_SEPARATOR . "\143\x65\162\x74" . DIRECTORY_SEPARATOR . "\163\x70\55\153\x65\x79\56\153\145\171";
$ct = JPATH_BASE . DIRECTORY_SEPARATOR . "\160\x6c\165\x67\x69\x6e\x73" . DIRECTORY_SEPARATOR . "\141\165\x74\150\x65\156\x74\x69\x63\141\164\151\x6f\156" . DIRECTORY_SEPARATOR . "\155\x69\156\151\157\x72\x61\156\x67\145\163\x61\x6d\x6c" . DIRECTORY_SEPARATOR . "\163\141\x6d\154\62" . DIRECTORY_SEPARATOR . "\143\145\x72\x74" . DIRECTORY_SEPARATOR . "\x73\x70\x2d\x63\x65\x72\164\x69\x66\x69\x63\141\164\x65\56\x63\x72\164";
$fp = Utilities::signXML($dh, $ct, $rZ, "\x4e\141\x6d\x65\111\x44\x50\157\154\151\143\x79");
Utilities::postSAMLRequest($Km, $fp, $r4);
goto xF;
nQ:
$dh = "\123\x41\x4d\114\x52\145\161\x75\145\163\164\x3d" . $dh . "\x26\122\x65\154\x61\x79\x53\164\x61\x74\145\x3d" . $r4 . "\46\x53\x69\x67\101\154\147\75" . urlencode(XMLSecurityKey::RSA_SHA256);
$w_ = array("\x74\x79\x70\145" => "\160\x72\151\166\141\x74\145");
$TS = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $w_);
$qb = JPATH_BASE . DIRECTORY_SEPARATOR . "\x70\x6c\x75\147\x69\x6e\x73" . DIRECTORY_SEPARATOR . "\141\165\x74\x68\145\156\x74\x69\x63\x61\164\151\157\x6e" . DIRECTORY_SEPARATOR . "\155\x69\156\151\157\x72\141\156\x67\x65\x73\x61\x6d\154" . DIRECTORY_SEPARATOR . "\163\141\x6d\154\x32" . DIRECTORY_SEPARATOR . "\x63\x65\162\164" . DIRECTORY_SEPARATOR . "\163\160\x2d\153\x65\x79\x2e\153\145\171";
$TS->loadKey($qb, TRUE);
$qT = new XMLSecurityDSig();
$kU = $TS->signData($dh);
$kU = base64_encode($kU);
$sW = $Km;
if (strpos($Km, "\77") !== false) {
goto ak;
}
$sW .= "\77";
goto DJ;
ak:
$sW .= "\46";
DJ:
$sW .= $dh . "\46\x53\151\147\156\x61\x74\165\162\x65\x3d" . urlencode($kU);
header("\114\x6f\x63\x61\x74\151\x6f\x6e\72\40" . $sW);
die;
xF:
}
function getRelayState($aq, $vC)
{
$r4 = $aq;
if (!isset($vC["\x71"])) {
goto GU;
}
if (!($vC["\x71"] == "\x74\x65\x73\164\137\x63\x6f\156\x66\x69\x67")) {
goto p0;
}
$r4 = "\164\x65\x73\164\x56\141\x6c\151\x64\x61\164\145";
p0:
GU:
if (!isset($vC["\122\x65\154\x61\171\123\x74\x61\164\x65"])) {
goto fY;
}
$r4 = $vC["\x52\x65\154\x61\171\123\164\141\164\145"];
fY:
return $r4;
}
function getSamlResponse($Uo)
{
if (defined("\137\x4a\104\105\x46\x49\116\105\123")) {
goto Oz;
}
require_once JPATH_BASE . "\57\x69\x6e\143\x6c\x75\x64\x65\163\57\144\145\146\151\x6e\145\x73\56\160\x68\160";
Oz:
require_once JPATH_BASE . "\57\x69\x6e\143\x6c\165\x64\145\x73\57\x66\x72\141\x6d\145\x77\157\162\x6b\x2e\x70\x68\160";
$QR = JPATH_BASE . DIRECTORY_SEPARATOR . "\160\x6c\x75\x67\x69\x6e\163" . DIRECTORY_SEPARATOR . "\x61\165\x74\x68\145\x6e\x74\151\x63\x61\x74\151\x6f\x6e" . DIRECTORY_SEPARATOR . "\155\151\156\x69\x6f\162\141\x6e\x67\x65\x73\x61\x6d\x6c";
include_once $QR . DIRECTORY_SEPARATOR . "\163\x61\155\154\62" . DIRECTORY_SEPARATOR . "\122\x65\163\160\x6f\156\x73\x65\56\x70\150\160";
jimport("\x6d\x69\x6e\x69\157\162\141\x6e\x67\145\x73\x61\x6d\x6c\160\x6c\165\x67\151\x6e\x2e\165\x74\151\154\x69\164\171\56\x65\156\143\162\x79\160\164\x69\157\156");
jimport("\152\157\x6f\x6d\x6c\141\x2e\141\x70\x70\x6c\151\x63\x61\164\151\157\x6e\x2e\141\x70\x70\154\151\143\x61\x74\x69\157\156");
jimport("\x6a\x6f\x6f\x6d\154\x61\56\x68\x74\155\x6c\56\160\141\x72\141\155\x65\x74\145\x72");
$aq = '';
$jn = '';
if (!isset($Uo["\x73\x70\x5f\x62\141\163\145\x5f\x75\x72\x6c"])) {
goto zR;
}
$aq = $Uo["\163\x70\137\142\x61\163\x65\137\x75\x72\154"];
$jn = $Uo["\x73\x70\x5f\x65\x6e\164\x69\x74\171\137\151\x64"];
zR:
$lM = JURI::root();
if (!empty($aq)) {
goto Vb;
}
$aq = $lM;
Vb:
if (!empty($jn)) {
goto hq;
}
$jn = $lM . "\160\154\x75\x67\x69\x6e\x73\57\x61\x75\x74\x68\x65\x6e\164\x69\143\x61\164\x69\x6f\x6e\x2f\x6d\151\156\151\x6f\162\141\156\x67\x65\x73\x61\x6d\154\57";
hq:
$hD = JFactory::getApplication("\x73\x69\164\x65");
$hD->initialise();
if (array_key_exists("\x53\x41\x4d\114\x52\x65\x73\160\157\156\x73\x65", $_REQUEST)) {
goto b8;
}
throw new Exception("\x4d\151\x73\163\x69\156\147\40\123\101\115\x4c\122\x65\x71\165\145\163\164\40\x6f\x72\x20\x53\101\x4d\x4c\x52\145\163\160\x6f\156\163\145\40\x70\141\162\x61\x6d\145\164\x65\162\56");
goto Sx;
b8:
$M4 = $_REQUEST["\x53\x41\115\x4c\122\x65\x73\x70\157\156\163\145"];
$M4 = base64_decode($M4);
if (!(array_key_exists("\123\x41\115\114\122\x65\163\160\157\156\x73\145", $_GET) && !empty($_GET["\x53\x41\x4d\114\122\x65\163\x70\x6f\x6e\163\145"]))) {
goto Gt;
}
$M4 = gzinflate($M4);
Gt:
$this->validateSamlResponse($M4, $aq, $jn, $Uo, $hD);
Sx:
}
function validateSamlResponse($M4, $aq, $jn, $gT, $hD)
{
if (array_key_exists("\122\x65\154\x61\171\123\x74\141\x74\145", $_REQUEST)) {
goto xM;
}
$XH = '';
goto hg;
xM:
$XH = $_REQUEST["\x52\x65\x6c\141\x79\x53\x74\141\x74\x65"];
hg:
$wH = new DOMDocument();
$wH->loadXML($M4);
$rG = $wH->firstChild;
$dD = $wH->documentElement;
$Gj = new DOMXpath($wH);
$Gj->registerNamespace("\163\141\155\154\x70", "\x75\162\x6e\x3a\x6f\141\x73\x69\163\x3a\x6e\141\155\x65\x73\x3a\164\x63\x3a\x53\x41\x4d\114\72\62\x2e\x30\x3a\160\x72\157\x74\157\143\157\154");
$Gj->registerNamespace("\163\141\155\x6c", "\165\x72\x6e\72\157\x61\163\151\163\72\x6e\x61\155\x65\x73\72\x74\143\x3a\123\x41\x4d\x4c\72\x32\56\60\72\x61\x73\x73\145\x72\x74\x69\157\x6e");
$mm = $Gj->query("\x2f\x73\141\x6d\x6c\x70\x3a\x52\145\163\x70\157\156\163\x65\57\163\141\155\154\160\72\123\x74\141\x74\x75\163\x2f\163\141\155\154\160\72\123\164\x61\164\165\x73\103\x6f\144\145", $dD);
$xc = $mm->item(0)->getAttribute("\x56\x61\x6c\x75\x65");
$oC = '';
if (!($mm->item(0)->firstChild !== null)) {
goto hC;
}
$oC = $mm->item(0)->firstChild->getAttribute("\126\141\154\x75\x65");
hC:
$mm = explode("\72", $xc)[7];
if (!($mm != "\123\x75\x63\143\145\163\163")) {
goto qT;
}
if (empty($oC)) {
goto Id;
}
$mm = explode("\72", $oC)[7];
Id:
$this->show_error_message($mm, $XH);
qT:
$NT = $aq . "\x3f\x6d\x6f\x72\x65\x71\165\x65\x73\x74\x3d\141\143\163";
$hW = $gT["\x63\145\162\x74\x69\x66\x69\x63\141\164\145"];
$hW = Utilities::sanitize_certificate($hW);
$dn = XMLSecurityKey::getRawThumbprint($hW);
$M4 = new SAML2_Response($rG);
$U3 = $M4->getSignatureData();
$Sd = current($M4->getAssertions())->getSignatureData();
$dn = iconv("\x55\x54\x46\x2d\70", "\x43\x50\x31\x32\65\x32\57\57\x49\x47\116\117\122\x45", $dn);
$dn = preg_replace("\57\134\163\x2b\x2f", '', $dn);
if (empty($U3)) {
goto fO;
}
$dE = Utilities::processResponse($NT, $dn, $U3, $M4, $hW);
if (!($dE === FALSE)) {
goto Nc;
}
echo "\x49\x6e\x76\141\154\151\144\40\x73\151\x67\156\x61\164\x75\x72\145\40\151\x6e\40\x74\150\x65\x20\123\101\x4d\114\40\122\145\163\x70\157\156\163\x65\x2e";
die;
Nc:
fO:
if (empty($Sd)) {
goto ev;
}
$dE = Utilities::processResponse($NT, $dn, $Sd, $M4, $hW);
if (!($dE === FALSE)) {
goto eV;
}
echo "\x49\x6e\166\141\x6c\x69\144\x20\163\x69\147\156\x61\x74\x75\162\145\x20\151\156\40\x74\x68\x65\x20\123\x41\x4d\114\x20\101\x73\x73\145\x72\164\151\157\156\56";
die;
eV:
ev:
if (!(empty($Sd) && empty($U3))) {
goto VW;
}
echo "\x4e\157\40\163\x69\x67\156\141\x74\x75\162\145\40\x69\x6e\x20\123\x41\x4d\x4c\40\122\x65\163\160\157\156\x73\x65\40\157\162\40\101\163\163\x65\162\x74\x69\x6f\x6e\56";
die;
VW:
$qd = $gT["\x69\x64\160\x5f\x65\156\x74\151\164\171\x5f\x69\x64"];
Utilities::validateIssuerAndAudience($M4, $jn, $qd);
$C4 = current(current($M4->getAssertions())->getNameId());
$vM = current($M4->getAssertions())->getAttributes();
$vM["\101\x53\123\x45\122\x54\111\x4f\116\137\116\x41\x4d\105\137\111\x44"] = current(current($M4->getAssertions())->getNameId());
if (!($XH == "\x74\x65\x73\164\x56\x61\154\151\144\141\x74\x65")) {
goto un;
}
Utilities::mo_saml_show_test_result($C4, $vM, $aq);
un:
$ao = current($M4->getAssertions())->getSessionIndex();
$vM["\x41\123\123\105\x52\x54\x49\117\x4e\x5f\123\105\x53\x53\111\117\x4e\x5f\x49\116\104\105\x58"] = $ao;
$vl = $C4;
$lI = '';
$x_ = '';
$Gq = '';
$wN = $gT["\x66\x69\162\163\x74\x5f\x6e\141\155\145"];
$qL = $gT["\x6c\x61\x73\x74\x5f\156\x61\x6d\145"];
$VX = $gT["\165\163\145\162\156\x61\155\145"];
$bW = $gT["\145\x6d\x61\151\x6c"];
$Mt = $gT["\147\x72\160"];
$U1 = $gT["\x64\151\x73\x61\142\154\145\x5f\165\160\144\x61\x74\145\x5f\x65\170\151\x73\164\x69\x6e\x67\x5f\x75\x73\145\162\x73\137\x61\x74\164\x72\151\142\165\164\x65"];
if (!(!empty($VX) && isset($vM[$VX]) && !empty($vM[$VX]))) {
goto AP;
}
$C4 = $vM[$VX];
if (!is_array($C4)) {
goto SH;
}
$C4 = $C4[0];
SH:
AP:
if (!(!empty($bW) && isset($vM[$bW]) && !empty($vM[$bW]))) {
goto ht;
}
$vl = $vM[$bW];
if (!is_array($vl)) {
goto qi;
}
$vl = $vl[0];
qi:
ht:
if (!(!empty($wN) && isset($vM[$wN][0]) && !empty($vM[$wN][0]))) {
goto S8;
}
$x_ = $vM[$wN];
if (!is_array($x_)) {
goto P8;
}
$x_ = $x_[0];
P8:
S8:
if (!(!empty($qL) && isset($vM[$qL][0]) && !empty($vM[$qL][0]))) {
goto JN;
}
$Gq = $vM[$qL];
if (!is_array($Gq)) {
goto vD;
}
$Gq = $Gq[0];
vD:
JN:
if (!empty($Mt) && isset($vM[$Mt]) && !empty($vM[$Mt])) {
goto RY;
}
$cu = array();
goto Uy;
RY:
$cu = $vM[$Mt];
Uy:
if (isset($gT["\145\156\x61\142\x6c\x65\x5f\x65\155\x61\x69\x6c"]) && $gT["\x65\156\x61\x62\154\145\137\x65\155\141\x69\x6c"] == 0) {
goto Hm;
}
$zK = "\x65\155\x61\x69\154";
goto bU;
Hm:
$zK = "\x75\163\145\162\156\x61\x6d\x65";
bU:
if (!(isset($x_) && !empty($x_))) {
goto bz;
}
$lI = $x_ . "\x20";
bz:
if (!(isset($Gq) && !empty($Gq))) {
goto M8;
}
$lI = $lI . $Gq;
M8:
$Mh = Utilities::get_user_from_joomla($zK, $C4, $vl);
$Jb = isset($XH) ? $XH : $aq;
if ($Mh) {
goto N2;
}
$this->RegisterCurrentUser($vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $gT["\x75\163\x65\x72\137\160\x72\157\x66\x69\154\x65\137\141\164\164\x72\151\x62\165\x74\145\163"]);
goto h2;
N2:
$this->loginCurrentUser($Mh, $vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $U1, $gT["\x75\163\x65\x72\137\x70\162\157\146\151\x6c\145\x5f\x61\164\164\x72\x69\x62\165\x74\x65\x73"]);
h2:
}
function loginCurrentUser($Mh, $vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $U1, $qf)
{
$user = JUser::getInstance($Mh->id);
$Z0 = Utilities::getRoleMapping();
if (!($Z0["\x64\151\x73\x61\x62\x6c\x65\x5f\145\x78\151\x73\164\x69\156\147\x5f\165\163\x65\162\x73\137\x72\x6f\x6c\145\x5f\x75\160\144\x61\164\145"] == 0)) {
goto ZP;
}
$UI = 2;
if (!isset($Z0["\x6d\141\160\x70\x69\156\x67\x5f\166\141\x6c\165\x65\x5f\144\145\x66\141\x75\154\x74"])) {
goto Nx;
}
$UI = $Z0["\x6d\141\x70\x70\151\156\147\x5f\166\141\154\165\x65\137\144\x65\146\x61\x75\x6c\x74"];
Nx:
$eD = array();
if (!isset($Z0["\x72\x6f\x6c\145\137\155\141\160\x70\151\156\x67\137\153\x65\x79\x5f\166\141\154\x75\145"])) {
goto nK;
}
$eD = json_decode($Z0["\x72\157\154\145\x5f\155\x61\x70\x70\151\156\147\137\153\145\171\137\166\x61\x6c\165\145"]);
nK:
$PR = 0;
if (!isset($Z0["\x65\156\x61\142\x6c\x65\x5f\x73\141\x6d\x6c\x5f\162\x6f\154\145\137\155\x61\x70\x70\x69\x6e\147"])) {
goto vw;
}
$PR = json_decode($Z0["\x65\156\141\142\x6c\x65\137\163\141\x6d\x6c\137\x72\x6f\154\x65\137\x6d\141\160\x70\151\x6e\x67"]);
vw:
jimport("\x6a\x6f\x6f\x6d\154\141\x2e\x75\x73\x65\162\56\150\145\154\160\x65\162");
if (!($PR == 1)) {
goto PC;
}
$K3 = Utilities::get_mapped_groups($eD, $cu);
$this->addOrRemoveUserFromGroup($K3, $UI, $user);
PC:
ZP:
if ($U1) {
goto mI;
}
Utilities::updateCurrentUserName($user->id, $lI);
$this->updateUserProfileAttributes($user->id, $vM, $qf);
mI:
$hz = JFactory::getSession();
$hz->set("\165\x73\x65\x72", $user);
$hz->set("\x4d\x4f\137\123\101\x4d\x4c\137\x4e\x41\x4d\x45\111\104", $vM["\101\123\123\105\x52\124\x49\x4f\116\x5f\x4e\x41\115\x45\137\111\x44"]);
$hz->set("\x4d\x4f\137\x53\101\x4d\x4c\x5f\123\105\123\x53\x49\117\116\137\x49\x4e\104\105\x58", $vM["\101\x53\x53\105\122\x54\x49\x4f\x4e\137\x53\x45\123\x53\x49\117\116\137\111\x4e\104\x45\x58"]);
$hD->checkSession();
$sO = $hz->getId();
Utilities::updateUsernameToSessionId($user->id, $user->username, $sO);
$user->setLastVisit();
$AX = $user->authorise("\x63\x6f\x72\145\56\154\x6f\147\x69\156\x2e\x61\144\x6d\x69\x6e");
if ($AX) {
goto av;
}
$hD->redirect(urldecode($Jb));
goto lq;
av:
$this->loginIntoAdminDashboardIfEnabled($Jb, $user->username, $hz, $hD, false);
lq:
}
function RegisterCurrentUser($vM, $Jb, $lI, $C4, $vl, $zK, $hD, $cu, $qf)
{
$Z0 = Utilities::getRoleMapping();
$UI = 2;
if (!isset($Z0["\x6d\141\160\160\x69\156\147\x5f\x76\x61\x6c\165\145\137\144\145\x66\x61\165\x6c\164"])) {
goto Fg;
}
$UI = $Z0["\155\141\x70\160\x69\x6e\147\x5f\166\x61\154\x75\x65\x5f\x64\145\146\x61\165\154\164"];
Fg:
if (!isset($Z0["\x64\151\163\x61\142\154\x65\137\x63\162\145\141\164\x65\137\x75\x73\x65\x72\163"])) {
goto OS;
}
$Mm = $Z0["\x64\x69\x73\x61\x62\x6c\145\137\143\162\145\141\164\145\137\165\163\x65\162\163"];
OS:
$eD = array();
if (!isset($Z0["\162\157\154\x65\x5f\x6d\x61\160\160\151\x6e\x67\137\153\145\x79\x5f\166\141\x6c\x75\145"])) {
goto Xr;
}
$eD = json_decode($Z0["\x72\157\x6c\x65\137\155\x61\x70\x70\151\x6e\147\x5f\x6b\x65\x79\x5f\x76\x61\x6c\165\x65"]);
Xr:
$PR = 0;
if (!isset($Z0["\x65\156\x61\142\x6c\145\x5f\x73\x61\155\x6c\137\x72\157\154\145\x5f\x6d\x61\x70\160\x69\156\x67"])) {
goto Ix;
}
$PR = json_decode($Z0["\x65\x6e\x61\x62\154\x65\x5f\x73\x61\155\x6c\x5f\x72\157\154\x65\x5f\x6d\x61\160\x70\x69\x6e\147"]);
Ix:
$v7["\x6e\x61\x6d\x65"] = isset($lI) && !empty($lI) ? $lI : $C4;
$v7["\165\163\145\162\x6e\141\155\x65"] = $C4;
$v7["\x65\x6d\x61\x69\x6c"] = $v7["\x65\155\x61\x69\154\x31"] = $v7["\145\155\x61\x69\x6c\62"] = JStringPunycode::emailToPunycode($vl);
$v7["\x70\141\163\x73\167\157\x72\x64"] = $v7["\x70\141\163\163\x77\157\162\x64\61"] = $v7["\160\x61\x73\x73\167\x6f\x72\x64\x32"] = JUserHelper::genRandomPassword();
$v7["\x61\x63\164\151\166\x61\164\151\157\x6e"] = "\60";
$v7["\x62\x6c\157\x63\x6b"] = "\x30";
if (!($PR == 1)) {
goto uE;
}
$K3 = Utilities::get_mapped_groups($eD, $cu);
if (empty($K3)) {
goto ax;
}
foreach ($K3 as $IE) {
$v7["\x67\x72\x6f\165\x70\x73"][] = $IE;
K0:
}
LD:
goto uM;
ax:
if (!($Mm == 1)) {
goto Px;
}
echo "\x57\x65\x20\x63\x6f\x75\154\144\40\x6e\157\x74\x20\163\x69\147\x6e\40\x79\x6f\165\40\151\156\56\40\x50\154\145\141\163\x65\40\x63\157\x6e\x74\x61\143\164\x20\171\157\x75\x72\40\x41\x64\155\151\x6e\151\163\164\x72\x61\x74\157\x72\56";
die;
Px:
$v7["\147\162\157\165\x70\x73"][] = $UI;
uM:
uE:
jimport("\152\x6f\157\x6d\154\x61\56\x61\x70\x70\x6c\151\x63\141\164\x69\x6f\156\x2e\x63\x6f\x6d\x70\x6f\156\x65\156\164\x2e\155\x6f\144\145\154");
if (defined("\x4a\120\101\x54\110\x5f\x43\x4f\x4d\120\x4f\x4e\x45\116\124")) {
goto js;
}
define("\x4a\x50\x41\124\110\137\103\117\x4d\x50\x4f\x4e\x45\116\124", JPATH_BASE . "\57\143\157\x6d\160\157\x6e\x65\x6e\x74\x73\x2f");
js:
$user = new JUser();
if ($user->bind($v7)) {
goto eF;
}
throw new Exception("\x43\157\x75\x6c\144\x20\156\x6f\164\40\142\151\156\144\40\x64\x61\x74\x61\x2e\x20\105\x72\x72\x6f\162\x3a\40" . $user->getError());
eF:
if ($user->save()) {
goto FM;
}
throw new Exception("\103\x6f\165\154\144\x20\156\157\x74\x20\163\x61\166\145\x20\165\x73\x65\162\x2e\x20\105\162\x72\157\x72\72\x20" . $user->getError());
FM:
$Mh = Utilities::get_user_from_joomla($zK, $C4, $vl);
if (!$Mh) {
goto Rp;
}
$user = JUser::getInstance($Mh->id);
$this->updateUserProfileAttributes($user->id, $vM, $qf);
$hz = JFactory::getSession();
$hz->set("\x75\x73\145\x72", $user);
$hz->set("\115\x4f\x5f\x53\x41\x4d\x4c\x5f\x4e\x41\x4d\105\111\x44", $vM["\101\123\123\105\x52\x54\x49\x4f\116\137\x4e\x41\x4d\x45\x5f\x49\x44"]);
$hz->set("\x4d\117\137\123\101\115\x4c\137\x53\x45\123\x53\111\x4f\x4e\137\111\116\x44\x45\x58", $vM["\x41\x53\x53\105\x52\124\111\117\116\x5f\x53\x45\123\x53\111\117\x4e\x5f\111\x4e\104\x45\130"]);
$hD->checkSession();
$sO = $hz->getId();
Utilities::updateUsernameToSessionId($user->id, $user->username, $sO);
$user->setLastVisit();
$AX = $user->authorise("\x63\x6f\x72\145\56\x6c\x6f\x67\x69\156\56\x61\x64\x6d\x69\x6e");
if ($AX) {
goto d0;
}
$hD->redirect(urldecode($Jb), "\x57\x65\154\143\x6f\x6d\x65\x20{$user->username}", "\x6d\x65\163\x73\x61\x67\145");
goto pK;
d0:
$this->loginIntoAdminDashboardIfEnabled($Jb, $user->username, $hz, $hD, true);
pK:
Rp:
}
function updateUserProfileAttributes($JT, $vM, $qf)
{
$Cx = Utilities::get_user_profile_data($vM, $qf);
$EG = array();
$EG = Utilities::get_user_profile_data_from_table($JT);
if (!(isset($Cx) && !empty($Cx))) {
goto QD;
}
$vL = Utilities::selectMaxOrdering($JT);
$aB = JFactory::getDbo();
foreach ($Cx as $Cb) {
$TS = $Cb["\160\x72\157\146\x69\x6c\x65\x5f\153\145\x79"];
$qH = $Cb["\160\x72\157\146\151\x6c\x65\x5f\166\x61\x6c\165\x65"];
if (in_array($TS, $EG)) {
goto JC;
}
$HA = $aB->getQuery(true);
$wl = array("\x75\x73\145\162\137\x69\x64", "\x70\162\157\x66\151\x6c\x65\x5f\153\x65\x79", "\x70\x72\x6f\x66\x69\x6c\145\x5f\166\x61\154\x75\x65", "\157\x72\144\145\x72\x69\x6e\147");
$V5 = array($JT, $aB->quote($TS), $aB->quote($qH), ++$vL);
$HA->insert($aB->quoteName("\43\137\137\165\163\x65\x72\x5f\x70\x72\157\146\151\154\145\163"))->columns($aB->quoteName($wl))->values(implode("\x2c", $V5));
$aB->setQuery($HA);
$aB->execute();
goto GS;
JC:
$HA = $aB->getQuery(true);
$PC = array($aB->quoteName("\160\162\x6f\146\x69\154\145\137\166\141\x6c\x75\145") . "\x20\x3d\x20" . $aB->quote($qH));
$DH = array($aB->quoteName("\165\163\145\162\137\x69\144") . "\40\75\x20" . $aB->quote($JT), $aB->quoteName("\x70\x72\157\146\151\x6c\145\x5f\153\x65\171") . "\x20\x3d\x20" . $aB->quote($TS));
$HA->update($aB->quoteName("\43\137\137\x75\163\145\x72\x5f\x70\162\x6f\x66\x69\x6c\145\x73"))->set($PC)->where($DH);
$aB->setQuery($HA);
$Mh = $aB->query();
GS:
pe:
}
XR:
QD:
}
function addOrRemoveUserFromGroup($K3, $UI, $user)
{
if (empty($K3)) {
goto aV;
}
$Gm = 1;
foreach ($K3 as $IE) {
JUserHelper::addUserToGroup($user->id, $IE);
if (!$Gm) {
goto K9;
}
foreach ($user->groups as $rU) {
if (!($rU != $IE)) {
goto BU;
}
JUserHelper::removeUserFromGroup($user->id, $rU);
BU:
hG:
}
Tz:
$Gm = 0;
K9:
H9:
}
e_:
goto cM;
aV:
JUserHelper::addUserToGroup($user->id, $UI);
foreach ($user->groups as $rU) {
if (!($rU != $UI)) {
goto Sy;
}
JUserHelper::removeUserFromGroup($user->id, $rU);
Sy:
Uj:
}
iq:
cM:
}
function getSamlLogoutResponse($M4)
{
$wH = new DOMDocument();
$M4 = str_replace("\x26", "\x26\141\x6d\x70\x3b", $M4);
$wH->loadXML($M4);
$rG = $wH->firstChild;
if (!($rG->localName == "\114\x6f\147\157\165\164\x52\145\163\x70\157\156\163\145")) {
goto sS;
}
$hD = JFactory::getApplication("\x73\x69\164\145");
$tR = JURI::root();
if (!isset($_REQUEST["\122\145\x6c\x61\171\x53\164\x61\164\x65"])) {
goto jT;
}
$tR = $_REQUEST["\122\x65\x6c\x61\171\123\x74\x61\164\x65"];
jT:
$zr = strpos($tR, "\x3f");
if (!($zr !== false)) {
goto rv;
}
$tR = substr($tR, 0, $zr);
rv:
$hD->redirect($tR);
sS:
}
function loginIntoAdminDashboardIfEnabled($Jb, $C4, $hz, $hD, $h2)
{
$Yi = Utilities::getCustomerDetails();
$JY = $Yi["\x65\x6e\141\x62\154\145\x5f\141\144\155\151\156\x5f\154\157\147\x69\x6e"];
if ($JY) {
goto wo;
}
if ($h2) {
goto zL;
}
$hD->redirect(urldecode($Jb));
goto Gy;
zL:
$hD->redirect(urldecode($Jb), "\x57\x65\154\143\157\155\145\40{$C4}", "\x6d\x65\163\x73\x61\147\x65");
Gy:
goto Uf;
wo:
$kB = time();
$gv = $Yi["\141\160\151\137\x6b\x65\171"];
$rx = $kB . "\x3a" . $gv . "\x3a" . $C4;
$ax = $Yi["\143\165\163\164\157\155\x65\x72\x5f\164\157\x6b\x65\x6e"];
$rx = AESEncryption::encrypt_data($rx, $ax);
$fc = $kB + 30;
$nM = setcookie("\155\x6f\x73\x61\x6d\154\162\x65\x64\151\162\145\143\x74", $rx, $fc, "\x2f");
$iI = $hz->get("\115\x4f\x5f\x53\101\x4d\x4c\x5f\116\x41\115\x45\x49\104");
$ao = $hz->set("\115\117\x5f\123\x41\x4d\114\137\x53\105\x53\x53\x49\x4f\x4e\x5f\111\116\104\x45\x58");
$rx = $ao . "\72" . $iI;
$rx = AESEncryption::encrypt_data($rx, $ax);
$nM = setcookie("\x5f\155\x6f\163\x65\x73\163\x69\157\156", $rx, $fc, "\57");
$GF = JURI::base();
$TB = $GF . "\141\144\x6d\151\156\x69\163\x74\x72\141\x74\157\162";
$hD->redirect($TB);
Uf:
}
function generateMetadata($gT)
{
$aq = '';
$jn = '';
if (!isset($gT["\x73\x70\137\142\141\x73\145\137\165\162\154"])) {
goto RN;
}
$aq = $gT["\163\160\137\x62\x61\x73\x65\137\165\162\x6c"];
$jn = $gT["\163\160\x5f\145\156\x74\151\164\x79\x5f\x69\144"];
RN:
$lM = JURI::root();
if (!empty($aq)) {
goto w2;
}
$aq = $lM;
w2:
if (!empty($jn)) {
goto n3;
}
$jn = $lM . "\x70\x6c\x75\x67\x69\156\163\x2f\x61\x75\x74\x68\x65\156\x74\151\x63\141\164\151\x6f\156\57\x6d\x69\x6e\x69\x6f\x72\141\156\x67\145\x73\141\x6d\154\57";
n3:
$FO = $aq . "\77\155\157\162\145\161\165\145\163\x74\75\141\x63\x73";
$Y4 = $aq . "\x69\x6e\144\x65\x78\x2e\x70\x68\x70\77\x6f\160\164\151\157\156\x3d\x63\157\x6d\137\165\163\x65\x72\x73\x26\141\x6d\160\x3b\164\141\163\x6b\75\154\x6f\x67\157\165\x74";
$cE = JPATH_BASE . DIRECTORY_SEPARATOR . "\x70\154\165\147\x69\156\163" . DIRECTORY_SEPARATOR . "\x61\165\164\x68\145\x6e\x74\x69\143\x61\164\x69\x6f\x6e" . DIRECTORY_SEPARATOR . "\155\151\x6e\x69\x6f\x72\x61\x6e\x67\x65\163\x61\x6d\x6c" . DIRECTORY_SEPARATOR . "\163\x61\x6d\154\62" . DIRECTORY_SEPARATOR . "\x63\145\x72\164" . DIRECTORY_SEPARATOR . "\163\x70\55\143\x65\x72\x74\x69\x66\x69\143\141\x74\x65\56\143\162\164";
$cE = file_get_contents($cE);
$cE = Utilities::desanitize_certificate($cE);
header("\103\157\x6e\164\x65\x6e\x74\x2d\124\x79\x70\145\x3a\x20\164\x65\x78\164\57\x78\155\x6c");
echo "\74\x3f\170\155\x6c\x20\x76\145\162\x73\151\x6f\x6e\x3d\x22\x31\x2e\60\42\77\x3e\12\11\x9\74\x6d\x64\72\105\156\x74\151\164\171\x44\145\163\x63\162\x69\160\164\157\x72\x20\x78\x6d\154\x6e\163\72\x6d\144\x3d\x22\x75\x72\x6e\x3a\x6f\x61\163\x69\x73\72\x6e\x61\155\x65\x73\72\164\143\x3a\x53\x41\115\x4c\x3a\62\x2e\x30\x3a\x6d\145\x74\x61\x64\141\x74\141\x22\x20\166\x61\x6c\x69\x64\125\156\x74\x69\154\75\42\x32\x30\x32\x30\55\61\x30\55\x32\x38\x54\x32\63\x3a\65\71\72\65\71\132\42\40\x63\141\143\150\145\104\165\x72\x61\164\151\157\x6e\75\42\120\124\61\x34\x34\x36\x38\60\x38\x37\x39\x32\123\42\x20\x65\156\164\151\164\171\111\x44\x3d\x22" . $jn . "\42\76\xa\x9\x9\x20\40\x3c\155\144\x3a\123\120\123\x53\x4f\x44\x65\x73\143\x72\151\160\x74\x6f\x72\x20\101\x75\x74\x68\156\x52\x65\x71\x75\145\x73\x74\163\123\151\x67\x6e\x65\144\75\x22\164\x72\x75\145\42\x20\x57\x61\x6e\164\101\x73\x73\145\x72\164\x69\x6f\156\x73\123\151\147\156\145\144\x3d\x22\x74\162\x75\145\42\x20\x70\x72\x6f\164\157\x63\x6f\154\x53\165\160\x70\157\162\x74\x45\156\165\155\145\162\x61\164\x69\157\156\75\x22\165\162\156\72\157\x61\163\151\163\72\156\x61\x6d\145\x73\72\164\x63\x3a\x53\101\115\114\72\x32\x2e\60\72\x70\x72\x6f\x74\157\143\157\154\42\x3e\xa\x9\x9\11\x3c\155\144\72\x4b\145\171\x44\x65\x73\143\x72\151\160\164\157\162\x20\165\x73\x65\x3d\42\x73\151\147\156\x69\156\147\x22\x3e\12\11\11\x9\40\40\74\144\x73\x3a\113\x65\x79\x49\x6e\146\x6f\40\x78\155\x6c\156\163\72\x64\x73\x3d\42\150\x74\x74\x70\72\57\x2f\x77\167\x77\56\167\63\x2e\x6f\x72\x67\x2f\62\60\60\60\x2f\60\71\57\170\x6d\x6c\x64\163\x69\x67\x23\42\x3e\xa\x9\11\x9\x9\x3c\144\x73\72\130\x35\x30\x39\x44\x61\x74\141\76\xa\x9\11\x9\x9\x20\x20\74\144\163\72\130\65\x30\x39\x43\145\162\164\x69\x66\x69\x63\x61\x74\x65\76" . $cE . "\x3c\57\144\x73\x3a\x58\65\60\71\x43\x65\162\164\151\146\x69\x63\141\x74\145\76\12\x9\x9\x9\x9\x3c\57\144\x73\x3a\130\x35\x30\71\x44\141\164\141\x3e\xa\11\11\x9\x20\x20\x3c\x2f\x64\x73\x3a\113\145\x79\111\156\146\157\x3e\12\11\11\11\74\57\x6d\x64\72\113\x65\171\104\145\163\x63\x72\x69\x70\x74\x6f\x72\76\12\x9\x9\x9\x3c\155\x64\72\113\x65\x79\x44\145\x73\143\x72\x69\x70\164\x6f\x72\x20\165\163\x65\75\x22\x65\x6e\143\162\171\x70\164\x69\x6f\x6e\x22\76\xa\11\x9\11\x20\x20\x3c\144\163\72\x4b\145\171\x49\x6e\x66\x6f\40\x78\155\154\156\163\72\x64\163\75\x22\150\164\x74\160\x3a\x2f\57\167\167\167\56\167\x33\x2e\157\x72\147\x2f\x32\x30\x30\x30\57\x30\71\x2f\x78\155\x6c\144\x73\x69\147\43\x22\x3e\12\11\x9\11\11\74\x64\163\x3a\x58\65\x30\x39\x44\141\164\141\x3e\xa\x9\x9\x9\x9\40\40\x3c\x64\163\72\x58\65\60\x39\x43\145\162\x74\151\146\x69\x63\x61\x74\x65\x3e" . $cE . "\x3c\57\x64\163\x3a\x58\x35\60\71\103\145\162\x74\151\x66\151\x63\141\x74\145\76\xa\x9\x9\x9\x9\74\57\144\x73\72\x58\65\60\71\104\141\164\x61\76\12\11\11\11\40\x20\74\57\144\x73\72\x4b\145\x79\x49\156\146\157\76\xa\x9\x9\x9\x3c\57\x6d\144\x3a\x4b\x65\171\x44\x65\x73\143\162\151\160\164\157\162\x3e\xa\11\x9\x9\x3c\155\x64\72\x53\151\x6e\x67\154\x65\x4c\157\x67\157\x75\164\x53\145\x72\x76\151\x63\145\x20\102\151\156\x64\151\x6e\147\75\42\165\x72\x6e\x3a\x6f\141\163\x69\163\72\156\x61\x6d\145\163\x3a\x74\x63\72\123\x41\115\x4c\72\x32\x2e\60\x3a\x62\151\156\x64\151\x6e\x67\163\x3a\x48\x54\124\120\55\120\117\123\x54\x22\x20\114\157\x63\141\164\151\157\156\x3d\x22" . $Y4 . "\x22\57\76\12\11\11\x9\x3c\155\x64\x3a\123\x69\x6e\x67\154\x65\114\157\x67\x6f\x75\164\x53\145\162\166\x69\x63\145\x20\x42\151\x6e\x64\151\x6e\147\x3d\x22\x75\162\156\x3a\157\x61\163\151\x73\x3a\x6e\x61\155\145\x73\x3a\x74\143\72\x53\x41\115\x4c\x3a\62\56\60\72\x62\151\156\x64\151\156\147\x73\x3a\x48\x54\x54\120\x2d\122\145\x64\151\162\x65\x63\x74\42\x20\114\157\143\141\x74\x69\x6f\x6e\x3d\x22" . $Y4 . "\x22\x2f\76\xa\11\11\x9\x3c\x6d\x64\x3a\x4e\141\155\145\x49\x44\106\x6f\x72\155\141\x74\76\x75\x72\156\72\157\141\x73\x69\163\x3a\156\x61\x6d\x65\x73\x3a\164\143\72\123\x41\x4d\114\72\x31\x2e\61\x3a\x6e\x61\x6d\x65\151\144\55\146\157\162\155\141\x74\x3a\145\x6d\141\151\154\x41\144\144\x72\145\x73\x73\74\57\x6d\144\x3a\116\141\x6d\145\111\104\106\x6f\162\155\x61\164\x3e\xa\x9\11\x9\74\x6d\144\x3a\116\141\155\x65\x49\104\106\x6f\x72\x6d\x61\164\x3e\x75\x72\x6e\72\x6f\141\x73\x69\163\x3a\x6e\x61\155\x65\x73\72\164\143\x3a\x53\101\115\x4c\72\62\56\x30\72\x6e\141\x6d\145\x69\144\55\146\x6f\162\x6d\141\x74\72\x70\x65\x72\163\x69\x73\x74\145\156\x74\x3c\57\155\144\72\116\141\x6d\x65\x49\x44\106\157\x72\155\x61\164\76\12\x9\x9\x9\x3c\155\144\72\116\x61\155\x65\111\104\x46\157\162\x6d\141\164\76\165\162\156\72\x6f\141\163\151\x73\x3a\156\141\155\145\x73\x3a\164\x63\72\x53\101\115\x4c\72\62\x2e\60\x3a\x6e\141\155\x65\x69\144\55\x66\157\x72\x6d\x61\x74\72\x74\x72\141\156\163\151\x65\156\164\74\x2f\155\144\72\x4e\x61\155\145\111\104\106\x6f\x72\x6d\x61\x74\76\xa\x9\11\x9\x3c\155\x64\72\x41\x73\163\145\162\x74\151\x6f\156\103\157\156\163\x75\x6d\x65\x72\x53\145\162\166\x69\143\x65\40\102\151\x6e\x64\151\156\x67\75\x22\x75\x72\156\72\157\x61\163\151\x73\x3a\156\141\155\x65\x73\x3a\x74\143\x3a\123\x41\115\x4c\72\62\56\x30\72\x62\151\156\x64\151\156\x67\x73\x3a\x48\x54\124\120\x2d\120\x4f\x53\124\x22\x20\114\x6f\x63\x61\x74\151\157\x6e\x3d\42" . $FO . "\42\x20\151\156\144\x65\x78\x3d\42\61\x22\57\76\xa\x9\11\40\x20\74\x2f\x6d\x64\x3a\x53\120\123\123\x4f\x44\x65\163\x63\x72\151\160\x74\157\162\x3e\xa\x9\x9\40\x20\74\x6d\x64\72\117\162\147\x61\x6e\x69\x7a\141\x74\151\x6f\156\76\12\11\11\11\x3c\x6d\x64\x3a\x4f\x72\x67\x61\156\151\172\141\x74\151\157\x6e\x4e\141\155\145\40\170\x6d\x6c\72\154\x61\156\x67\75\42\145\x6e\x2d\125\123\42\x3e\155\151\x6e\151\117\162\141\x6e\x67\145\74\x2f\155\144\72\117\x72\147\141\x6e\151\172\141\164\x69\x6f\x6e\116\141\x6d\x65\76\12\x9\x9\11\x3c\x6d\x64\72\x4f\162\147\141\x6e\x69\172\141\x74\151\x6f\156\x44\x69\x73\160\154\x61\x79\x4e\141\155\x65\40\170\155\x6c\x3a\x6c\x61\x6e\147\75\x22\x65\156\55\x55\x53\42\x3e\155\x69\x6e\x69\x4f\162\141\x6e\x67\145\x3c\x2f\x6d\144\x3a\117\x72\x67\141\156\151\x7a\x61\164\x69\x6f\x6e\x44\x69\163\160\154\x61\171\116\141\155\145\76\12\x9\x9\11\x3c\155\144\72\117\162\x67\x61\156\151\172\141\x74\x69\x6f\x6e\x55\122\114\40\170\x6d\x6c\72\x6c\141\x6e\x67\75\42\x65\x6e\x2d\x55\x53\42\76\150\164\164\160\x3a\57\57\x6d\151\x6e\x69\x6f\162\x61\156\x67\145\x2e\143\x6f\155\74\x2f\x6d\144\72\117\162\x67\x61\156\x69\x7a\141\x74\x69\157\156\x55\122\114\76\xa\11\x9\x20\x20\74\57\155\x64\x3a\x4f\x72\147\x61\x6e\151\x7a\x61\164\151\x6f\156\x3e\12\11\x9\40\40\x3c\155\x64\72\x43\157\156\x74\141\x63\x74\x50\145\162\163\x6f\156\x20\x63\157\156\164\x61\x63\x74\x54\x79\160\x65\75\42\x74\x65\x63\150\156\x69\x63\141\x6c\42\x3e\12\11\x9\x9\x3c\155\x64\72\107\x69\166\145\x6e\x4e\141\155\x65\x3e\x6d\151\x6e\x69\x4f\162\x61\x6e\147\145\x3c\x2f\155\144\x3a\107\151\x76\x65\156\116\x61\x6d\145\x3e\12\11\x9\11\x3c\x6d\x64\x3a\x45\155\x61\x69\154\101\144\144\x72\145\163\163\x3e\151\x6e\x66\157\100\x6d\x69\x6e\x69\x6f\x72\x61\156\147\145\56\x63\x6f\x6d\74\x2f\x6d\144\72\105\x6d\x61\151\154\101\x64\x64\162\x65\x73\x73\76\12\x9\x9\40\x20\74\57\155\x64\x3a\103\157\156\164\141\x63\164\120\145\x72\163\157\x6e\76\12\x9\x9\x20\40\x3c\155\144\72\x43\x6f\x6e\164\141\143\164\x50\145\x72\x73\157\156\40\x63\x6f\x6e\x74\x61\x63\x74\x54\171\x70\x65\75\42\x73\165\x70\160\157\162\x74\42\76\12\x9\11\11\74\x6d\144\72\x47\x69\x76\x65\x6e\116\x61\155\x65\76\x6d\x69\156\151\x4f\x72\141\156\x67\145\x3c\x2f\x6d\x64\x3a\x47\x69\166\x65\x6e\116\x61\x6d\145\76\12\x9\11\x9\74\x6d\144\x3a\x45\155\x61\x69\154\x41\x64\x64\x72\145\163\x73\x3e\151\156\146\x6f\x40\x6d\x69\156\x69\157\x72\141\x6e\x67\x65\56\143\157\x6d\x3c\57\155\144\x3a\105\x6d\141\x69\x6c\x41\144\x64\162\x65\x73\163\x3e\12\11\x9\40\x20\74\57\155\144\72\103\x6f\x6e\x74\141\x63\x74\x50\145\162\163\157\156\76\xa\x9\11\x3c\x2f\155\144\72\x45\x6e\x74\151\x74\171\x44\145\163\143\x72\151\160\164\157\162\x3e";
die;
}
function adminDashboardLogin($gT)
{
$Yi = Utilities::getCustomerDetails();
$JY = $Yi["\145\x6e\x61\142\x6c\x65\137\141\144\x6d\151\x6e\x5f\154\157\147\x69\x6e"];
if (!$JY) {
goto SU;
}
$aq = '';
$jn = '';
if (!isset($gT["\163\x70\137\142\141\x73\145\x5f\165\162\x6c"])) {
goto WJ;
}
$aq = $gT["\163\160\x5f\x62\141\163\145\x5f\165\162\154"];
$jn = $gT["\x73\160\x5f\x65\x6e\164\151\164\171\x5f\x69\x64"];
WJ:
$lM = JURI::root();
if (!empty($aq)) {
goto wY;
}
$aq = $lM;
wY:
if (!empty($jn)) {
goto iD;
}
$jn = $lM . "\160\154\165\147\x69\156\163\x2f\x61\165\x74\x68\x65\x6e\164\151\x63\x61\x74\x69\157\156\57\155\x69\156\151\x6f\x72\141\x6e\147\x65\163\141\155\x6c\57";
iD:
jimport("\x6d\x69\x6e\151\x6f\x72\141\x6e\x67\x65\x73\141\155\154\160\x6c\x75\x67\151\x6e\x2e\x75\164\x69\x6c\151\164\x79\56\x65\156\x63\x72\171\160\164\x69\157\x6e");
$rx = $_COOKIE["\x6d\x6f\163\x61\x6d\154\x72\145\144\x69\x72\x65\x63\x74"];
$BA = $Yi["\143\165\163\164\157\x6d\x65\162\x5f\x74\157\153\145\x6e"];
$Fv = $Yi["\x61\160\x69\137\153\145\x79"];
$rx = AESEncryption::decrypt_data($rx, $BA);
$cw = array();
$cw = explode("\x3a", $rx);
$FR = $cw[0];
$sz = $cw[1];
$C4 = $cw[2];
$kB = time();
if (!($sz == $Fv && $kB - $FR < 30)) {
goto ta;
}
setcookie("\x6d\x6f\163\x61\155\154\162\x65\144\151\x72\x65\x63\164", "\55\61", time() - 100, "\57");
unset($_COOKIE["\155\157\163\x61\x6d\154\x72\x65\x64\151\162\x65\143\164"]);
$kB = time();
$rx = $kB . "\x3a" . $Fv;
$rx = AESEncryption::encrypt_data($rx, $BA);
$fc = $kB + 30;
$nM = setcookie("\155\157\x73\x61\x6d\x6c\x61\165\164\x68\141\144\x6d\x69\156", $rx, $fc, "\x2f");
$TB = $aq . "\141\144\x6d\x69\156\x69\163\164\162\x61\164\157\x72\57\x69\x6e\x64\145\x78\x2e\x70\x68\x70";
$rx = $_COOKIE["\137\x6d\157\x73\x65\x73\163\151\157\156"];
setcookie("\137\x6d\x6f\x73\x65\163\x73\x69\x6f\156", "\55\61", time() - 100, "\57");
unset($_COOKIE["\137\x6d\157\x73\145\x73\163\x69\157\x6e"]);
$rx = AESEncryption::decrypt_data($rx, $BA);
$IW = array();
$IW = explode("\72", $rx);
$US = $IW[0];
$wM = $IW[1];
$hz = JFactory::getSession();
$hz->set("\x4d\x4f\137\123\101\x4d\x4c\137\x4e\x41\x4d\105\x49\x44", $wM);
$hz->set("\x4d\117\137\123\101\x4d\x4c\137\123\x45\x53\123\111\117\116\137\x49\116\104\x45\130", $US);
echo "\74\146\157\x72\155\x20\151\144\x3d\42\155\x6f\163\x61\x6d\154\x5f\141\144\155\x69\x6e\154\157\147\x69\156\x66\x6f\162\x6d\42\40\141\143\164\151\x6f\156\75\42" . $TB . "\x22\x20\x6d\x65\x74\150\157\144\75\42\160\157\x73\x74\42\x3e\12\x9\x9\x9\11\x9\x3c\x69\x6e\x70\x75\164\x20\164\171\x70\x65\x3d\x22\x68\151\144\x64\x65\x6e\42\x20\156\141\155\145\75\42\x75\163\145\x72\156\141\x6d\145\42\40\166\141\x6c\165\x65\x3d\42" . $C4 . "\x22\x20\x2f\x3e\xa\11\x9\11\11\11\74\151\x6e\160\x75\x74\40\x74\171\x70\x65\x3d\42\150\151\x64\x64\x65\156\x22\40\x6e\141\x6d\x65\75\x22\160\x61\163\163\x77\144\x22\40\166\141\154\x75\145\x3d\42\160\141\163\163\167\144\x22\x20\x2f\76\xa\x9\11\11\11\x9\74\x69\156\x70\165\164\x20\x74\x79\x70\145\x3d\42\150\151\x64\x64\x65\156\x22\x20\156\141\155\x65\x3d\42\x6f\x70\x74\x69\157\x6e\x22\40\x76\141\x6c\x75\145\75\x22\x63\x6f\155\137\154\157\147\x69\156\42\x3e\xa\x9\x9\11\x9\x9\x3c\x69\156\160\x75\x74\x20\164\x79\160\x65\75\42\150\151\144\x64\145\x6e\x22\40\156\141\x6d\x65\x3d\42\164\x61\x73\153\42\x20\x76\x61\154\165\x65\75\x22\x6c\x6f\147\x69\156\42\x3e\12\11\11\11\x9\11\x3c\x69\x6e\160\165\x74\x20\164\x79\x70\145\75\42\150\151\x64\144\x65\156\x22\40\x6e\141\155\145\x3d\x22\162\x65\164\165\x72\156\x22\40\166\x61\154\x75\145\75\x22\x61\x57\65\153\132\130\147\x75\x63\x47\150\x77\x22\x3e" . JHtml::_("\146\x6f\162\155\56\x74\157\153\x65\x6e") . "\x3c\57\x66\x6f\x72\155\76\12\11\x9\11\x9\74\x73\x63\x72\x69\160\164\x3e\12\11\11\11\x9\x9\x73\145\164\124\x69\x6d\x65\157\165\164\50\146\165\x6e\x63\x74\x69\157\156\50\x29\173\12\11\x9\x9\x9\11\11\x64\x6f\x63\165\x6d\145\x6e\x74\x2e\147\145\x74\105\154\x65\x6d\x65\156\x74\x42\x79\x49\x64\x28\42\155\x6f\163\141\155\x6c\137\x61\x64\155\x69\156\x6c\x6f\x67\151\x6e\146\157\x72\x6d\42\x29\x2e\163\165\x62\x6d\151\x74\50\x29\73\xa\11\x9\11\x9\x9\175\54\40\x31\60\x30\51\x3b\x9\xa\11\x9\11\x9\x3c\57\163\143\x72\151\160\164\76";
die;
ta:
SU:
}
function autoRedirect($Uo)
{
$user = JFactory::getUser();
$hD = JFactory::getApplication("\163\151\x74\145");
$hD->initialise();
if ($hD->isAdmin()) {
goto Jj;
}
if ($user->id) {
goto zT;
}
$this->redirectToIDP($Uo);
zT:
Jj:
}
function redirectToIDP($Uo)
{
$Km = $Uo["\163\151\x6e\147\154\145\x5f\x73\151\x67\x6e\157\156\137\163\x65\162\166\151\143\x65\x5f\x75\x72\x6c"];
if (!empty($Km)) {
goto X5;
}
return;
X5:
$aq = '';
$jn = '';
if (!isset($Uo["\163\x70\x5f\142\x61\163\145\137\x75\162\x6c"])) {
goto C2;
}
$aq = $Uo["\x73\x70\x5f\x62\x61\163\x65\137\165\162\154"];
$jn = $Uo["\x73\160\x5f\145\x6e\164\151\x74\x79\x5f\x69\x64"];
C2:
$lM = JURI::root();
if (!empty($aq)) {
goto Ys;
}
$aq = $lM;
Ys:
if (!empty($jn)) {
goto VH;
}
$jn = $lM . "\160\x6c\x75\147\151\x6e\163\57\x61\x75\x74\x68\145\156\164\151\x63\x61\164\x69\x6f\156\57\155\151\x6e\151\x6f\162\x61\156\x67\x65\163\141\x6d\x6c\x2f";
VH:
$JU = !empty($_SERVER["\110\124\x54\120\123"]) && $_SERVER["\x48\124\124\x50\123"] !== "\157\x66\x66" || $_SERVER["\123\x45\122\x56\105\x52\x5f\x50\x4f\x52\124"] == 443 ? "\150\x74\x74\x70\x73\72\x2f\57" : "\x68\x74\164\x70\72\x2f\x2f";
$XH = $JU . "{$_SERVER["\x48\x54\x54\120\137\110\x4f\123\x54"]}{$_SERVER["\122\x45\121\x55\105\123\124\137\125\x52\111"]}";
$sW = $aq . "\x3f\x6d\157\x72\x65\161\x75\x65\163\x74\x3d\x73\x73\157\x26\122\x65\x6c\x61\171\x53\164\141\164\145\x3d" . urlencode($XH);
header("\114\157\x63\141\x74\x69\x6f\x6e\72\x20" . $sW);
die;
}
function show_error_message($Hu, $XH)
{
if ($XH == "\x74\145\x73\164\126\x61\x6c\x69\x64\141\x74\x65") {
goto y1;
}
if ($Hu == "\122\x65\x71\x75\x65\163\x74\x44\145\x6e\x69\x65\144") {
goto nu;
}
echo "\x57\145\40\x63\157\165\154\144\40\156\x6f\164\40\163\x69\x67\156\x20\171\157\x75\x20\x69\156\56\x20\x50\154\145\x61\x73\145\x20\143\157\156\164\141\x63\164\x20\171\x6f\x75\162\40\101\144\155\151\156\151\163\x74\162\141\164\157\x72\x2e";
die;
goto p_;
nu:
echo "\x59\x6f\x75\x20\x61\162\x65\40\156\157\164\x20\141\154\x6c\x6f\x77\145\x64\x20\x74\x6f\40\x6c\x6f\147\151\x6e\x20\x69\x6e\x74\157\x20\164\150\x65\x20\163\151\x74\145\x2e\x20\120\154\145\x61\163\145\x20\143\157\x6e\164\x61\143\x74\40\x79\x6f\165\x72\40\101\144\155\151\156\x69\x73\164\162\x61\x74\157\x72\x2e";
die;
p_:
goto Fl;
y1:
echo "\74\144\151\166\40\163\164\171\154\x65\x3d\x22\146\157\156\164\x2d\x66\x61\x6d\x69\x6c\x79\x3a\103\141\154\x69\x62\162\151\x3b\160\141\x64\x64\x69\x6e\x67\72\60\x20\63\45\x3b\42\x3e";
echo "\x3c\144\x69\166\x20\163\164\x79\x6c\145\75\x22\143\157\x6c\157\162\72\40\x23\141\71\x34\64\x34\62\x3b\142\x61\143\x6b\x67\162\x6f\x75\156\x64\55\x63\157\154\x6f\162\x3a\x20\x23\146\62\144\x65\x64\x65\73\160\141\144\x64\x69\156\147\72\x20\x31\65\x70\170\x3b\x6d\x61\162\x67\x69\156\x2d\142\157\164\164\157\x6d\72\x20\x32\60\160\170\x3b\x74\145\170\x74\x2d\141\154\x69\x67\156\x3a\143\x65\x6e\x74\145\162\73\x62\157\162\x64\145\x72\72\61\160\170\40\x73\x6f\x6c\x69\x64\x20\x23\105\66\x42\63\102\62\x3b\146\x6f\x6e\164\55\x73\x69\172\x65\72\61\x38\x70\x74\73\42\76\40\x45\x52\x52\x4f\122\74\57\x64\151\166\76\xa\x9\11\11\x3c\x64\151\x76\x20\x73\x74\x79\154\145\x3d\x22\143\x6f\154\x6f\x72\x3a\40\x23\x61\71\64\64\64\62\x3b\x66\x6f\x6e\164\x2d\x73\x69\x7a\x65\x3a\61\x34\x70\x74\x3b\x20\155\x61\162\x67\x69\156\55\x62\x6f\x74\164\157\155\x3a\62\60\x70\170\x3b\x22\x3e\x3c\x70\x3e\x3c\163\164\x72\x6f\x6e\147\76\105\162\x72\157\162\x3a\40\x3c\57\x73\x74\162\157\x6e\x67\76\40\x49\x6e\166\x61\x6c\x69\x64\40\123\x41\x4d\x4c\x20\122\145\x73\160\x6f\156\163\145\40\x53\x74\141\x74\165\x73\x2e\x3c\57\160\76\12\11\11\11\x3c\x70\x3e\x3c\163\164\x72\x6f\156\147\76\x43\x61\x75\x73\145\163\x3c\57\x73\164\162\157\156\147\x3e\72\x20\x49\144\x65\156\x74\x69\x74\x79\40\x50\x72\157\166\x69\144\x65\162\x20\x68\x61\163\40\x73\x65\156\164\40\47" . $Hu . "\x27\40\x73\164\141\x74\165\x73\x20\143\157\144\x65\40\151\x6e\40\123\101\x4d\114\x20\x52\x65\x73\x70\157\x6e\163\x65\x2e\x20\x3c\x2f\160\x3e\12\11\11\11\x9\x9\x9\x9\74\x70\76\x3c\163\164\x72\x6f\156\147\x3e\122\x65\141\163\157\x6e\74\x2f\163\164\162\x6f\156\x67\76\72\40" . $this->get_status_message($Hu) . "\x3c\57\x70\x3e\x3c\142\162\76\12\11\11\11\x3c\x2f\144\151\166\76\xa\12\11\11\11\74\x64\x69\x76\40\163\164\x79\154\x65\75\42\x6d\141\x72\x67\151\x6e\x3a\63\45\x3b\x64\x69\163\x70\x6c\141\171\72\x62\154\157\143\x6b\x3b\164\x65\170\x74\x2d\x61\x6c\151\x67\x6e\x3a\x63\x65\156\164\x65\x72\73\42\76\xa\11\11\x9\74\x64\x69\x76\40\163\x74\171\154\145\x3d\x22\155\141\162\x67\x69\x6e\x3a\x33\45\x3b\144\151\x73\160\154\141\171\72\142\154\x6f\x63\x6b\x3b\x74\x65\170\x74\x2d\x61\154\151\x67\x6e\72\x63\x65\x6e\164\x65\x72\73\x22\76\x3c\x69\156\x70\165\x74\40\x73\x74\x79\x6c\x65\75\42\x70\141\144\x64\151\156\x67\72\61\x25\73\167\x69\x64\x74\150\x3a\61\60\60\x70\x78\x3b\x62\x61\x63\153\x67\x72\157\x75\156\x64\72\40\43\x30\x30\x39\61\103\104\x20\x6e\157\156\x65\40\x72\x65\160\x65\x61\x74\x20\163\143\162\157\154\154\40\x30\45\x20\60\45\x3b\143\x75\x72\x73\157\162\72\x20\160\157\x69\x6e\x74\x65\162\x3b\x66\x6f\x6e\164\55\163\x69\172\145\x3a\61\65\x70\170\73\x62\x6f\x72\144\145\x72\55\167\151\x64\164\x68\72\40\x31\160\x78\x3b\x62\x6f\x72\144\145\162\x2d\163\164\171\154\145\x3a\x20\x73\x6f\x6c\151\x64\x3b\x62\157\x72\x64\x65\x72\55\162\141\144\151\x75\163\x3a\40\x33\160\170\73\167\x68\151\164\x65\55\163\x70\x61\x63\x65\x3a\40\156\157\x77\x72\141\160\73\x62\157\170\55\163\151\x7a\151\x6e\x67\x3a\40\142\157\x72\x64\x65\162\55\142\x6f\170\73\x62\x6f\x72\x64\145\162\55\143\157\154\157\x72\72\40\43\60\60\67\63\101\x41\x3b\x62\x6f\170\55\163\150\141\x64\157\x77\72\40\x30\160\x78\40\x31\x70\170\x20\60\x70\x78\40\162\147\x62\141\50\x31\62\60\x2c\40\x32\x30\60\x2c\40\x32\63\x30\x2c\x20\60\56\66\51\x20\x69\x6e\x73\x65\164\x3b\x63\157\x6c\x6f\162\x3a\40\43\x46\106\x46\x3b\x22\x74\x79\160\145\75\x22\x62\165\x74\x74\157\156\x22\x20\166\x61\x6c\x75\145\x3d\x22\104\x6f\x6e\x65\42\40\157\x6e\103\x6c\x69\x63\153\75\x22\x73\x65\154\146\x2e\x63\154\x6f\x73\x65\50\51\x3b\x22\x3e\x3c\x2f\x64\x69\x76\76";
die;
Fl:
}
function get_status_message($Hu)
{
switch ($Hu) {
case "\x52\x65\161\x75\x65\163\x74\104\145\156\x69\x65\x64":
return "\x59\x6f\165\x20\141\162\x65\40\x6e\157\164\x20\x61\x6c\154\157\x77\x65\144\x20\164\157\x20\154\x6f\x67\x69\x6e\x20\x69\x6e\164\157\x20\x74\150\145\40\x73\x69\164\145\x2e\x20\x50\x6c\145\x61\x73\145\40\x63\x6f\x6e\x74\141\x63\164\40\x79\x6f\x75\162\40\x41\144\x6d\x69\x6e\x69\163\x74\162\x61\x74\157\x72\56";
goto Ny;
case "\122\145\161\x75\145\163\x74\145\x72":
return "\124\x68\145\x20\162\x65\x71\165\x65\x73\x74\40\x63\x6f\x75\154\144\x20\156\157\x74\x20\142\145\x20\x70\145\x72\146\x6f\x72\x6d\145\x64\x20\144\x75\x65\40\x74\x6f\40\141\x6e\x20\145\162\162\x6f\x72\40\x6f\156\x20\164\150\145\x20\x70\141\x72\x74\x20\x6f\146\x20\x74\x68\145\40\162\x65\x71\165\145\x73\x74\145\x72\56";
goto Ny;
case "\122\145\x73\x70\x6f\x6e\x64\145\x72":
return "\124\150\145\40\162\145\x71\165\145\x73\164\x20\143\x6f\165\x6c\x64\40\156\x6f\164\x20\142\x65\40\x70\x65\x72\146\157\x72\155\x65\144\40\x64\x75\x65\40\164\x6f\40\141\x6e\40\x65\162\x72\157\162\x20\157\156\x20\164\150\x65\40\x70\x61\162\164\x20\157\x66\40\x74\x68\x65\40\x53\101\x4d\x4c\40\x72\x65\x73\x70\x6f\156\144\x65\162\40\157\162\x20\x53\x41\x4d\114\x20\x61\x75\164\x68\x6f\x72\x69\164\171\x2e";
goto Ny;
case "\126\x65\162\x73\151\157\x6e\115\x69\x73\x6d\141\164\143\x68":
return "\x54\x68\x65\40\123\101\x4d\114\40\x72\145\x73\160\x6f\156\x64\x65\162\40\143\157\165\154\x64\40\156\x6f\164\x20\x70\x72\157\x63\x65\x73\x73\x20\164\150\x65\40\162\145\x71\165\x65\x73\164\40\x62\x65\x63\x61\x75\x73\x65\40\164\x68\145\40\166\145\x72\x73\151\x6f\x6e\x20\x6f\146\40\164\150\145\x20\x72\x65\161\165\145\163\x74\40\x6d\x65\163\163\141\147\x65\40\167\141\163\40\x69\156\143\x6f\162\162\145\x63\x74\x2e";
goto Ny;
default:
return "\125\156\x6b\x6e\x6f\x77\x6e";
}
NB:
Ny:
}
}
Function Calls
| None |
Stats
| MD5 | fa4e78362c99b32f7fe81c9fac13e93e |
| Eval Count | 0 |
| Decode Time | 115 ms |