Typecho(17.10.30)版本XSS审计

Typecho是一款轻量级的博客程序。和wp一样受到了很多人的青睐。但比wp更加轻巧简单。

17.10.30版本中,存在一处XSS漏洞。本文让我们一起复现,并进行一起简单的代码审计吧!

安装typecho

这里,我们先下载17.10.30这个版本,安装很简单,这里就不在多说了。

wget https://github.com/typecho/typecho/releases/download/v1.1-17.10.30-release/1.1.17.10.30.-release.tar.gz
Typecho(17.10.30)版本XSS审计

漏洞复现

我们在文章处进行评论。如下

Typecho(17.10.30)版本XSS审计登录后台,管理评论,点击编辑评论

Typecho(17.10.30)版本XSS审计然后点击提交,触发xss

Typecho(17.10.30)版本XSS审计
Typecho(17.10.30)版本XSS审计

代码审计

问题出在manage-comments.php文件的329到365行

    $('form', edit).submit(function () {
        var t = $(this), tr = t.parents('tr'),
            oldTr = $('#' + tr.data('id')),
            comment = oldTr.data('comment');

        $('form', tr).each(function () {
            var items  = $(this).serializeArray();

            for (var i = 0; i < items.length; i ++) {
                var item = items[i];
                comment[item.name] = item.value;
            }
        });

        var html = '<strong class="comment-author">'
            + (comment.url ? '<a target="_blank" href="' + comment.url + '">'
            + comment.author + '</a>' : comment.author) + '</strong>'
            + ('comment' != comment.type ? '<small><?php _e('引用'); ?></small>' : '')
            + (comment.mail ? '<br /><span><a href="mailto:' + comment.mail + '">'
            + comment.mail + '</a></span>' : '')
            + (comment.ip ? '<br /><span>' + comment.ip + '</span>' : '');

        $('.comment-meta', oldTr).html(html)
            .effect('highlight');
        $('.comment-content', oldTr).html('<p>' + comment.text + '</p>');
        oldTr.data('comment', comment);

        $.post(t.attr('action'), comment, function (o) {
            $('.comment-content', oldTr).html(o.comment.content)
                .effect('highlight');
        }, 'json');
        
        oldTr.show();
        tr.remove();

        return false;
    });

当我们点击提交后,可以看到会提交用户的昵称 邮箱 IP等信息。

Typecho(17.10.30)版本XSS审计
var t = $('.primary')
tr = t.parents('tr')
oldTr = $('#' + tr.data('id'))
comment = oldTr.data('comment');
comment;
# 对内容没有过滤
$('.comment-content', oldTr).html('<p>' + comment.text + '</p>');

由于对输入的内容没有进行过滤,从而导致了xss。

更新

目前最新版本的typecho已更新中1.2如果是旧版本尽快更新。

更多精彩文章 欢迎关注我们


原文始发于微信公众号(kali黑客笔记):Typecho(17.10.30)版本XSS审计

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/152276.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!