当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-047023

漏洞标题:emlog官方插件导致xss可打管理员cookie

相关厂商:emlog.net

漏洞作者: phith0n

提交时间:2013-12-26 10:55

修复时间:2014-03-26 10:56

公开时间:2014-03-26 10:56

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-12-26: 细节已通知厂商并且等待厂商处理中
2013-12-26: 厂商已经确认,细节仅向厂商公开
2013-12-29: 细节向第三方安全合作伙伴开放
2014-02-19: 细节向核心白帽子及相关领域专家公开
2014-03-01: 细节向普通白帽子公开
2014-03-11: 细节向实习白帽子公开
2014-03-26: 细节向公众公开

简要描述:

不侧露。

详细说明:

emlog官方的“反垃圾评论”插件(感觉70%以上的人在用,因为内核代码里没有垃圾评论的处理,要处理垃圾评论只有用插件),未对某处xss进行过滤导致直接打管理员cookie。
代码如下:

<?php
while($res = $DB->fetch_array($query)):
$ishide = $res['hide']=='y'?'<font color="red">[待审]</font>':'';
$mail = !empty($res['mail']) ? "({$res['mail']})" : '';
$ip = !empty($res['ip']) ? "<br />IP:<a href=\"./plugin.php?plugin=anti_spam_comment&advance=true&ip={$res['ip']}\">{$res['ip']}</a>" : '';
$url = !empty($res['url']) ? "({$res['url']})" : '';
$res['content'] = str_replace('<br>',' ',$res['comment']);
$sub_content = subString($res['content'], 0, 50);
$res['title'] = subString($res['title'], 0, 42);
?>
<tr>
<td><input type="checkbox" value="<?php echo $res['cid']; ?>" name="com[]" class="ids" /></td>
<td><a href="./plugin.php?plugin=anti_spam_comment&advance=true&act=edit&cid=<?php echo $res['cid']; ?>" title="<?php echo $res['content']; ?>"><?php echo $sub_content; ?></a> <?php echo $ishide; ?>
<br /><?php echo smartDate($res['date']); ?>
<span style="display:none; margin-left:8px;">
<a href="javascript: asc_confirm(<?php echo $res['cid']; ?>, 'name');">屏蔽内容</a>
<a href="javascript: asc_confirm(<?php echo $res['cid']; ?>, 'url');">删除地址</a>
</span>
</td>
<td><a href="./plugin.php?plugin=anti_spam_comment&advance=true&poster=<?php echo urlencode($res['poster']);?>"><?php echo htmlspecialchars($res['poster']);?></a> <?php echo $url; ?> <?php echo $ip;?> <?php echo $mail;?></td>
<td><a href="./plugin.php?plugin=anti_spam_comment&advance=true&gid=<?php echo $res['gid']; ?>"><?php echo $res['title']; ?></a></td>
</tr>
<?php endwhile; ?>


数据库中取出评论内容$res['comment'],$sub_content取前50个字符就直接输出了。而且插入数据库时也未进行数据处理:

01.jpg


直接导致执行javascript:

04.jpg

漏洞证明:

可打cookie:

02.jpg


03.jpg


使用该cookie可以直接登录后台。

修复方案:

echo htmlspecialchars($sub_content);

版权声明:转载请注明来源 phith0n@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2013-12-26 13:20

厂商回复:

确认,的确可以获取到管理员cookie并登录后台

最新状态:

2013-12-27:已经修复