İşlevsel Giriş Yap/Kayıt Ol Sayfası

ByFelez

Uzman üye
9 Tem 2013
1,818
1,774
Bu Konuyu Örnek Olarak Açıyorum.

eqxivf3.png


gcdmh5j.png


iv3y296.png


m1mnurv.png


pa4trs6.png


cjimmre.png


b743gl6.png



index.php


PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header("Location: main.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Ana Sayfa</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <div class="row justify-content-center">
      <div class="col-md-4 text-center">
        <h2>Hoş Geldiniz!</h2>
        <p>Lütfen devam etmek için giriş yapın veya kayıt olun.</p>
        <a href="login.php" class="btn btn-primary btn-lg mr-2">Giriş Yap</a>
        <a href="register.php" class="btn btn-success btn-lg ml-2">Kayıt Ol</a>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>


login.php





PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header("Location: main.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Giriş Yap</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <div class="row justify-content-center">
      <div class="col-md-4">
        <h2 class="text-center mb-4">Giriş Yap</h2>
        <form action="login_process.php" method="post">
          <div class="form-group">
            <input type="text" class="form-control" name="loginUsername" placeholder="Kullanıcı Adı" required>
          </div>
          <div class="form-group">
            <input type="password" class="form-control" name="loginPassword" placeholder="Şifre" required>
          </div>
          <button type="submit" class="btn btn-primary btn-block">Giriş Yap</button>
        </form>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>


register.php



PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header("Location: main.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Kayıt Ol</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <div class="row justify-content-center">
      <div class="col-md-4">
        <h2 class="text-center mb-4">Kayıt Ol</h2>
        <form action="register_process.php" method="post">
          <div class="form-group">
            <input type="text" class="form-control" name="username" placeholder="Kullanıcı Adı" required>
          </div>
          <div class="form-group">
            <input type="password" class="form-control" name="password" placeholder="Şifre" required>
          </div>
          <button type="submit" class="btn btn-success btn-block">Kayıt Ol</button>
        </form>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

main.php

PHP:
<?php
session_start();

if (!isset($_SESSION['username'])) {
    header("Location: index.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>E-Ticaret Sitesi</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">E-Ticaret</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item">
          <a class="nav-link" href="#">Sepet</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Favoriler</a>
        </li>
        <?php if(isset($_SESSION['username'])): ?>
          <li class="nav-item">
            <a class="nav-link" href="#"><?php echo $_SESSION['username']; ?></a>
          </li>
        <?php endif; ?>
      </ul>
    </div>
  </nav>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

login_process.php



PHP:
<?php
session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $loginUsername = $_POST['loginUsername'];
    $loginPassword = $_POST['loginPassword'];

    $servername = "localhost";
    $db_username = "webtht";
    $db_password = "webtht123*";
    $dbname = "webtht";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Bağlantı hatası: " . $conn->connect_error);
    }

    $fetch_query = "SELECT * FROM users WHERE username='$loginUsername'";
    $result = $conn->query($fetch_query);

    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        if (password_verify($loginPassword, $row['password'])) {
            $_SESSION['username'] = $loginUsername;
            header("Location: main.php");
            exit();
        } else {
            echo "Hatalı şifre!";
        }
    } else {
        echo "Kullanıcı bulunamadı!";
    }

    $conn->close();
}
?>

register_process.php



PHP:
<?php
session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $hashed_password = password_hash($password, PASSWORD_DEFAULT);

    $servername = "localhost";
    $db_username = "webtht";
    $db_password = "webtht123*";
    $dbname = "webtht";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Bağlantı hatası: " . $conn->connect_error);
    }

    $insert_query = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')";
 
    if ($conn->query($insert_query) === TRUE) {
        header("Location: login.php");
        exit();
    } else {
        echo "Hata: " . $conn->error;
    }

    $conn->close();
}
?>
 

flex1n

Yeni üye
12 Kas 2023
42
8
Bu Konuyu Örnek Olarak Açıyorum.

eqxivf3.png


gcdmh5j.png


iv3y296.png


m1mnurv.png


pa4trs6.png


cjimmre.png


b743gl6.png



index.php


PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header("Location: main.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Ana Sayfa</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <div class="row justify-content-center">
      <div class="col-md-4 text-center">
        <h2>Hoş Geldiniz!</h2>
        <p>Lütfen devam etmek için giriş yapın veya kayıt olun.</p>
        <a href="login.php" class="btn btn-primary btn-lg mr-2">Giriş Yap</a>
        <a href="register.php" class="btn btn-success btn-lg ml-2">Kayıt Ol</a>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>


login.php





PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header("Location: main.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Giriş Yap</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <div class="row justify-content-center">
      <div class="col-md-4">
        <h2 class="text-center mb-4">Giriş Yap</h2>
        <form action="login_process.php" method="post">
          <div class="form-group">
            <input type="text" class="form-control" name="loginUsername" placeholder="Kullanıcı Adı" required>
          </div>
          <div class="form-group">
            <input type="password" class="form-control" name="loginPassword" placeholder="Şifre" required>
          </div>
          <button type="submit" class="btn btn-primary btn-block">Giriş Yap</button>
        </form>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>


register.php



PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header("Location: main.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Kayıt Ol</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <div class="container mt-5">
    <div class="row justify-content-center">
      <div class="col-md-4">
        <h2 class="text-center mb-4">Kayıt Ol</h2>
        <form action="register_process.php" method="post">
          <div class="form-group">
            <input type="text" class="form-control" name="username" placeholder="Kullanıcı Adı" required>
          </div>
          <div class="form-group">
            <input type="password" class="form-control" name="password" placeholder="Şifre" required>
          </div>
          <button type="submit" class="btn btn-success btn-block">Kayıt Ol</button>
        </form>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

main.php

PHP:
<?php
session_start();

if (!isset($_SESSION['username'])) {
    header("Location: index.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>E-Ticaret Sitesi</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
  <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">E-Ticaret</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item">
          <a class="nav-link" href="#">Sepet</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Favoriler</a>
        </li>
        <?php if(isset($_SESSION['username'])): ?>
          <li class="nav-item">
            <a class="nav-link" href="#"><?php echo $_SESSION['username']; ?></a>
          </li>
        <?php endif; ?>
      </ul>
    </div>
  </nav>

  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

login_process.php



PHP:
<?php
session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $loginUsername = $_POST['loginUsername'];
    $loginPassword = $_POST['loginPassword'];

    $servername = "localhost";
    $db_username = "webtht";
    $db_password = "webtht123*";
    $dbname = "webtht";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Bağlantı hatası: " . $conn->connect_error);
    }

    $fetch_query = "SELECT * FROM users WHERE username='$loginUsername'";
    $result = $conn->query($fetch_query);

    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        if (password_verify($loginPassword, $row['password'])) {
            $_SESSION['username'] = $loginUsername;
            header("Location: main.php");
            exit();
        } else {
            echo "Hatalı şifre!";
        }
    } else {
        echo "Kullanıcı bulunamadı!";
    }

    $conn->close();
}
?>

register_process.php



PHP:
<?php
session_start();

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $hashed_password = password_hash($password, PASSWORD_DEFAULT);

    $servername = "localhost";
    $db_username = "webtht";
    $db_password = "webtht123*";
    $dbname = "webtht";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Bağlantı hatası: " . $conn->connect_error);
    }

    $insert_query = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')";

    if ($conn->query($insert_query) === TRUE) {
        header("Location: login.php");
        exit();
    } else {
        echo "Hata: " . $conn->error;
    }

    $conn->close();
}
?>
Eline saglik
 

Bays-hal

Yeni üye
24 Eki 2022
16
9
Yetkili bir yer
Nerde sql acigi nerde xss acigi nerde session daki username dogrulamasi zaten en basit halini gostermissin bari 10 senelik bu açıkları kapatsaydin.
 

ByFelez

Uzman üye
9 Tem 2013
1,818
1,774
Teşekkürler felez🙂
Rica ederim
Elinize sağlık hocam
Teşekkürler
Nerde sql acigi nerde xss acigi nerde session daki username dogrulamasi zaten en basit halini gostermissin bari 10 senelik bu açıkları kapatsaydin.
Bende sizi anlamıyorum burada açıklar üzerine bi konu açmadım ben.
Aç öyle bi konu biz okuyalım. Basit mantık bir giriş sayfası. Local Hostta çalışıyor.
 

Bays-hal

Yeni üye
24 Eki 2022
16
9
Yetkili bir yer
Rica ederim

Teşekkürler

Bende sizi anlamıyorum burada açıklar üzerine bi konu açmadım ben.
Aç öyle bi konu biz okuyalım. Basit mantık bir giriş sayfası. Local Hostta çalışıyor.
$username=Htmlspecialchars($_Post['username"]);
Veriyi böyle alacaksin. Baglanti tipini pdo yapıp
sql satirinda username=:username diyeceksin asagida ise
Bind_param( :username , $username pdo param str)
Ile sql kapatacaksın.
Aciklar ustune konu acmakla alakasi yok ögretici bisey yapiyorsaniz bunlari belirtmelisiniz veya belirtenlere dusmanca saldirmamalisiniz. Hacking formunda 10 senelik acigin paylasildigi kod gormek uzuyor dostum.
Neyse kg
 

tamam ağa

Uzman üye
7 Haz 2023
1,508
861
Bugların farkında olarak açmıştım aslında, kapatarak konun 2. serisini açacağım.
ayrı ayrıca konu açmak yerine tam bir proje yapsanız daha iyi olur.
bug'ları şu şekilde sayabilirim.
XSS,SQL INJECTION,privilege escalation.

bunlar ilk gözüme çarpanlar belki daha fazla vardır.
 
Ü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.