WordPress 的管理员账户很容易就能获取,虽然说拿到了管理员账号,用处不是很大,但是不排除有些小白的密码是简单的数字密码。被攻击者爆破或者撞库成功,从而获得后台的管理员账户。
那么。攻击者是怎样拿到你的Wordpress 【管理员用户名】的,以及如何保护自己的管理员账户不被获取,这篇文章就来谈谈!!!
获取
1、先说说管理员账户如何泄露
攻击者或者攻击程序构造了:https://你的域名/wp-json/wp/v2/users/
的URL进行GET,这样99%会返回一串信息,里面包含了你的管理员账户。如下:
[{"id":1,"name":"daniao","url":"","description":"","link":"https:\/\/daniao.com\/author\/daniao","slug":"daniao","avatar_urls":{"24":"https:\/\/cn.gravatar.com\/avatar\/28f745cefb1ad2da1747cdcfccc0ddfa?s=24&d=mm&r=g","48":"https:\/\/cn.gravatar.com\/avatar\/28f745cefb1ad2da1747cdcfccc0ddfa?s=48&d=mm&r=g","96":"https:\/\/cn.gravatar.com\/avatar\/28f745cefb1ad2da1747cdcfccc0ddfa?s=96&d=mm&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/daniao.com\/wp-json\/wp\/v2\/users\/1"}],"collection":[{"href":"https:\/\/daniao.com\/wp-json\/wp\/v2\/users"}]}}]
以上信息可以发现:daniao就是管理员账号,真实已被隐藏,这里只为了演示。
2、确认是否使用了wordpress程序
其实上面的代码差不多已经确认你用的是wp程序了,这里还是提及一下:
攻击者或者攻击程序通过构造 https://你的域名//wp-includes/wlwmanifest.xml
的URL进行GET,来判断你是否使用了Wordpress程序。以及你的后台登录地址!输入后你会得到这样的反馈。所以修改后台登录地址很重要。
<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog"><options><clientType>WordPress</clientType><supportsKeywords>Yes</supportsKeywords><supportsGetTags>Yes</supportsGetTags></options><weblog><serviceName>WordPress</serviceName><imageUrl>images/wlw/wp-icon.png</imageUrl><watermarkImageUrl>images/wlw/wp-watermark.png</watermarkImageUrl><homepageLinkText>View site</homepageLinkText><adminLinkText>Dashboard</adminLinkText><adminUrl><![CDATA[ {blog-postapi-url}/../wp-admin/ ]]></adminUrl><postEditingUrl><![CDATA[ {blog-postapi-url}/../wp-admin/post.php?action=edit&post={post-id} ]]></postEditingUrl></weblog><buttons><button><id>0</id><text>Manage Comments</text><imageUrl>images/wlw/wp-comments.png</imageUrl><clickUrl><![CDATA[ {blog-postapi-url}/../wp-admin/edit-comments.php ]]></clickUrl></button></buttons></manifest>
3、确认你的用户id
攻击者还会通过构造 < https://你的域名?author=1 //?author=2 //?author=3> 来确认你的管理员id,以此来和上面的匹配。
保护
既然知道了,那么如何防护呢,继续往下看吧。
4、设置访问权限
1)禁止访问/wp-json/wp/v2/users/,如果是宝塔的话,可以在网站配置或者伪静态中设置如下代码。[reply]
location ~ ^/wp-json/wp/v2/users { deny all; }
2)禁止访问 /wp-includes/wlwmanifest.xml 和上面一样。代码如下:
location ~ ^/wp-includes/wlwmanifest.xml { deny all; }
3)如何放置截图
[/reply]
4)效果
这时候访问上述网页,就会被屏蔽结果。如图:
5、如果你是宝塔而且安装了专业版防火墙,还可以这样设置
在禁止访问的url中添加以下规则:
/wp-json/wp/v2/users/wp-includes/wlwmanifest.xml
此时访问,会出现防火墙拦截的提示。
6、最后
这其实不是个漏洞,所以不用紧张,其实稍微注意点安全的小伙伴早就修改了一个非常强壮的密码,隐藏了登录后台,禁用了xmlrpc.php。
1)如果要禁用xmlrpc.php,可以利用nginx,代码如下,放置还是和上面一样,放在伪静态设置中。
location ^~ /xmlrpc.php { return 403; }
是否禁用根据自己需要吧,如果出现升级错误,那么可以删除掉或者禁用掉代码即可。
2)其实有一些主题的管理员账号是显示在文章里面的,感觉这样真的是……,我们可以在wp后台设置一个昵称,这样文章会显示昵称在文章中。
3)各位小伙伴可以通过以上URL测试一下自己的Wordpress站点。看看是不是可以拿到敏感信息。如果特别敏感,就赶紧设置权限。
关于wp后台加固,可以看之前的文章:
评论前必须登录!
注册