WordPress有一个xmlrpc.php文件,只需要后台的账号和密码,就可以发布文章了。所以暴力破解这个文件,也等于暴力破解了wp-admin.php
xmlrpc.php创建目录示例(python3执行)
#coding:utf-8
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc import WordPressTerm
from wordpress_xmlrpc.methods import taxonomies
wp = Client('https://ensky.tech/xmlrpc.php', 'username', 'password')
#新建分类
cat = WordPressTerm()
cat.taxonomy = 'category'
cat.name = '目录01'
cat.slug = '111111'
cat.id = wp.call(taxonomies.NewTerm(cat)) #新建分类返回的id
print(cat.id)
只需要将上面的username和password修改为自己的,即可在后台自动创建一个目录。
没有任何预防措施的时候,这段代码会正常返回,从而创建一个目录。
方法01:重定向xmlrpc.php到其余网站
宝塔后台——网站——设置
在Nginx管理中点击一下“重载配置”
(找到Nginx,点击设置,点击服务,点击重载配置)
这个时候,再使用xmlrpc.php创建目录的时候会报错如下:
raise ServerConnectionError(repr(e))
wordpress_xmlrpc.exceptions.ServerConnectionError: ProtocolError for ensky.tech/xmlrpc.php: 302 Found
因为我们设置了302重定向,所以请求xmlrpc的时候会返回302
方法02: 访问xmlrpc.php的时候返回403错误
设置:
location = /xmlrpc.php {
return 403;
}
在Nginx管理中点击一下“重载配置”
(找到Nginx,点击设置,点击服务,点击重载配置)
访问xmlrpc.php的时候,会报错如下:
raise ServerConnectionError(repr(e))
wordpress_xmlrpc.exceptions.ServerConnectionError: ProtocolError for ensky.tech/xmlrpc.php: 403 Forbidden
方法03:宝塔面板添加一个重定向
这个方法与上面伪静态中修改是一样的效果,这个是301重定向。
修改完以后,重载一下Nginx配置。
访问xmlrpc.php会报错如下:
raise ServerConnectionError(repr(e))
wordpress_xmlrpc.exceptions.ServerConnectionError: ProtocolError for ensky.tech/xmlrpc.php: 301 Moved Permanently
Leave a Reply