简介
WordPress是全球流行的博客网站,全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。
Wordpress
作为三大建站模板之一,在全世界范围内有大量的用户,这也导致白帽子都会去跟踪 WordPress
的安全漏洞,Wordpress
自诞生起也出现了很多漏洞`
Wordpress还可以使用插件、主题。于是
Wordpress`本身很难挖掘什么安全问题的时候,安全研究者开始研究其插件、主题的漏洞。
通过插件,主题的漏洞去渗透Wordpress
站点,于是WPScan
应运而生,收集 Wordpress
的各种漏洞,形成一个Wordpress
专用扫描器
WPScan
是一个扫描 WordPress
漏洞的黑盒子扫描器,它可以为所有 Web
开发人员扫描 WordPress
漏洞并在他们开发前找到并解决问题。我们还使用了 Nikto
,它是一款非常棒的Web
服务器评估工具,我们认为这个工具应该成为所有针对 WordPress
网站进行的渗透测试的一部分
WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞。
最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。
值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能
该扫描器可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。
同时还可以实现对未加防护的Wordpress
站点暴力破解用户名密码。
WPScan是一个黑盒漏洞扫描程序。WPScan使用Ruby编程语言编写,可帮助检测安全配置,主题,插件和用户权限等问题。在Kali,Pentoo和Samurai WTF WPScan已预先安装。
此工具是针对Wordpress的专用扫描器。https://wordpress.org/plugins/ose-wp-scan/
github项目地址: https://github.com/wpscanteam/wpscan
帮助文档
代码语言:javascript复制wpscan -h
Usage: wpscan [options]
--url URL The URL of the blog to scan
Allowed Protocols: http, https
Default Protocol if none provided: http
This option is mandatory unless update or help or hh or version is/are supplied
-h, --help Display the simple help and exit
--hh Display the full help and exit
--version Display the version and exit
-v, --verbose Verbose mode
--[no-]banner Whether or not to display the banner
Default: true
-o, --output FILE Output to FILE
-f, --format FORMAT Output results in the format supplied
Available choices: json, cli-no-colour, cli-no-color, cli
--detection-mode MODE Default: mixed
Available choices: mixed, passive, aggressive
--user-agent, --ua VALUE
--random-user-agent, --rua Use a random user-agent for each scan
--http-auth login:password
-t, --max-threads VALUE The max threads to use
Default: 5
--throttle MilliSeconds Milliseconds to wait before doing another web request. If used, the max threads will be set to 1.
--request-timeout SECONDS The request timeout in seconds
Default: 60
--connect-timeout SECONDS The connection timeout in seconds
Default: 30
--disable-tls-checks Disables SSL/TLS certificate verification
--proxy protocol://IP:port Supported protocols depend on the cURL installed
--proxy-auth login:password
--cookie-string COOKIE Cookie string to use in requests, format: cookie1=value1[; cookie2=value2]
--cookie-jar FILE-PATH File to read and write cookies
Default: /tmp/wpscan/cookie_jar.txt
--force Do not check if the target is running WordPress
--[no-]update Whether or not to update the Database
--wp-content-dir DIR
--wp-plugins-dir DIR
-e, --enumerate [OPTS] Enumeration Process
Available Choices:
vp Vulnerable plugins
ap All plugins
p Plugins
vt Vulnerable themes
at All themes
t Themes
tt Timthumbs
cb Config backups
dbe Db exports
u User IDs range. e.g: u1-5
Range separator to use: '-'
Value if no argument supplied: 1-10
m Media IDs range. e.g m1-15
Note: Permalink setting must be set to "Plain" for those to be detected
Range separator to use: '-'
Value if no argument supplied: 1-100
Separator to use between the values: ','
Default: All Plugins, Config Backups
Value if no argument supplied: vp,vt,tt,cb,dbe,u,m
Incompatible choices (only one of each group/s can be used):
- vp, ap, p
- vt, at, t
--exclude-content-based REGEXP_OR_STRING Exclude all responses matching the Regexp (case insensitive) during parts of the enumeration.
Both the headers and body are checked. Regexp delimiters are not required.
--plugins-detection MODE Use the supplied mode to enumerate Plugins, instead of the global (--detection-mode) mode.
Default: passive
Available choices: mixed, passive, aggressive
--plugins-version-detection MODE Use the supplied mode to check plugins versions instead of the --detection-mode or --plugins-detection modes.
Default: mixed
Available choices: mixed, passive, aggressive
-P, --passwords FILE-PATH List of passwords to use during the password attack.
If no --username/s option supplied, user enumeration will be run.
-U, --usernames LIST List of usernames to use during the password attack.
Examples: 'a1', 'a1,a2,a3', '/tmp/a.txt'
--multicall-max-passwords MAX_PWD Maximum number of passwords to send by request with XMLRPC multicall
Default: 500
--password-attack ATTACK Force the supplied attack to be used rather than automatically determining one.
Available choices: wp-login, xmlrpc, xmlrpc-multicall
--stealthy Alias for --random-user-agent --detection-mode passive --plugins-version-detection passive
[!] To see full list of options use --hh.
WPScan更新
代码语言:javascript复制wpscan -update #为了更新最新发布的漏洞
扫描漏洞
没搭建WordPress环境,简单测试
代码语言:javascript复制wpscan --url http://www.baidu.com/
枚举WordPress用户
代码语言:javascript复制wpscan --url http://www.baidu.com/ --enumerate u
查找到的用户进行暴力破解
代码语言:javascript复制wpscan --url http://www.baidu.com/ --wordlist <字典的路径> --username <用户名> 使用多线程可加--max-threads
枚举插件
代码语言:javascript复制wpscan --url http://www.baidu.com/ --enumerate p
枚举插件漏洞
代码语言:javascript复制wpscan --url http://www.baidu.com/ --enumerate vp
代码语言:javascript复制#### --api-token api
去官方网站申请一个token,枚举出所有插件后,都可以通过这个api去访问官方站点,可以查看插件已知漏洞的信息
#### -e ap --plugins-detection aggressive --api-token api
这两个参数常常一起使用
去官方网站申请一个token,枚举出所有插件后,都可以通过这个api去访问官方站点,可以查看插件已知漏洞的信息