ITPub博客

首页 > 数据库 > 数据库开发技术 > Typecho(17.10.30)版本XSS审计

Typecho(17.10.30)版本XSS审计

原创 数据库开发技术 作者:逍遥子 时间:2023-03-23 08:00:00 0 删除 编辑

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

漏洞复现

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

登录后台,管理评论,点击编辑评论

然后点击提交,触发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等信息。

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笔记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-01-22

  • 博文量
    760
  • 访问量
    444383