比较老的文章了(2009-01-10 02:09),但是有些技巧还是值得再研究的,所以就转来了,有心学习的人还可以再看看。

漏洞描述:

     搜狐博客,博客大巴这两个社区的博客系统,日志模块都采用富文本提交方式。可以直接授权用户编辑HTML代码。但这两套博客系统均没有过滤,<!--[if gte IE 4]>等IE条件注释标签。进而攻击者可以注入恶意代码。造成跨站攻击。

利用代码:

<!--[if gte IE 4]>
………………
………………
<![endif]-->

触发方式:

     用IE浏览器打开日志页面的用户会有受到攻击的危险。

补充说明:

    “if IE” 系列代码为IE中的条件注释。
    1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
    2. <!--[if IE]> 所有的IE可识别 <![endif]-->
    3. <!--[if IE 5.0]> 只有IE5.0可以识别 <![endif]-->
    4. <!--[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]-->
    5. <!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]-->
    6. <!--[if IE 6]> 仅IE6可识别 <![endif]-->
    7. <!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
    8. <!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
    9. <!--[if IE 7]> 仅IE7可识别 <![endif]-->
    10. <!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
    11. <!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->

    lte,lt,gte,gt各自的详细解释如下:
    lte:就是Less than or equal to的简写,也就是小于或等于的意思。
    lt :就是Less than的简写,也就是小于的意思。
    gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
    gt :就是Greater than的简写,也就是大于的意思。
    ! :就是不等于的意思。

附图:

搜狐博客/博客大巴 日志模块XSS漏洞(2009.1.10.漏洞首发)

搜狐博客/博客大巴 日志模块XSS漏洞(2009.1.10.漏洞首发)