阿里云,ecshop注入漏洞 /api/client/api.php


今天放在阿里云上的一个ecshop项目,被云盾检测出”ECShop注入漏洞”。

1、漏洞描述:

ECShop存在一个盲注漏洞,问题在于/api/client/api.php文件中,提交特制的恶意POST请求可进行SQL注入攻击,可获得敏感信息或操作数据库。还是上一张图吧

22226.png

就是上述情况,各位小伙伴如果出现上述情况,可以参考下面的解决方法进行解决。 

2、漏洞触发条件:

<span class="number">1</span><span class="number">.</span> /api/client/api.php存在未过滤漏洞
<span class="number">2</span><span class="number">.</span> 服务器magic_quote_gpc = off 
<span class="comment">//</span><span class="comment">magic_quote_gpc特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除,即默认情况下,magic_quote_gpc = Off</span>

3、解决方法:

发开/api/client/api.php这个文件,找到下面的这个方法。

<span class="function"><span class="keyword">function</span> <span class="title">API_UserLogin</span><span class="params">(<span class="variable">$post</span>)</span>
{</span>
  <span class="comment">/*</span><span class="comment"> SQL注入过滤 */</span>
  <span class="keyword">if</span> (get_magic_quotes_gpc()) 
  {	 
    <span class="variable">$post</span>[<span class="string">'</span><span class="string">UserId'</span>] = <span class="variable">$post</span>[<span class="string">'</span><span class="string">UserId'</span>]	 
  } 
  <span class="keyword">else</span> 
  {	 
    <span class="variable">$post</span>[<span class="string">'</span><span class="string">UserId'</span>] = addslashes(<span class="variable">$post</span>[<span class="string">'</span><span class="string">UserId'</span>]);	 
  }
  <span class="comment">/*</span><span class="comment"> */</span>
  <span class="variable">$post</span>[<span class="string">'</span><span class="string">username'</span>] = <span class="keyword">isset</span>(<span class="variable">$post</span>[<span class="string">'</span><span class="string">UserId'</span>]) ? trim(<span class="variable">$post</span>[<span class="string">'</span><span class="string">UserId'</span>]) : <span class="string">''</span>;
  ..

小伙伴们只需要将 /* SQL注入过滤 */这个注释下的一个if语句,放在 $post[‘username’] = isset($post[‘UserId’]) ? trim($post[‘UserId’]) : ”;这句代码之前即可。

上一篇 下一篇