Basit Admin Panel Kodlayalım

K3D

Katılımcı Üye
1 Mar 2021
629
555
30
root
Selam dostlar, sizlerle birlikte SQL gerektirmeyen bir admin panel yapalım.

index.php dosyamıza göz atalım​
PHP:
<html>
    <head>
        <title>THT K3D giriş</title>

        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <form action="giris.php" method="POST">
            <div class="giris">
                <h1>Hoşg geldiniz.</h1>

                <!--  -->

                <input type="text" name="username" placeholder="Kullanıcı Adı">
                <input type="text" name="password" placeholder="Şifre">
                <input type="submit" value="Giriş" class="btn">
            </div>
        </form>
    </body>
</html>

Style.css dosyamız
CSS:
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@600&display=swap');

body{
    background-color: #fff;
    font-family: 'Rajdhani', sans-serif;
}

.giris{
    padding: 10px;
    background-color: #1a1a1a;
    border-radius: 10px;
    width: 500px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fff;
    box-shadow: 0px 2px 50px 0px rgba(0, 0, 0, .5);
}
.giris input[type="text"]{
    padding: 10px;
    background-color: transparent;
    display: block;
    width: 100%;
    margin-bottom: 15px;
    border: none;
    outline: none;
    color: #fff;
    transition: 250ms all;
    background-image: linear-gradient(90deg, #fff 100%, #fff 0%);
    background-repeat: no-repeat;
    background-size: 0% 2px;
    background-position: bottom center;
}
.giris input[type="text"]:focus{
    background-size: 100% 2px;
}
.giris .btn{
    padding: 10px;
    width: 200px;
    background-color: #fff;
    border: none;
    outline: none;
    border-radius: 7px;
    margin-bottom: 15px;
    transition: 250ms all;
}
.giris .btn:hover{
    background-color: #1a1a1a;
    box-shadow: 0px 0px 0px 2px #fff;
    color: #fff;
}

Öncelikle veri.php dosyamızın içerisine
PHP:
<?php
    // Buraya username, password gireceğiz. Örnek verilmiştir
    $username = "k3dturkhackteam";
    $password = "k3dturkhackteam123"
?>

Bu dosyamızı doldurduktan sonra giris.php dosyamıza gelip bu kodları yazalım
PHP:
<?php

    include ("data.php"); // Bağlantı kuralım
    session_start();
    ob_start();

    // Eğer giriş bilgileri başarılı ise, admin.php yoluna yönlendirsin
    if(($_POST["username"]==$username) and ($_POST["password"]==$pass)){
        $_SESSION["login"] = "true";
        $_SESSION["username"] = $username;
        $_SESSION["password"] = $pass;
        header("Location:admin.php");
    } else{ // Yanlış işe hata versin
        echo "
            <style>
                .error{
                    padding: 10px;
                    background-color: #ff0000;
                    border-radius: 10px;
                    width: 500px;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    text-align: center;
                    color: #000;
                    box-shadow: 0px 2px 50px 0px rgba(255, 26, 5, .5);
                }

            </style>

            <div class='error'>
           
            <p>Admin Bilgilerini Yanlış Girdiniz.</p>
            <p>Yönlendiriliyorsunuz..</p>
           
            </div>

        ";
        header("Refresh: 2; url=index.php");
        exit;
    }

    ob_end_flush()

?>

Sıra geldi admin.php adlı dosyamıza.
PHP:
<?php

    include ("data.php");
    session_start();
    if(!isset($_SESSION["login"])){
        echo "
            <style>
                .error{
                    padding: 10px;
                    background-color: #ff0000;
                    border-radius: 10px;
                    width: 500px;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    text-align: center;
                    color: #000;
                    box-shadow: 0px 2px 50px 0px rgba(255, 26, 5, .5);
                }

                </style>

                <div class='error'>
               
                <p>Önce Giriş Yap.</p>
               
                </div>
            ";
            header("Refresh: 2; url=index.php");
            exit;
    } else{
        $isim = $_SESSION["username"];

        echo "
       
            <h1>Hoşgeldin ${isim}</h1>

            <a href='cikis.php'>Çıkış Yap<a>

        ";
    }
?>

çıkış.php dosyamızı da unutmuyoruz
PHP:
<?php

    session_start();
    ob_start();
    session_destroy();

    echo "
        <style>
            .error{
                padding: 10px;
                background-color: #ff0000;
                border-radius: 10px;
                width: 500px;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                text-align: center;
                color: #000;
                box-shadow: 0px 2px 50px 0px rgba(255, 26, 5, .5);
            }
        </style>

        <div class='error'>
           
        <p>Yanlış Bilgiler.</p>
        <p>Yönlendiriliyorsunuz..</p>
           
        </div>
    ";
    header("Refresh: 2; url=index.php");
    exit;
    ob_end_flush();
?>


İşlemleri tamamladıktan sonra indeximi ve admin panelimiz bu şekil de gözükecektir.

qpstdyw.jpg


aew8142.jpg


Şimdilik basit bir admin panel ile karşınıza geldim. Eğer istenilirse profil resmi değiştirme ıvır zıvır hepsini ayarlayıp atabilirim. İyi forumlar.​
 
Son düzenleme:

Pentester

Özel Üye
8 Eyl 2016
1,646
996
Emeğine sağlık. Ayrıca admin.php dosyasında yetkisiz bir erişim sağlanırken
PHP:
header("Refresh: 2; url=index.php");
bu kod ile yönlendirmenin hemen arkasından exit ile sonlandırma yapman güvenlik açısından doğru olacaktır bilgin olsun.
PHP:
header("Refresh: 2; url=index.php");
exit;
Yani bu şekilde.
 
  • Beğen
Tepkiler: K3D

K3D

Katılımcı Üye
1 Mar 2021
629
555
30
root
Emeğine sağlık. Ayrıca admin.php dosyasında yetkisiz bir erişim sağlanırken
PHP:
header("Refresh: 2; url=index.php");
bu kod ile yönlendirmenin hemen arkasından exit ile sonlandırma yapman güvenlik açısından doğru olacaktır bilgin olsun.
PHP:
header("Refresh: 2; url=index.php");
exit;
Yani bu şekilde.
Teşekkür ediyorum Hocam, düzeltildi.
 

K3D

Katılımcı Üye
1 Mar 2021
629
555
30
root
ondan sonra abe neden sitemi bastın :D
kod da güvenlik zafiyeti var haberin olsun.


"BASİT" bir admin panel olarak adlandırdığımı unutuyorsun. Basit olduğu için pek kasmama gerek yok gibi. Gelişmiş versiyonunu bir kaç saat sonra atacağım, dilerim ki onda da açık bulasın :)
 
21 May 2022
65
38
Pitbullar
yahu siz bu eleştirileri hakaret olarak algıladıkça ileri gidemezsiniz ki...
buradan öğrenmen gereken şu ki c99 vb web sheller bu yöntem ile geçilebiliyor. PHP ye yeni başlayan herkes bu şekil de kodlama yapıyor buda tehlikelidir.
ayrıca gelişmiş versionu yapmanın yararı anca hatanı anlayınca olacaktır böyle yaparsan ilerleyemezsin.
eskiden sadrazam shell vardı oda aynı mantık çalışıyor sadece değişken adını tahmin et bas siteyi : D
 

K3D

Katılımcı Üye
1 Mar 2021
629
555
30
root
Ellerine sağlık dostum. Asistanlığın hayırlı olsun :)
Teşekkür ediyorum.

yahu siz bu eleştirileri hakaret olarak algıladıkça ileri gidemezsiniz ki...
buradan öğrenmen gereken şu ki c99 vb web sheller bu yöntem ile geçilebiliyor. PHP ye yeni başlayan herkes bu şekil de kodlama yapıyor buda tehlikelidir.
ayrıca gelişmiş versionu yapmanın yararı anca hatanı anlayınca olacaktır böyle yaparsan ilerleyemezsin.
eskiden sadrazam shell vardı oda aynı mantık çalışıyor sadece değişken adını tahmin et bas siteyi : D
. :)
 

denizkalma

Katılımcı Üye
14 Ocak 2021
976
264
Selam dostlar, sizlerle birlikte SQL gerektirmeyen bir admin panel yapalım.

index.php dosyamıza göz atalım​
PHP:
<html>
    <head>
        <title>THT K3D giriş</title>

        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <form action="giris.php" method="POST">
            <div class="giris">
                <h1>Hoşg geldiniz.</h1>

                <!--  -->

                <input type="text" name="username" placeholder="Kullanıcı Adı">
                <input type="text" name="password" placeholder="Şifre">
                <input type="submit" value="Giriş" class="btn">
            </div>
        </form>
    </body>
</html>

Style.css dosyamız
CSS:
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@600&display=swap');

body{
    background-color: #fff;
    font-family: 'Rajdhani', sans-serif;
}

.giris{
    padding: 10px;
    background-color: #1a1a1a;
    border-radius: 10px;
    width: 500px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #fff;
    box-shadow: 0px 2px 50px 0px rgba(0, 0, 0, .5);
}
.giris input[type="text"]{
    padding: 10px;
    background-color: transparent;
    display: block;
    width: 100%;
    margin-bottom: 15px;
    border: none;
    outline: none;
    color: #fff;
    transition: 250ms all;
    background-image: linear-gradient(90deg, #fff 100%, #fff 0%);
    background-repeat: no-repeat;
    background-size: 0% 2px;
    background-position: bottom center;
}
.giris input[type="text"]:focus{
    background-size: 100% 2px;
}
.giris .btn{
    padding: 10px;
    width: 200px;
    background-color: #fff;
    border: none;
    outline: none;
    border-radius: 7px;
    margin-bottom: 15px;
    transition: 250ms all;
}
.giris .btn:hover{
    background-color: #1a1a1a;
    box-shadow: 0px 0px 0px 2px #fff;
    color: #fff;
}

Öncelikle veri.php dosyamızın içerisine
PHP:
<?php
    // Buraya username, password gireceğiz. Örnek verilmiştir
    $username = "k3dturkhackteam";
    $password = "k3dturkhackteam123"
?>

Bu dosyamızı doldurduktan sonra giris.php dosyamıza gelip bu kodları yazalım
PHP:
<?php

    include ("data.php"); // Bağlantı kuralım
    session_start();
    ob_start();

    // Eğer giriş bilgileri başarılı ise, admin.php yoluna yönlendirsin
    if(($_POST["username"]==$username) and ($_POST["password"]==$pass)){
        $_SESSION["login"] = "true";
        $_SESSION["username"] = $username;
        $_SESSION["password"] = $pass;
        header("Location:admin.php");
    } else{ // Yanlış işe hata versin
        echo "
            <style>
                .error{
                    padding: 10px;
                    background-color: #ff0000;
                    border-radius: 10px;
                    width: 500px;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    text-align: center;
                    color: #000;
                    box-shadow: 0px 2px 50px 0px rgba(255, 26, 5, .5);
                }

            </style>

            <div class='error'>
          
            <p>Admin Bilgilerini Yanlış Girdiniz.</p>
            <p>Yönlendiriliyorsunuz..</p>
          
            </div>

        ";
        header("Refresh: 2; url=index.php");
        exit;
    }

    ob_end_flush()

?>

Sıra geldi admin.php adlı dosyamıza.
PHP:
<?php

    include ("data.php");
    session_start();
    if(!isset($_SESSION["login"])){
        echo "
            <style>
                .error{
                    padding: 10px;
                    background-color: #ff0000;
                    border-radius: 10px;
                    width: 500px;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    text-align: center;
                    color: #000;
                    box-shadow: 0px 2px 50px 0px rgba(255, 26, 5, .5);
                }

                </style>

                <div class='error'>
              
                <p>Önce Giriş Yap.</p>
              
                </div>
            ";
            header("Refresh: 2; url=index.php");
            exit;
    } else{
        $isim = $_SESSION["username"];

        echo "
      
            <h1>Hoşgeldin ${isim}</h1>

            <a href='cikis.php'>Çıkış Yap<a>

        ";
    }
?>

çıkış.php dosyamızı da unutmuyoruz
PHP:
<?php

    session_start();
    ob_start();
    session_destroy();

    echo "
        <style>
            .error{
                padding: 10px;
                background-color: #ff0000;
                border-radius: 10px;
                width: 500px;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                text-align: center;
                color: #000;
                box-shadow: 0px 2px 50px 0px rgba(255, 26, 5, .5);
            }
        </style>

        <div class='error'>
          
        <p>Yanlış Bilgiler.</p>
        <p>Yönlendiriliyorsunuz..</p>
          
        </div>
    ";
    header("Refresh: 2; url=index.php");
    exit;
    ob_end_flush();
?>


İşlemleri tamamladıktan sonra indeximi ve admin panelimiz bu şekil de gözükecektir.

qpstdyw.jpg


aew8142.jpg


Şimdilik basit bir admin panel ile karşınıza geldim. Eğer istenilirse profil resmi değiştirme ıvır zıvır hepsini ayarlayıp atabilirim. İyi forumlar.​
bunu nasıl acıyoruz tarayıcıdan acınca phpyı tekrar ındırıyor html yapınca acabılıyom daha once hıc php yazmadım bılmıyorum
 

K3D

Katılımcı Üye
1 Mar 2021
629
555
30
root
bunu nasıl acıyoruz tarayıcıdan acınca phpyı tekrar ındırıyor html yapınca acabılıyom daha once hıc php yazmadım bılmıyorum
XAMPP Programını Download XAMPP bu linkten indir

kurulumunu yaptıktan sonra ise uygulamayı aç


s7yuxk7.jpg


Burada Apache start yap, sonrasında ise Explorer butonuna tıkla.

Explorer butonuna tıkladıktan sonra sana bir dosya konumu açacaktır, ordan "htdocs" adlı klasörü bul.

yl02liq.jpg


PHP dosyalarını bu klasörün içine at. Attıktan sonra ise tarayıcıya gel ve arama yerine localhost yazıp enter'a tıkla.

t4rt2kg.jpg
 

Pentester

Özel Üye
8 Eyl 2016
1,646
996
ondan sonra abe neden sitemi bastın :D
kod da güvenlik zafiyeti var haberin olsun.

Şu yaptığın atak vektörünün geçerli olmasının giris.php de dahil edilmeye çalışılan
Kod:
include ("data.php");
dosyasının ilgili directory de bulunmuyor olmasından kaynaklanıyor olduğunu biliyorsun değil mi? Çünkü bu durumda giris.php dosyasına değişken isimlerini yazmadan yaptığın bir istek seni yine admin.php dosyasına yönlendiriyor olacaktır. Burada ilgili if kontrolü data.php dosyasındaki doğru değişken adlarını okuyup post isteğiyle eşleştirdiği durumda senin yaptığın saldırı geçersiz olacaktır. Ortaya attığın kanının mantığını ve çözümünü de sunarsan daha sağlıklı olur abem.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.