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

漏洞复现
我们在文章处进行评论。如下


代码审计
问题出在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黑客笔记):Typecho(17.10.30)版本XSS审计
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/152276.html