wpcheck
is a Node.js CLI tool that allows you to quickly scan WordPress sites looking for known vulnerabilities, security issues and misconfigurations. wpcheck
helps you secure and maintain your WordPress against hackers.
- Preinstalled rules for a quick start.
- Custom rules increase the functionality.
- Selectively ignore default and custom rules.
- Multiple WordPress scans from a bulk file.
- Detection for
- WordPress directories (
wp-content
, ...). - WordPress installed in a subdirectory.
- WordPress directories (
- Changeable User-Agent string.
- Silent mode displays warnings only.
- Fix issues: WordPress security best practices.
- Beginner friendly, easy to install.
- Lightweight, cross plattform framework.
- Work in progress, see todos and changelog.
npm install --global wpcheck
or
yarn global add wpcheck
wpcheck <url> [url] [options]
url
→ WordPress site URL (e.g. https://ma.tt
)
Multiple URLs can be separated by spaces.
Option | Shortcut | Description |
---|---|---|
--help |
-h |
Outputs supplied help text. |
--silent |
-s |
Disables success and info messages. Displays warnings only. |
--version |
-v |
Prints wpcheck version. |
--rules-dir |
-r |
Loads additional rules from a directory (see Custom rules). |
--bulk-file |
-b |
Reads additional WordPress site URLs from a text file (see Bulk scan). |
--ignore-rule |
-i |
Skips loading and execution of a specific rule (see Ignore rules). |
--user-agent |
-u |
Defines a custom User-Agent string. Default is wpcheck . |
wpcheck https://ma.tt
wpcheck https://ma.tt --silent
wpcheck https://ma.tt --rules-dir ~/path/to/custom/rules
wpcheck https://ma.tt --bulk-file ~/path/to/sources.txt
wpcheck https://ma.tt --user-agent "Netscape Gold"
wpcheck https://ma.tt --ignore-rule wp-login.js
wpcheck
has a few rules that are enabled by default. Follow also our WordPress security best practices to fix vulnerabilities detected by wpcheck
default rules.
/wp-config.php
/wp-admin/maint/repair.php
/.htaccess
/.htpasswd
/.ssh
/.npmrc
/.gitconfig
/config.json
/wp-config-sample.php
/wp-content/debug.log
- Basic access authentication
- HTTPS protocol usage
The power of wpcheck
is the flexibility: You can expand the tool functionality by building their own rules, scans and checks. The option --rules-dir
allows loading of user-defined rules from a custom directory.
- The directory path
- can be absolute or relative to the
wpcheck
folder
- can be absolute or relative to the
- The custom rules
- must be stored as
.js
files - can be a
Node.js
script - can be a
npm
package - must have an exported function named
fire
- must be stored as
exports.fire = ( data ) => {
// Play with data
// console.log( data )
}
wpcheck
will run (technically require
) every custom rule file. The file naming does not matter, short and unique names are welcome. Feel free to create your own rules, enjoy!
wpcheck
can skip certain default and custom rules. The CLI option --ignore-rule
takes a rule name, the rule name is the JavaScript file name of the rule without path. Multiple rule filtering is possible by a multiple use of the CLI option.
wpcheck ma.tt --ignore-rule wp-login.js
wpcheck ma.tt --ignore-rule wp-login.js --ignore-rule sensitive-files.js
wpcheck ma.tt --rules-dir ./example/rules --ignore-rule custom-rule.js
Multiple WordPress site URLs can be imported from a single file. This is a simple text file with one URL per line.
wpcheck -b ~/path/to/sources.txt