漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-045687
漏洞标题:appcms评论xss绕过长度限制,可打后台
相关厂商:appcms.cc
漏洞作者: phith0n
提交时间:2013-12-12 10:43
修复时间:2014-03-09 10:44
公开时间:2014-03-09 10:44
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-12-12: 细节已通知厂商并且等待厂商处理中
2013-12-17: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-02-10: 细节向核心白帽子及相关领域专家公开
2014-02-20: 细节向普通白帽子公开
2014-03-02: 细节向实习白帽子公开
2014-03-09: 细节向公众公开
简要描述:
AppCMS前台评论功能可xss,但有长度限制(20字),以前一个漏洞给我启发可以绕过,直接打到后台,可打后台地址和管理员cookie。
详细说明:
comment.php 获得IP地址,并插入数据库:
获得IP的函数:
当HTTP_X_FORWARDED_FOR存在时获取的IP就是它,但是HTTP_X_FORWARDED_FOR是可以伪造的,所以造成了XSS代码的注入。
但在数据库中,ip这个字段限制了字数,只有20字,所以绕过成为了难点。
所以我们来构造。
首先留一条言,内容是我们要写的xss代码,我这里就简单的弹出窗口:
发表的时候抓包,修改X-FORWARDED-FOR,写半个闭合的script:
然后刷新页面后再次写一条留言,内容就无所谓了,仍然是抓包,写前半个script标签:
这时任务就算完成了,实战的话就坐等接收cookie和后台地址了。
我们可以来到管理员页面 - 查看评论,可以看到窗口已经弹了:
我们看看源码:
看懂了吗,两次插入的内容正好闭合了,中间用注释符注释掉,然后第一次插入的评论内容就是我们的javascript代码,而这个代码的两遍用注释符再闭合掉就可以了。
我们运用两次留言成功构造了一个xss,绕过了最大长度为20的限制。
漏洞证明:
修复方案:
不使用X_FORWARDED_FOR来获取用户IP地址。
版权声明:转载请注明来源 phith0n@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-03-09 10:44
厂商回复:
最新状态:
暂无