IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    关于Ecshop pages.lbi.php Xss漏洞的修复

    xianrennet发表于 2014-05-29 06:14:22
    love 0

    前段时间在用ecshop建站的时候,360报警说出现了严重的漏洞:

    Ecshop pages.lbi.php Xss漏洞

    ==============================我是分割线==================================
    描述:

    目标存在跨站脚本攻击。

    1.跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户浏览该网页时,嵌入到网页中的恶意代码就会被执行。一般用来盗取浏览器cookie

    + 展开
    危害:

    恶意用户可以使用该漏洞来盗取用户账户信息、模拟其他用户身份登录,更甚至可以修改网页呈现给其他用户的内容。

    解决方案:

    临时解决方案:

    1.使用360防护脚本

    ==========================我是分割线=================================

    于是用360防护脚本,但没起到任何作用。于是只好自己动手。

    先来分析这个漏洞的原因:

    直接访问temp/compiled/pages.lbi.php时,浏览源文件,会发现如下代码:

    <form action=”temp/compiled/pages.lbi.php” method=”get”>

    显然这个form是不完全的。当构造这样的url访问时,会造成在客户端执行代码:

    temp/compiled/pages.lbi.php/”</form><sCripT>alert(/cfreer/)</scRipt>

    很显然,这个漏洞的原理就是闭合了这个form再在客户端执行javascript.

    然后分析出现不闭合form的原因,打开page.lbi.php文件,可以看到如下代码

    <form action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>” method=”get”> <?php if ($this->_var[‘pager’][‘styleid’] == 0): ?>

    这里执行$this的时候就出现错误了,,因为没有进行template的初始化。

    既然找到原因了,下面给出解决办法:

    打开page.lbi文件,在第二行插入如下代码:

    <?php if (!defined(‘IN_ECS’)) { die(‘Hacking attempt’); } ?>

    再次测试,一切正常。

    本文出自 “Peters” 博客,请务必保留此出处



沪ICP备19023445号-2号
友情链接