WPScan — WordPress Security Scanner

Описание

The WPScan WordPress security plugin is unique in that it uses its own manually curated WPScan WordPress Vulnerability Database. The vulnerability database has been around since 2014 and is updated on a daily basis by dedicated WordPress security specialists and the community at large. The database includes more than 21,000 known security vulnerabilities. The plugin uses this database to scan for WordPress vulnerabilities, plugin vulnerabilities and theme vulnerabilities, and has the options to schedule automated daily scans and to send email notifications.

WPScan has a Free API plan that should be suitable for most WordPress websites, however, also has paid plans for users who may need more API calls. To use the WPScan WordPress Security Plugin you will need to use a free API token by registering here.

The Free plan allows 25 API requests per day. View the different available API plans.

How many API requests do you need?

  • Our WordPress scanner makes one API request for the WordPress version, one request per installed plugin and one request per installed theme.
  • On average, a WordPress website has 22 installed plugins.
  • The Free plan should cover around 50% of all WordPress websites.

Security Checks

The WPScan WordPress Security Plugin will also check for other security issues, which do not require an API token, such as:

  • Check for debug.log files
  • Check for wp-config.php backup files
  • Check if XML-RPC is enabled
  • Check for code repository files
  • Check if default secret keys are used
  • Check for exported database files
  • Weak passwords
  • HTTPS enabled

Что делает этот плагин?

  • Scans for known WordPress vulnerabilities, plugin vulnerabilities and theme vulnerabilities;
  • Does additional security checks;
  • Показывает значок в верхней панели администратора с общим числом найденных уязвимостей;
  • Присылает уведомления на почту, когда найдены новые уязвимости.

Дальнейшее чтение

Скриншоты

  • Список уязвимостей и значок в верхней панели администратора.
  • Настройки уведомлений.
  • Страница "Здоровье сайта".

Установка

  1. Загрузите содержимое архива wpscan.zip в директорию /wp-content/plugins/
  2. Активируйте плагин, используя меню ‘Плагины’ в WordPress
  3. Register for a free API token
  4. Save the API token to the WPScan settings page or within the wp-config.php file

Часто задаваемые вопросы

How many API calls are made?

There is one API call made for the WordPress version, one call for each installed plugin and one for each theme. By default there is one scan per day. The number of daily scans can be configured when configuring notifications.

How can I configure the API token in the wp-config.php file?

To configure your API token in the wp-config.php file, use the following PHP code: define( 'WPSCAN_API_TOKEN', '$your_api_token' );

How do I disable vulnerability scanning altogether?

You can set the following PHP constant in the wp-config.php file to disable scanning; define( 'WPSCAN_DISABLE_SCANNING_INTERVAL', true );.

Why is the «Summary» section and the «Run All» button not showing?

The cron job did not run, which can be due to:
— The DISABLE_WP_CRON constant is set to true in the wp-config.php file, but no system cron has been set (crontab -e).
— A plugin’s caching pages is enabled (see https://wordpress.stackexchange.com/questions/93570/wp-cron-doesnt-execute-when-time-elapses?answertab=active#tab-top).
— The blog is unable to make a loopback request, see the Tools->Site Health for details.

If the issue can not be solved with the above, putting define('ALTERNATE_WP_CRON', true); in the wp-config.php could help, however, will reduce the SEO of the blog.

Отзывы

24.11.2020
I was a little confused about an XML-RPC issue on my site and Ryan was prompt in getting back to me and explaining the issue. Even after he could have considered the issue resolved, he got back to me to point out a change they made in their code to explain it better.
14.10.2020
A tiny plugin that timely reports vulnerable themes and plugins installed on your website. Effective and very easy to use - must have!
Посмотреть все 20 отзывов

Участники и разработчики

«WPScan — WordPress Security Scanner» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«WPScan — WordPress Security Scanner» переведён на 8 языков. Благодарим переводчиков за их работу.

Перевести «WPScan — WordPress Security Scanner» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.15.5

  • Update «Tested up to»
  • Some minor text changes
  • Fix API conflict

1.15.4

  • Fix images not loading on some hosted websites
  • Update remediation links

1.15.3

  • Fix fatal error in security checks

1.15.2

  • Improve HTML and PDF report output
  • Disable security checks setting
  • Some refactoring

1.15.1

  • Improved email alert text
  • Improved PDF report download layout

1.15

  • Fix memory_limit when using list_files()
  • Use Action Scheduler
  • Add security check remediation links

1.14.4

  • Use new free API defaults
  • Remove «Not found in database» message

1.14.3

  • Don’t use HTTP_HOST in db exports check

1.14.2

  • Revert DISABLE_WP_CRON check
  • Fix HTTPS check

1.14.1

  • Use the wp_check_password() function to check for weak passwords

1.14

  • Uses the status endpoint to get account data
  • Fixes the account status not being updated unless a scan is performed when the API token is updated/set
  • Adds vulnerability found hook
  • New security check: Check for weak user passwords
  • New security check: HTTPS
  • Clear plan info if API Token set to null
  • Fixes automated scanning when plugin deactivated and reactivated
  • Fixes cron job not being created when using the WPSCAN_API_TOKEN constant
  • Change default scanning time to the current time
  • Many other small improvements

1.13.2

  • Fix XML-RPC check false positive

1.13.1

  • Fix potential WP_Error issue in XML-RPC check
  • Add version to client side CSS and JS
  • Work towards PHP WordPress coding standards

1.13

  • Improve the XML-RPC security check
  • No longer run a scan when adding an API token
  • Other small improvements & bug fixes

1.12.3

  • Improve WPScan API error handling
  • Add status URL on WPScan API errors
  • Delete doing_cron transient on plugin activation
  • Replace the xmlrpc_encode_request() PHP function
  • Blur API token setting input box

1.12.2

  • Fix bug: case statement should ‘break’

1.12.1

  • Fix bug: Handle 404 API errors

1.12

  • Code Refactoring
  • Adds Security Check System
  • Check for debug.log files
  • Check for wp-config.php backups
  • Check if XMLRPC is enabled
  • Check if default keys are used in wp-config.php
  • Check for code repo files .svn and .git
  • Create a Vulnerabilities to Ignore meta-box
  • Fixes Theme closed incorrect message and position in report
  • Show message if API is not working
  • Timeout cron jobs
  • Fix 404 error in devtools

1.11

  • Change references of wpvulndb to wpscan.com

1.10

  • Add WPSCAN_DISABLE_SCANNING_INTERVAL constant to disable automated scanning
  • Add an option in the settings to ignore items
  • Add an option in the settings to set the scan time
  • Show a not found in database message
  • Другие мелкие исправления ошибок

1.9

  • Add scanning interval option to settings page
  • Другие небольшие улучшения

1.8

  • Show severity ratings for Enterprise users
  • Show Plugin Closed label
  • Add PDF report download
  • Add account status meta box
  • Add support for API token constant in wp-config.php file
  • Show vulnerabilities in Site Health
  • Update menu icon to monochrome

1.7

  • Updated text and messages to reduce confusion
  • Removed WPScan_JWT class as no longer required

1.6

  • Use the new slug helper method on all items on the page

1.5

  • Better slug detection before calling the API

1.4

  • Prevent multiple tasks to run simultaneously
  • Check Now Button disabled and Spinner icon displayed when a task is already running
  • Results page automatically reloaded when Task is finished (checked every 10s)

1.3

  • Use the /status API endpoint to determine if the Token is valid. As a result, a call is no longer consumed when setting/changing the API token.
  • Trim and remove potential leading ‘v’ in versions when comparing then with the fixed_in values.

1.2

  • Добавлена информация о платных лицензиях

1.1

  • Предупредить, если достигнут лимит API

1.0

  • Первый релиз.