关于WordPress的简单分析

WordPress分析

wordpress系统本身代码,很少出现漏洞,主要是第三方的插件出现太多太多的漏洞

部分源码解读

1、 入口文件index.php

前端入口,基本没有内容。

1)定义WP_USE_THEMES常量,当该常量定义为false时,站点会显示为空白;为true时则正常显示。
2)加载wp-blog-header.php文件。

2、 接下来查看/wp-blog-header.php文件

加载wp环境和模板

1)设置$wp_did_header变量,相当于一个flag,确保wp-blog-header.php文件只在第一次被加载时执行。
2)加载wp-load.php文件。
3)调用wp()函数。
4)加载wp-includes/template-loader.php文件

3、 查看/wp-load.php文件

启动引导(Bootstrap)文件,用于设置ABSPATH常量和加载wp-config.php文件。wp-config.php将会加载wp-settings.php文件,它将用于建立WP的环境。
如果找不到wp-config.php文件,则会提示错误信息,要求用户设置wp-config.php文件。
wp-load.php还会自动搜索WP的上级文件夹寻找wp-config.php文件,因此可以保护WP文件夹不被暴露。
1)设置ABSPATH常量为到WP文件夹的路径。
2)设置错误报告模式。
3)加载wp-config.php文件(a.直接加载、b.从上级文件夹加载、c.找不到则报错,使用wp_die()函数)。

4、 查看wp-config.php

WordPress基础配置文件。本文件包含以下配置选项: MySQL设置, 数据库表名前缀,密匙, WordPress语言设定以及ABSPATH。
1)设置数据库名、用户名、密码、数据库主机、数据库编码、数据库整理类型、数据库表前缀。
2)设置身份密匙,用于进行cookie加密。
3)设置WP语言。
4)设置WordPress目录的绝对路径ABSPATH。
5)包含wp-settings.php文件。

5、 查看wp-settings.php
用于设置和修复公共变量,包括WordPress过程和类库。

1)存储函数、类和核心内容的WordPress目录和位置
2)当前WordPress的版本信息、数据库版本、TinyMCE版本、所需PHP版本及MySQL扩展或数据库插件等。
3)包含许多类库文件,多站点特定文件。

WordPress 测试方法

1 扫描

使用工具:wpscan(Kali 自带)

[官网][https://wpscan.org]

针对所有 Wordpress 网站的测试,首先都应该使用 wpscan 进行扫描:

wpscan --url http://IP/

扫描结果中中重点关注 WordPress 的版本?使用了什么 Plugin ?Plugin 版本是什么?

然后使用 searchsloit 来查询漏洞。

常用的命令

#更新漏洞库
wpscan --update 
#扫描指定用户
wpscan --url http://IP/ --enumerate u
#爆破
wpscan --url http://IP/ -e u --wordlist dic_path
#扫描插件漏洞
wpscan --url http://IP/ -e u --enumerate vp
#扫描主题
wpscan --url http://IP/ -e u --enumerate t
#列出所有信息
wpscan --url http://IP/ -e at -e ap -e u

2 暴力破解

使用工具:Wfuzz(Kali 自带)

很多 WordPress 的漏洞都需要登录到后台才能利用,这里使用 Wfzuu 工具进行爆破:

# 按照实际情况调整-hh 参数
wfuzz -w /usr/share/wordlists/fast* -d "log=admin&pwd=FUZZ&wp-submit=Log+In&redirect_to=http%3A%2F%2F10.1.1.1%2Fwp-admin%2F&testcookie=1"  -c --hh=3358 http://10.1.1.1/wp-login.php

参数解释:

  • -w 指定字典
  • -d POST 的数据
  • -c 带颜色输出
  • --hh 过滤掉响应包长度为3358字节的结果
posted @ 2020-10-30 22:49  |Thresh|  阅读(434)  评论(0编辑  收藏  举报