tekniska anteckningar OfEhi Kioya
Tja inte exakt hacking. Men låt mig förklara…
webbhotell är en del av min verksamhet och som förväntat bygger de flesta kunder sina webbplatser med WordPress. Allt innehåll (filer och databaser) sitter på mina servrar och även om jag kanske inte har (eller vill) ett administratörskonto på sina WordPress-installationer, har jag root-åtkomst på både filsystemet och databasnivåerna.
kunder glömmer ofta sin WordPress-inloggningsinformation. När detta händer låses de ut från administratörsområdet på sina webbplatser och behöver hjälp med att komma in igen. Det finns också scenarier där serveradministratörer kan behöva behöva ”tvinga” sig in på en kunds webbplats även när klienten inte har begärt detta. Kanske på grund av juridiska skäl eller policyöverträdelser. Eller beroende på vilken typ av hanteringstjänst som tillhandahålls kan serveradministratörer behöva logga in för att utföra uppdateringar, rutinunderhåll etc.
Sammanfattningsvis kan scenarier där ”hacking” ett WordPress-lösenord vara nödvändigt inkludera:
- du har glömt användarnamnet och e-postadressen till din egen webbplats.
- du vet användarnamnet eller e-postadressen men har glömt lösenordet. Och av någon anledning har alternativet Out-of-the-box password reset misslyckats med att fungera – kanske för att e-postmeddelandena för återställning av lösenord inte kommer igenom. Eller kanske du inte längre har tillgång till den ursprungliga e-postadressen som används.
- din klient har förlorat inloggningsuppgifterna för en WordPress-webbplats som du är värd för för deras räkning.
- av juridiska skäl eller på grund av policyöverträdelser måste du tvinga dig in på en webbplats som finns på din Infrastruktur.
- din webbplats blev hackad och administratörskontot raderades (eller lösenordet ändrades).
i alla fall förklarar den här artikeln hur en serveradministratör antingen kan tvinga Återställ en användares WordPress-lösenord eller skapa en ny WordPress-administratörsanvändare med ett helt nytt lösenord. Jag kommer att visa hur detta kan göras antingen från backend MySQL-databasen eller med hjälp av funktionerna.php-fil via FTP. I båda fallen krävs inte ett WordPress-konto på webbplatsen i fråga.
de metoder vi kommer att utforska här är:
- ”Hacking” ett WordPress-lösenord i databasen (genom att tvinga en återställning av lösenord)
- skapa en ny WordPress-administratörsanvändare via databasen
- ”Hacking” (återställning) ett WordPress-lösenord med funktionerna.php-fil
- skapa en ny WordPress-administratörsanvändare med funktionerna.php-fil
medan ingen av ovanstående metoder är exakt lösenordshackning (eftersom vi inte använder brute force-tekniker eller något liknande), ”hackar” slutresultatet effektivt in i WordPress med samma administrativa rättigheter som tidigare förlorades.
ansvarsfriskrivning: processerna som beskrivs här är helt lagliga. Även om lösenordet hashing Bit använder det här verktyget jag byggt, använder verktyget den officiella WordPress-funktionen wp_hash_password () bakom kulisserna. Jag skrev den här artikeln med serveradministratörer och webbmästare i åtanke. Det är tänkt att vara rent informativt och pedagogiskt. Om någon använder instruktionerna här av skadliga skäl kan jag inte hållas ansvarig.
Låt oss börja…
Metod 1: ”Hacking” (återställning) ett WordPress-lösenord i databasen
starta ditt databasadministrationsverktyg. Detta kan vara phpMyAdmin, HeidiSQL, MySQL Workbench, etc. Vi kommer att göra en ändring på wp_users-tabellen.
OBS! tabellnamnet kan vara olika beroende på om installationen använder ett anpassat Tabellprefix. Den här artikeln förutsätter att wp_ är ditt Tabellprefix. Detta är standardvärdet. En snabb titt på dina WordPress-tabellnamn bör hjälpa dig att identifiera ditt Tabellprefix och motsvarande wp_users-tabell i ditt fall. Du kan också hitta tabellprefixet definierat uttryckligen i wp-config.php-fil (variabeln av intresse där är $table_prefix).
när du öppnar wp_users-tabellen för att visa data bör du snabbt kunna identifiera användarposten som behöver ändras. Fältet av intresse (som innehåller det hashade lösenordet) är fältet user_pass. Det här fältet kommer att ha ett värde som ser ut så här: $P$BE.lIb0ypAKBR2OZCREKMwSrPiWW9g1
starta WordPress lösenord Hash Generator. Ange det nya lösenordet du vill ha för den här användaren och klicka på knappen ”Hash this Phrase”. Kopiera den genererade strängen och ersätt det aktuella user_pass-värdet med det. Du bör kunna redigera värdet genom att bara dubbelklicka på det.
spara ändringarna och logga in på ditt WordPress-administratörsområde med ditt nya lösenord. Beroende på hur starkt ditt valda lösenord var och om din webbplats upprätthåller starka lösenord kan du bli ombedd att välja ett starkt lösenord direkt efter att du loggat in.
Metod 2: skapa en ny WordPress Admin användare Via databasen
skapa en ny admin användare liknar ovanstående process för att återställa en användares lösenord. Men det är lite mer komplicerat. Den här gången kommer vi att ändra både wp_users-tabellen och wp_usermeta-tabellen. Här är vad du behöver göra…
skapa en ny post i wp_users-tabellen. Ange dessa fält:
- user_login – användarnamnet du vill ha för att komma åt WordPress – administratörsområdet
- user_pass – hashkoden för ditt valda lösenord genererat med WordPress – Lösenordshashgeneratorn
- user_email-e-postmeddelandet du vill associera med det här nya kontot
- user_registered-det datum då användaren registrerades
alla andra fält kan förbli tomma för tillfället. De är inte Obligatoriska fält. Men du kan redigera dem senare från WordPress-instrumentpanelen om du vill. Spara den nya användarposten.
när den har sparats kommer WordPress automatiskt att ge användaren ett ID. Detta nummer sparas i ID-fältet. Notera detta nummer.
öppna nu wp_usermeta-tabellen. Vi kommer att skapa två nya poster i den här tabellen.
för båda nya posterna anger du fältet user_id till det automatiskt genererade ID ovan.
för den första posten ställer du in meta_key-fältet till wp_user_level och ställer in meta_value-fältet till 10.
för den andra posten ställer du in meta_key-fältet till wp_capabilities och ställer in meta_value-fältet Till A:1:{s:13: ”administratör”; s:1:”1″;}
notera: Värdena för wp_user_level och wp_capabilities som används ovan beror återigen på tabellprefixet som används i din installation. Så, om till exempel ditt Tabellprefix är wp_yourdomain_, bör värdena vara wp_yourdomain_user_level respektive wp_yourdomain_capabilities.
spara både poster och logga in på din WordPress-webbplats med det nya användarnamnet och lösenordet du just skapade. Beroende på hur starkt ditt valda lösenord var och om din webbplats upprätthåller starka lösenord kan du bli ombedd att välja ett starkt lösenord direkt efter att du loggat in.
när du har loggat in, redigera din användare från WordPress dashboard. Inget behov av att ändra någonting. Bläddra bara ner och tryck på Spara-knappen. WordPress kommer internt att lägga till lite extra information till den nya användaren du just skapade. Om du blir ombedd att tillhandahålla ytterligare information som krävs, ange dem bara (till exempel kan du bli ombedd att ange ett unikt smeknamn).
nu när du har ett nytt admin WordPress-konto kan du gå vidare och ta bort det gamla administratörskontot om du vill. Under raderingsprocessen tillåter WordPress dig att tillskriva allt innehåll som skapats av den gamla användaren till den nya användaren (eller till någon annan befintlig användare).
Metod 3: ”Hacka” Ett WordPress-Lösenord Med Funktionerna.php-fil
öppna funktionerna.php-fil av ditt aktiva tema i en textredigerare. Den här filen finns vanligtvis här: public_html/wp_content/themes/your-active-theme / functions.php
Lägg till denna kodrad i filen. Du kan bara lägga till det i slutet av det befintliga innehållet.
wp_set_password('yourdesiredpassword', 1);
det är bäst att välja ett starkt lösenord. På så sätt, om din webbplats använder starka lösenord, behöver du inte ändra det igen efter att du loggat in.
i ovanstående fall återställs lösenordet för användaren med ett ID på 1.
spara funktionerna.php-fil och besök din webbplats frontend. Användarens lösenord återställs.
viktigt: innan du ens bekräftar att lösenordsåterställningen fungerade, ta först bort ovanstående kodrad från dina funktioner.php-fil. Om du inte gör det återställs lösenordet vid varje sidladdning och du kanske aldrig lyckas logga in med det nya lösenordet du har ställt in.
när du har raderat återställningskoden för lösenord kan du nu logga in med det nya lösenordet.
du kan läsa mer om funktionen wp_set_password() här.
Observera att till skillnad från återställningsmetoden för databaslösenord ovan, för att använda denna FTP-återställningsteknik för lösenord, måste du känna till användarens ID i förväg. Men eftersom du kanske inte redan vet detta (utan att gissa) tror jag att återställningsmetoden för databaslösenord (beskrivs i Metod 1 ovan) är kraftfullare.
Metod 4: Skapa En Ny WordPress-Administratörsanvändare Med Funktionerna.php-fil
öppna funktionerna.php-fil för ditt aktiva tema.
Lägg till den här koden i filen.
function ehi_kioya_create_admin_account(){$username = 'yourdesiredusername';$password = 'yourdesiredpassword'; // Choose a strong password. That way, if your website enforces strong passwords, you won't be required to change it again after signing in.$email = '[email protected]';// Only create user if chosen username and chosen email are not already in useif (!email_exists($email) && !username_exists($username)){$userid = wp_create_user($username, $password, $email);wp_update_user(array('ID' => $userid, 'nickname' => $email));$newuser = new WP_User($userid);$newuser->set_role('administrator');}}add_action('init','ehi_kioya_create_admin_account');
glöm inte att ange ditt eget användarnamn, lösenord och e-postvärden. Om det redan finns en användare i WordPress med ditt valda användarnamn eller e-post skapas inte ett nytt konto. Så se till att använda unika värden för användarnamn och e-post.
spara funktionerna.php-fil och sedan helt enkelt besöka din webbplats frontend. Koden kommer att köras och den nya administratörsanvändaren skapas. Du kan sedan logga in med den nya användarens referenser.
återigen, glöm inte att ta bort koden från funktionerna.php-fil.
slutsats
Förhoppningsvis kommer en av de metoder som diskuterats ovan att hjälpa dig att återfå administrativ åtkomst till din WordPress-webbplats. Genom att ha databas-och / eller filsystemåtkomst bevisar du att du har rättigheter till servern och därför bör ha rättigheter till de webbplatser som finns på den. Om du försöker hacka en WordPress-webbplats för vilken du varken har Databas eller filsystemåtkomst, försöker du hacka andras webbplatser och är helt klart inte bra. Att få obehörig åtkomst till andras webbplatser som det är ett brott och inte något jag undervisar eller uppmuntrar.
om du hittade de metoder som diskuteras här till hjälp, eller har en fråga eller bidrag, Vänligen dela dina tankar med hjälp av kommentarerna nedan.