Ecshop pages.lbi.php Xss漏洞怎么修复

cyq1162 阅读:37 2023-03-30 18:16:47 评论:0

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

Ecshop pages.lbi.php Xss漏洞

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

  • 描述:

  • 目标存在跨站脚本***。

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

    + 展开

  • 危害:

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

  • 解决方案:


  • 临时解决方案:

    1.使用360防护脚本

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

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

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

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

<form name="selectPageForm" 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 name="selectPageForm" 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'); 
} 
?>

再次测试,一切正常。


本文参考链接:https://www.yisu.com/zixun/43709.html
标签:PHP
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号