Testing a WordPress URL or webpage for vulnerabilities involves a structured methodology, leveraging both automated tools and manual techniques. Below are 100 different ways categorized into specific areas for comprehensive security testing:
1. General Information Gathering
- WHOIS Lookup: Gather information about the domain and registrar.
- Subdomain Enumeration: Find subdomains using tools like
sublist3r
oramass
. - CMS Detection: Confirm WordPress with tools like
whatweb
orwpscan
. - Identify Plugins: Use
wpscan
or manual checks to enumerate plugins. - Theme Identification: Detect the active theme through source code inspection.
- WordPress Version Check: Determine the WordPress version using
wpscan
or headers. - Directory Enumeration: Probe directories using tools like
dirb
orgobuster
. - Content Discovery: Look for sensitive files like
.htaccess
,wp-config.php
, or backup files. - Identify Hosting Provider: Use tools like
builtwith
to find hosting details. - Google Dorking: Search for indexed sensitive files (e.g.,
"inurl:wp-content"
).
2. WordPress-Specific Vulnerabilities
- Admin Panel Exposure: Check if
/wp-admin
or/wp-login.php
is accessible. - Default Credentials: Test for
admin:admin
or other weak/default passwords. - XML-RPC Exploitation: Test for XML-RPC brute force or pingback DDoS vulnerabilities.
- Unprotected REST API: Test endpoints for unauthenticated data access.
- wp-config Backup: Look for exposed
wp-config.php
backups (wp-config.php.bak
). - Version-Specific Exploits: Check CVEs for the detected WordPress version.
- Debug Mode: Verify if
WP_DEBUG
is enabled and exposing sensitive data. - Directory Indexing: Check
/wp-content/uploads
or other folders for open indexing. - TimThumb Vulnerability: Exploit outdated
timthumb.php
scripts. - Exposed WP-Cron: Look for exposed WP-Cron URLs.
3. User and Authentication Issues
- Username Enumeration: Use
?author=1
or REST API to enumerate usernames. - Weak Password Policy: Test for common passwords using brute-force tools.
- Session Hijacking: Analyze cookies for secure/HTTP-only flags.
- Account Lockout: Check if there’s a lockout mechanism for failed login attempts.
- Unnecessary Roles: Check for users with excessive privileges.
- Login URL Exposure: Check for
/login
or/admin
redirects. - Forgot Password Abuse: Test the password reset mechanism for token reuse.
4. Plugin Vulnerabilities
- Vulnerable Plugins: Scan plugin versions against public CVEs (using
wpscan
). - Plugin Enumeration: Identify plugins through source code or tools.
- File Upload Abuse: Exploit upload forms in plugins like Contact Form 7.
- Shortcode Abuse: Test plugins allowing user input in shortcodes.
- Reflected XSS: Look for unescaped plugin parameters in URLs.
- Stored XSS: Test plugin forms for persistent XSS.
- SQL Injection: Test plugin parameters for SQLi (e.g.,
?id=1 OR 1=1
). - CSRF in Plugins: Test for lack of CSRF tokens in plugin functionalities.
- Unauthenticated Admin Access: Check if plugins allow access without authentication.
- Known Exploits: Exploit known plugin vulnerabilities using metasploit or exploit-db.
5. Theme Vulnerabilities
- Outdated Themes: Verify theme version and check for CVEs.
- Custom Theme Injection: Test custom themes for poorly sanitized inputs.
- Insecure Functions: Look for insecure
eval()
orexec()
calls in themes. - Hardcoded Credentials: Search theme files for sensitive information.
- Exploitable Template Files: Test files like
404.php
for code injection. - File Inclusion: Test for Local/Remote File Inclusion (LFI/RFI) in theme files.
- Script Injection: Check for inline JavaScript or CSS injection vulnerabilities.
6. Web Server and Hosting Issues
- HTTP Headers: Test for missing security headers (
X-Frame-Options
,CSP
, etc.). - SSL Configuration: Use
ssllabs.com
to test HTTPS implementation. - Open Ports: Perform a port scan using
nmap
. - Server Version Disclosure: Check server headers for version disclosure.
- Misconfigured Permissions: Verify file permissions (
chmod 777
vulnerabilities). - PHP Version: Check for outdated or vulnerable PHP versions.
- Backup File Exposure: Search for
.zip
,.tar.gz
, or.sql
files.
7. Injection Attacks
- SQL Injection: Test form inputs and URL parameters.
- Command Injection: Test for
; ls
or&& whoami
injection opportunities. - XPath Injection: Exploit XML inputs for unauthorized queries.
- LDAP Injection: Test for injection vulnerabilities in LDAP queries.
8. Cross-Site Scripting (XSS)
- Reflected XSS: Use payloads like
<script>alert(1)</script>
in URL parameters. - Stored XSS: Test inputs stored in the database (e.g., comments, posts).
- DOM XSS: Analyze JavaScript for insecure DOM-based input handling.
- POST XSS: Test POST forms for input sanitization.
9. File Upload Vulnerabilities
- PHP Shell Upload: Attempt to upload
.php
shells. - Double Extensions: Test uploads like
shell.php.jpg
. - Content-Type Bypass: Use tools to manipulate headers for file uploads.
- Directory Traversal: Exploit upload paths with
../
sequences. - Malware Injection: Test file upload paths for malicious file execution.
10. Cross-Site Request Forgery (CSRF)
- CSRF Tokens: Verify presence of anti-CSRF tokens in forms.
- CSRF in Forms: Test actions like password changes or settings updates.
11. Broken Access Control
- Admin Panel Access: Check if non-admin users can access
/wp-admin
. - Privileged Functionality: Test if low-privilege users can perform admin actions.
- Direct File Access: Check if unauthorized users can access
/wp-config.php
.
12. Security Misconfigurations
- Indexing Sensitive Files: Test for indexed backups or configuration files.
- Error Messages: Verify if error messages disclose sensitive information.
- Debug Logs: Look for exposed logs (
debug.log
). - Default File Locations: Check for
/readme.html
or/license.txt
.
13. Cryptographic Issues
- Weak Password Storage: Analyze hash algorithms (e.g., MD5, SHA1).
- SSL/TLS Vulnerabilities: Test for weak ciphers or protocols (e.g., SSLv3).
- Insecure Cookie Handling: Check for missing
secure
andhttpOnly
flags.
14. Denial of Service (DoS)
- Login Brute Force: Test login page with repeated password attempts.
- XML-RPC DoS: Abuse XML-RPC
pingback
for amplification attacks. - REST API Abuse: Exploit resource-intensive API calls.
- Search Form Abuse: Flood search forms with large payloads.
15. Automated Tools for WordPress Security
- WPScan: Enumerate and test for common vulnerabilities.
- Nikto: Scan for web server issues.
- Burp Suite: Intercept and analyze HTTP requests.
- Nessus: Perform vulnerability scans on the site.
- Acunetix: Comprehensive web application scanner.
- OWASP ZAP: Intercept and scan for vulnerabilities.
16. Post-Exploitation Checks
- Backdoor Checks: Scan uploaded files for malicious backdoors.
- Data Extraction: Attempt to exfiltrate sensitive information.
- Privilege Escalation: Exploit vulnerabilities to escalate privileges.
- Code Execution: Execute arbitrary commands on the server.
17. Advanced Techniques
- Timing Attacks: Exploit delays in responses for information leaks.
- Blind SQL Injection: Infer results using conditional responses.
- Content Injection: Insert malicious content into poorly sanitized inputs.
- Cache Poisoning: Manipulate cached responses for exploitation.
18. Social Engineering
- Phishing for Admin Credentials: Simulate phishing attacks.
- Weak CAPTCHA: Bypass CAPTCHA if implemented poorly.
19. Log and Monitoring
- Audit Logs: Analyze logs for sensitive data exposure.
- Log Injection: Insert malicious entries into logs.
20. Third-Party Services
- CDN Vulnerabilities: Test for issues in Cloudflare or similar setups.
- External API Abuse: Test APIs integrated into WordPress.