【发布时间】:2014-12-19 21:37:03
【问题描述】:
我们有人利用我们的网站并给自己资金进行购买,而实际上却没有存入任何资金。在运行 Vega 扫描程序来查找漏洞时,我们的几乎所有页面似乎都打开了 shell 注入漏洞。
程序说以下 2 个请求(基本上在任何页面上,因为这个 PHP 代码在 header.php 中)使我们容易受到攻击。
GET /web-hosting.php?cid=1`true`
GET /web-hosting.php?cid=1"`true`"
GET /style.css?1=null`true`
GET /style.css?1=null"`true`"
查看 header.php 代码时,我注意到链接的 CSS 文件后面有“?1”。我没有对这个站点进行编码,所以我不确定它们是否一直存在,但是没有充分的理由将这个参数放在那里吗?似乎它只是为我们打开了漏洞利用的大门。
<link rel="stylesheet" type="text/css" href="reset.css?1" />
<link rel="stylesheet" type="text/css" href="style.css?1" />
<link rel="stylesheet" type="text/css" href="style-custom.css?1" />
编辑
这是在以 cid.php 作为参数的标头中使用的代码。
<?php
// Enter WHMCS Folder location eg "whmcs"
$location = "customers";
require("".$location."/dbconnect.php");
if (isset($_REQUEST['cid'])) $_SESSION['currency'] = $_REQUEST['cid'];
?>
我对 shell 注入并不太熟悉,但是我真的不明白这有什么意义。我尝试在浏览器中输入 URL,但它只是加载了页面。这些实际上有什么作用?如何解决?
【问题讨论】:
-
您应该立即聘请专业人士。
-
漏洞利用似乎仅限于某个包含的脚本,该脚本将 cid 作为参数,因此我可以通过将其更改为使用 mysqli 我相信自己来修复它。我只是对 ?1 更好奇,我认为可以通过从实际链接行中删除它来修复它,但不确定。
-
shell 注入不是 sql 注入。就目前而言,我们无法在不阅读代码的情况下提供任何类型的诊断。
-
我不确定要提供什么代码,我已经编辑了原始帖子,以在带有 CID 参数的标题中显示 PHP 代码。
标签: php shell code-injection exploit