v2.5.2
Giriş yap

mevcut kodlarda bir açık mevcut üye girişi yapmadan sisteme login olabiliyorlar sizce nerede benmi göremiyorum

Anonim
561 defa görüntülendi

<?php
include "functions.php";
if (isset($_SESSION['hash'])) { header("Location: ./dashboard.php"); exit; }

$rAdminSettings = getAdminSettings();

$rGA = new PHPGangsta_GoogleAuthenticator();
if ((isset($_POST["username"])) && (isset($_POST["password"]))) {

$rUserInfo = doLogin($_POST["username"], $_POST["password"]);
if (isset($rUserInfo)) {
    if ((isset($rAdminSettings["google_2factor"])) && ($rAdminSettings["google_2factor"])) {
        if (strlen($rUserInfo["google_2fa_sec"]) == 0) {
            $rGA = new PHPGangsta_GoogleAuthenticator();
            $rSecret = $rGA->createSecret();
            $rUserInfo["google_2fa_sec"] = $rSecret;
            $db->query("UPDATE `reg_users` SET `google_2fa_sec` = '".$db->real_escape_string($rSecret)."' WHERE `id` = ".intval($rUserInfo["id"]).";");
            $rNew2F = true;
        }
        $rQR = $rGA->getQRCodeGoogleUrl('UI', $rUserInfo["google_2fa_sec"]);
    } else {
        $rPermissions = getPermissions($rUserInfo["member_group_id"]);
        if (($rPermissions) && ((($rPermissions["is_admin"]) OR ($rPermissions["is_reseller"])) && ((!$rPermissions["is_banned"]) && ($rUserInfo["status"] == 1)))) {
            $db->query("UPDATE `reg_users` SET `last_login` = UNIX_TIMESTAMP(), `ip` = '".$db->real_escape_string(getIP())."' WHERE `id` = ".intval($rUserInfo["id"]).";");
            $_SESSION['hash'] = md5($rUserInfo["username"]);
            if ($rPermissions["is_admin"]) {
                if (strlen($_POST["referrer"]) > 0) {
                    header("Location: .".$_POST["referrer"]);
                } else {
                    header("Location: ./dashboard.php");
                }
            } else {
                $db->query("INSERT INTO `reg_userlog`(`owner`, `username`, `password`, `date`, `type`) VALUES(".intval($rUserInfo["id"]).", '', '', ".intval(time()).", '[<b>UserPanel</b> -> <u>Logged In</u>]');");
                if (strlen($_POST["referrer"]) > 0) {
                    header("Location: .".$_POST["referrer"]);
                } else {
                    header("Location: ./reseller.php");
                }
            }
        } else if (($rPermissions) && ((($rPermissions["is_admin"]) OR ($rPermissions["is_reseller"])) && ($rPermissions["is_banned"]))) {
            $_STATUS = 2;
        } else if (($rPermissions) && ((($rPermissions["is_admin"]) OR ($rPermissions["is_reseller"])) && (!$rUserInfo["status"]))) {
            $_STATUS = 3;
        } else {
            $_STATUS = 4;
        }
    }
} else {
    $_STATUS = 0;
}

} else if ((isset($_POST["gauth"])) && (isset($_POST["hash"]))) {

$rUserInfo = getRegisteredUserHash($_POST["hash"]);
if ($rUserInfo) {
    if ($rGA->verifyCode($rUserInfo["google_2fa_sec"], $_POST["gauth"], 2)) {
        $rPermissions = getPermissions($rUserInfo["member_group_id"]);
        if (($rPermissions) && ((($rPermissions["is_admin"]) OR ($rPermissions["is_reseller"])) && ((!$rPermissions["is_banned"]) && ($rUserInfo["status"] == 1)))) {
            $db->query("UPDATE `reg_users` SET `last_login` = UNIX_TIMESTAMP(), `ip` = '".$db->real_escape_string(getIP())."' WHERE `id` = ".intval($rUserInfo["id"]).";");
            $_SESSION['hash'] = md5($rUserInfo["username"]);
            if ($rPermissions["is_admin"]) {
                header("Location: ./dashboard.php");
            } else {
                $db->query("INSERT INTO `reg_userlog`(`owner`, `username`, `password`, `date`, `type`) VALUES(".intval($rUserInfo["id"]).", '', '', ".intval(time()).", '[<b>UserPanel</b> -> <u>Logged In</u>]');");
                header("Location: ./reseller.php");
            }
        } else if (($rPermissions) && ((($rPermissions["is_admin"]) OR ($rPermissions["is_reseller"])) && ($rPermissions["is_banned"]))) {
            $_STATUS = 2;
        } else if (($rPermissions) && ((($rPermissions["is_admin"]) OR ($rPermissions["is_reseller"])) && (!$rUserInfo["status"]))) {
            $_STATUS = 3;
        } else {
            $_STATUS = 4;
        }
    } else {
        $rQR = $rGA->getQRCodeGoogleUrl('UI', $rUserInfo["google_2fa_sec"]);
        $_STATUS = 1;
    }
} else {
    $_STATUS = 0;
}

}
?>

Cevap yaz
Cevaplar (2)
ykyazilim
1448 gün önce

gelen mail ve şifrede addslashes fonksiyonu kullan

makifgokce
1449 gün önce

GoogleAuthenticator olayını bilmiyorum.Ama $_POST tan gelen veriyi kontrolsüz bir şekilde sorguda kullanıyorsan açık oradan kaynaklanıyordur.
Owasp Zap ile site üzerinde zafiyet taraması yapabilirsin.