Typecho(17.10.30)版本XSS审计

admin 2023年3月23日11:51:31评论74 views字数 2009阅读6分41秒阅读模式

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审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月23日11:51:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Typecho(17.10.30)版本XSS审计http://cn-sec.com/archives/1623169.html

发表评论

匿名网友 填写信息