📁
SKYSHELL MANAGER
PHP v8.0.30
Create
Create
Path:
root
/
home
/
aljabrcp
/
public_html
/
Name
Size
Perm
Actions
📁
.render-cache
-
0755
🗑️
🏷️
🔒
📁
.tmb
-
0777
🗑️
🏷️
🔒
📁
.well-known
-
0755
🗑️
🏷️
🔒
📁
e4b5c3
-
0755
🗑️
🏷️
🔒
📁
well-known
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📄
.072335799904244.php
0.73 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.303133550574645.php
0.73 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.771565434277360.php
0.72 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.ftpquota
0.02 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.htaccess
0.06 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.htaccess_old
2.38 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.maintenance
0.03 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
.render-orig.php
0.4 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
admin.php
1073.33 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ajyycson.php
18.36 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
bjspsdnw.php
18.36 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
btxouxnz.php
18.36 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
byobdpit.php
161.75 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
dot.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
dtypulkn.php
18.48 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
1.77 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
fdkvhqgp.php
18.36 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
features.php
9.84 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
fiouvmwk.php
18.51 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
gkliwelb.php
19.47 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
hhxpypnm.php
18.48 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ichqcdtz.php
18.48 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
iggrnuqs.php
1073.33 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ijigqafs.php
215.7 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ilkifkhe.php
18.48 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php
0.08 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
japeqpqk.php
18.55 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
kxkjgars.php
14.76 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
legcmbtx.php
161.75 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
license.txt
19.44 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
lufix.php
53.27 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
mdlyonrh.php
161.75 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
memkgrwi.php
18.55 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
min.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
mlqeheok.php
35.6 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
mmkegijm.php
18.5 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
mqbfmtzr.php
14.76 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
nkuxvifp.php
18.56 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ocngdtip.php
18.55 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ops.php
31 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
options.php
1.29 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.1 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
pjqgidra.php
19.54 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
qpggioxw.php
14.76 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
readme.html
7.23 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.35 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
rpudqgij.php
15.4 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
tvuydrna.php
18.36 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
uymbqzzs.php
215.7 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
vxbezeuh.php
15.4 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
vxeskmxs.php
19.54 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-activate.php
7.2 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-blog-header.php
0.34 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-comments-post.php
2.27 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config-sample.php
3.26 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php
3.31 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.bak
3.31 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.before-debug
3.31 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.before-debug.2026-06-26-151429
3.31 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.before-debug.2026-06-26-151542
3.26 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.broken.2026-06-26-152109
3.27 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.broken.2026-06-26-152153
3.27 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php.broken.2026-06-26-152623
3.27 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-cron.php
5.49 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-links-opml.php
2.43 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-load.php
3.84 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-mail.php
8.52 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-server.php
162 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-settings.php
31.88 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-signup.php
33.81 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-trackback.php
5.09 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
wpxml.php
12.37 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
xmlrpc.php
3.13 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
xyn.php
5.65 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
ydrqjvyq.php
18.51 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
📄
zwmxmsbj.php
215.7 KB
0777
🗑️
🏷️
⬇️
✏️
🔒
Edit: checkds.py
############################################################################ # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. ############################################################################ import argparse import os import sys from subprocess import Popen, PIPE from isc.utils import prefix,version prog = 'dnssec-checkds' ############################################################################ # SECRR class: # Class for DS/DLV resource record ############################################################################ class SECRR: hashalgs = {1: 'SHA-1', 2: 'SHA-256', 3: 'GOST', 4: 'SHA-384'} rrname = '' rrclass = 'IN' keyid = None keyalg = None hashalg = None digest = '' ttl = 0 def __init__(self, rrtext, dlvname = None): if not rrtext: raise Exception # 'str' does not have decode method in python3 if type(rrtext) is not str: fields = rrtext.decode('ascii').split() else: fields = rrtext.split() if len(fields) < 7: raise Exception if dlvname: self.rrtype = "DLV" self.dlvname = dlvname.lower() parent = fields[0].lower().strip('.').split('.') parent.reverse() dlv = dlvname.split('.') dlv.reverse() while len(dlv) != 0 and len(parent) != 0 and parent[0] == dlv[0]: parent = parent[1:] dlv = dlv[1:] if dlv: raise Exception parent.reverse() self.parent = '.'.join(parent) self.rrname = self.parent + '.' + self.dlvname + '.' else: self.rrtype = "DS" self.rrname = fields[0].lower() fields = fields[1:] if fields[0].upper() in ['IN', 'CH', 'HS']: self.rrclass = fields[0].upper() fields = fields[1:] else: self.ttl = int(fields[0]) self.rrclass = fields[1].upper() fields = fields[2:] if fields[0].upper() != self.rrtype: raise Exception('%s does not match %s' % (fields[0].upper(), self.rrtype)) self.keyid, self.keyalg, self.hashalg = map(int, fields[1:4]) self.digest = ''.join(fields[4:]).upper() def __repr__(self): return '%s %s %s %d %d %d %s' % \ (self.rrname, self.rrclass, self.rrtype, self.keyid, self.keyalg, self.hashalg, self.digest) def __eq__(self, other): return self.__repr__() == other.__repr__() ############################################################################ # check: # Fetch DS/DLV RRset for the given zone from the DNS; fetch DNSKEY # RRset from the masterfile if specified, or from DNS if not. # Generate a set of expected DS/DLV records from the DNSKEY RRset, # and report on congruency. ############################################################################ def check(zone, args, masterfile=None, lookaside=None): rrlist = [] cmd = [args.dig, "+noall", "+answer", "-t", "dlv" if lookaside else "ds", "-q", zone + "." + lookaside if lookaside else zone] fp, _ = Popen(cmd, stdout=PIPE).communicate() for line in fp.splitlines(): if type(line) is not str: line = line.decode('ascii') rrlist.append(SECRR(line, lookaside)) rrlist = sorted(rrlist, key=lambda rr: (rr.keyid, rr.keyalg, rr.hashalg)) klist = [] if masterfile: cmd = [args.dsfromkey, "-f", masterfile] if lookaside: cmd += ["-l", lookaside] cmd.append(zone) fp, _ = Popen(cmd, stdout=PIPE).communicate() else: intods, _ = Popen([args.dig, "+noall", "+answer", "-t", "dnskey", "-q", zone], stdout=PIPE).communicate() cmd = [args.dsfromkey, "-f", "-"] if lookaside: cmd += ["-l", lookaside] cmd.append(zone) fp, _ = Popen(cmd, stdin=PIPE, stdout=PIPE).communicate(intods) for line in fp.splitlines(): if type(line) is not str: line = line.decode('ascii') klist.append(SECRR(line, lookaside)) if len(klist) < 1: print("No DNSKEY records found in zone apex") return False found = False for rr in klist: if rr in rrlist: print("%s for KSK %s/%03d/%05d (%s) found in parent" % (rr.rrtype, rr.rrname.strip('.'), rr.keyalg, rr.keyid, SECRR.hashalgs[rr.hashalg])) found = True else: print("%s for KSK %s/%03d/%05d (%s) missing from parent" % (rr.rrtype, rr.rrname.strip('.'), rr.keyalg, rr.keyid, SECRR.hashalgs[rr.hashalg])) if not found: print("No %s records were found for any DNSKEY" % ("DLV" if lookaside else "DS")) return found ############################################################################ # parse_args: # Read command line arguments, set global 'args' structure ############################################################################ def parse_args(): parser = argparse.ArgumentParser(description=prog + ': checks DS coverage') bindir = 'bin' sbindir = 'bin' if os.name == 'nt' else 'sbin' parser.add_argument('zone', type=str, help='zone to check') parser.add_argument('-f', '--file', dest='masterfile', type=str, help='zone master file') parser.add_argument('-l', '--lookaside', dest='lookaside', type=str, help='DLV lookaside zone') parser.add_argument('-d', '--dig', dest='dig', default=os.path.join(prefix(bindir), 'dig'), type=str, help='path to \'dig\'') parser.add_argument('-D', '--dsfromkey', dest='dsfromkey', default=os.path.join(prefix(sbindir), 'dnssec-dsfromkey'), type=str, help='path to \'dnssec-dsfromkey\'') parser.add_argument('-v', '--version', action='version', version=version) args = parser.parse_args() args.zone = args.zone.strip('.') if args.lookaside: args.lookaside = args.lookaside.strip('.') return args ############################################################################ # Main ############################################################################ def main(): args = parse_args() found = check(args.zone, args, args.masterfile, args.lookaside) exit(0 if found else 1)
Save