1. 程式人生 > >lamp服務器站點目錄被植入廣告代碼

lamp服務器站點目錄被植入廣告代碼

植入代碼廣告刪除替換

title: lamp服務器站點目錄被植入廣告代碼
tags: 植入代碼廣告,刪除,替換
grammar_cjkRuby: true

[TOC]

lamp服務器站點目錄被植入廣告代碼

1 產生背景

由於公司運維人員在系統上的權限體現分配不合理,導致站點目錄被上傳木馬,把站點目錄下所有文件均植入了如下廣告<script language=javascript src=http://%4%66E/x.js?google_ad=93></script>
包括圖片目錄也被植入,網站打開都會調用這個地址,顯示出一個廣告,產生惡劣的影響。

2 解決思路

因為站點目錄下所有文件都被植入了<script language=javascript src=http://%4%66E/x.js?google_ad=93></script>這條代碼,導致打開任何頁面都會調用這個地址,因此需要在每個文件把該代碼刪除。

3 從發現問題到解決的過程

3.1 運維人員,網站用戶發現問題,網站有彈窗廣告。
3.2 運營人員報給開發,開發工程師和運維工程師共同解決。
3.3 開發工程師發現問題,所有站點目錄被植入了一段JS代碼。
3.4 運維工程師解決問題:
3.4.1 備份原始出問題的所有文件
3.4.2 使用find +sed替換內容
3.4.3 確認網站運行正常,且無上述彈窗廣告
3.4.5 詳細查看日誌,尋找問題來源
3.4.6 提供改進方案,杜絕這種事情再次發生

4 處理過程

4.1 通過和該公司運維人員確認確實出現了問題,詳細查看確認問題情況,發現是站點目錄下所有文件的開頭都被植入了惡意代碼。
4.2 制定處理方案,先備份已有數據,執行命令批量修改回來。

4.3 寫解決說明,發送給運維工程師。
4.4 詢問處理結果,詳細查看日誌,尋求問題來源
4.5 提供站點嚴格權限規劃方案,及新上線發布規範的思路

5 處理步驟

5.1 因此先模擬出問題來源,如下

[root@server ~]# mkdir /www
[root@server ~]# cd /www
[root@server www]# touch file{1..100}
[root@server www]# for n in `ls`;do echo "hello world" >>$n;done      
[root@server www]# for n in `ls`;do cat $n;done |wc -l
100
[root@server www]# find ./ -type f |xargs sed -i ‘1 i <script language=javascript src=http://%4%66E/x.js?google_ad=93></script>‘
[root@server www]# find ./ -type f |xargs cat
<script language=javascript src=http://%4%66E/x.js?google_ad=93></script>
hello world
<script language=javascript src=http://%4%66E/x.js?google_ad=93></script>
hello world
<script language=javascript src=http://%4%66E/x.js?google_ad=93></script>
[root@server www]# cp -a /www /mnt/

5.2 利用sed命令將代碼片段匹配刪除或者替換,如:

刪除
[root@server www]# find ./ -type f |xargs sed -i ‘/^.* src=.*pt>$/d‘   
[root@server www]# find ./ -type f |xargs cat
hello world
hello world
hello world
hello world
hello world

替換
[root@server www]# find ./ -type f |xargs sed -i ‘1 i <script language=javascript src=http://%4%66E/x.js?google_ad=93></script>‘
[root@server www]# 
[root@server www]# 
[root@server www]# find ./ -type f |xargs sed -i ‘s#^.* src=.*pt>$##g‘
[root@server www]# find ./ -type f |xargs cat

hello world

hello world

hello world
因為把惡意代碼替換為空了,所以每個文件開頭都出現了空白行,如果介意的話可以批量刪除,如下:
[root@server www]# find ./ -type f |xargs sed -i ‘/^$/d‘
[root@server www]# find ./ -type f |xargs cat
hello world
hello world
hello world

lamp服務器站點目錄被植入廣告代碼