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
sublist3roramass. - CMS Detection: Confirm WordPress with tools like
whatweborwpscan. - Identify Plugins: Use
wpscanor manual checks to enumerate plugins. - Theme Identification: Detect the active theme through source code inspection.
- WordPress Version Check: Determine the WordPress version using
wpscanor headers. - Directory Enumeration: Probe directories using tools like
dirborgobuster. - Content Discovery: Look for sensitive files like
.htaccess,wp-config.php, or backup files. - Identify Hosting Provider: Use tools like
builtwithto 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-adminor/wp-login.phpis accessible. - Default Credentials: Test for
admin:adminor 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.phpbackups (wp-config.php.bak). - Version-Specific Exploits: Check CVEs for the detected WordPress version.
- Debug Mode: Verify if
WP_DEBUGis enabled and exposing sensitive data. - Directory Indexing: Check
/wp-content/uploadsor other folders for open indexing. - TimThumb Vulnerability: Exploit outdated
timthumb.phpscripts. - Exposed WP-Cron: Look for exposed WP-Cron URLs.
3. User and Authentication Issues
- Username Enumeration: Use
?author=1or 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
/loginor/adminredirects. - 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.phpfor 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.comto 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 777vulnerabilities). - PHP Version: Check for outdated or vulnerable PHP versions.
- Backup File Exposure: Search for
.zip,.tar.gz, or.sqlfiles.
7. Injection Attacks
- SQL Injection: Test form inputs and URL parameters.
- Command Injection: Test for
; lsor&& whoamiinjection 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
.phpshells. - 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.htmlor/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
secureandhttpOnlyflags.
14. Denial of Service (DoS)
- Login Brute Force: Test login page with repeated password attempts.
- XML-RPC DoS: Abuse XML-RPC
pingbackfor 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.