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黑客笔记):Typecho(17.10.30)版本XSS审计
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论