事情發生在前幾天,偶然的狀況下想去修改一下當初一進實驗室所搞的系統。赫然發現php網頁原始碼最上面多了一行詭異的程式碼,心裡還想是不是自己寫上去的,畢竟自從系統上線後到現在也有半年沒去碰了。直到我修改了第二個php網頁,也看到有相同的程式碼。說實在的,就連在網頁管理上沒有什麼經驗的我,也已經可以確定那個一定是被惡意植入,一定不是我寫的。
Google大神告訴了我那的確是被木馬所植入,於是乎看到base64_decode函式之後,馬上尋找解碼的網站並且將代碼複製進去,結果大致看起來跟moodle教學論壇有關係。馬上聯想到前些時候系上網管告知我們實驗室的moodle系統一直隨意發送認證通知信之類的不正常行為,我想大概跟這個脫離不了關係了。
查了一下網路上能夠的解決方式不外乎就是刪掉那一行並且找出木馬之類的,而之前學長有提到要將我們的Webserver移到Linux系統上,所以那個木馬就不管他了,直接把所有php檔清乾淨就好!:D
開啟空白檔案,輸入以下bash script:
存成 *.sh 檔後,在要清除的php相同目錄下執行即可。
這支bash script的作用其實只是將所有php網頁中有"eval(base64_decode('LOADS_OF_CHARACTER'));"這行移除掉這樣而已,不過還頗方便的:)
--
Ubuntu 9.04
--
參考/相關網址:
1.Yahoo!ANSWERS - How do I recursively find and remove parts of PHP files?
Read rest of entry
Google大神告訴了我那的確是被木馬所植入,於是乎看到base64_decode函式之後,馬上尋找解碼的網站並且將代碼複製進去,結果大致看起來跟moodle教學論壇有關係。馬上聯想到前些時候系上網管告知我們實驗室的moodle系統一直隨意發送認證通知信之類的不正常行為,我想大概跟這個脫離不了關係了。
查了一下網路上能夠的解決方式不外乎就是刪掉那一行並且找出木馬之類的,而之前學長有提到要將我們的Webserver移到Linux系統上,所以那個木馬就不管他了,直接把所有php檔清乾淨就好!:D
開啟空白檔案,輸入以下bash script:
#!/bin/bash
find . -name '*.php*' |
(
while read -r file; do
sed "/eval(base64_decode('LOADS_OF_CHARACTER'));/d" "$file" > "temp" && mv "temp" "$file"
done
)
註:其中LOADS_OF_CHARACTER就是那一長串代碼。
存成 *.sh 檔後,在要清除的php相同目錄下執行即可。
這支bash script的作用其實只是將所有php網頁中有"eval(base64_decode('LOADS_OF_CHARACTER'));"這行移除掉這樣而已,不過還頗方便的:)
--
Ubuntu 9.04
--
參考/相關網址:
1.Yahoo!ANSWERS - How do I recursively find and remove parts of PHP files?