多是最近在參加 CSDN 舉行的那個評選,FineUI 論壇吸引了一大批圍觀羣衆,也吸引了一些黑客的目光,本文會按時間順序記錄下 FineUI 論壇所遭受的此次網絡攻擊,指望能對其餘站長有所幫助。php
2013-6-22 08:56html
早上起來,像往常同樣打開 FineUI 官網論壇(http://fineui.com/bbs/ )去發現進不去,還覺得服務器又受到 DDOS 攻擊(由於前兩天服務器連續受到攻擊,也出現偶爾連不上的狀況),就趕忙上 QQ 準備聯繫服務器管理員,卻發現服務器管理員已經給我留言:git
還沒看完留言就已經頭皮發麻,真的是受到攻擊了,莫非是最近選票排的靠前被盯上了(後來發現不是這樣的),不禁得一陣胡思亂想,數據庫數據有沒有丟失啊….數據庫
冷靜下來,看下那張查出木馬的截圖:服務器
原來是 php 木馬,那這些文件又是如何上傳到服務器的呢?網絡
此次要真的感謝服務器管理員 №風影㊣ 和他維護的服務器資源 http://www.kingidc.net/,他不但幫我暫時阻止了黑客的進一步攻擊,並且詳細分析瞭如何受到攻擊,以下部分來自管理員的分析文檔:併發
2013-06-21 14:03:11 W3SVC129 115.239.252.29 GET /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 115.236.84.185 Mozilla/5.0+(Windows+NT+6.2;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/27.0.1453.116+Safari/537.36 304 0 0 141 1534 62ide
2013-06-21 14:03:11 W3SVC129 115.239.252.29 GET /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 222.81.215.230 Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1 304 0 0 141 1194 95post
2013-06-21 14:03:11 W3SVC129 123.157.149.29 POST /demo/upload/635074464204358063_ice.aspx action=edit&src=D%3a%5cHostingSpaces%5cfineuico%5cfineui.s1.kingidc.net%5cwwwroot%5c%5cindex.html 80 - 222.136.235.23 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0) 200 0 0 10497 48738 1008學習
2013-06-21 14:03:11 W3SVC129 115.239.252.29 GET /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 222.81.215.230 Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1 304 0 0 141 1161 98
2013-06-21 14:03:11 W3SVC129 115.239.252.29 GET /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 119.96.106.251 Mozilla/5.0+(Windows+NT+6.1;+rv:6.0.1)+Gecko/20100101+Firefox/6.0 200 0 0 14241 1190 67
2013-06-21 14:03:11 W3SVC129 115.239.252.29 GET /bbs/data/attachment/forum/201306/19/102624mwsyvybzk7g5szyw.png - 80 - 222.81.215.230 Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1 304 0 0 141 1161 100
這是我根據文件修改時間(日誌內使用的是UTC時間),在日誌內找到的相關操做:
2013-06-21 14:03:11 W3SVC129 123.157.149.29 POST /demo/upload/635074464204358063_ice.aspx action=edit&src=D%3a%5cHostingSpaces%5cfineuico%5cfineui.s1.kingidc.net%5cwwwroot%5c%5cindex.html 80 - 222.136.235.23 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0) 200 0 0 10497 48738 1008
顯然,這我的222.136.235.23在您站點內利用上傳功能上傳進了一個aspx木馬篡改了你的首頁文件。
/demo/upload/635074464204358063_ice.aspx
我意外發現,在/demo/upload/這個目錄內發現了個馬,,,
Upload這個目錄內,有好多好多文件。。。多是人家體驗程序的時候上傳上來的。
這幾天的日誌有點異常,不知道是否是有人在作壞事。。。。
我只有繼續分析那個IP的訪問日誌了,將日誌導入EXCEL而後篩選:
逐行查看,發如今他以前一直在 :/demo/form/fileupload.aspx 這個頁面來回上傳文件。
從 338行 post了一個數據以後,就成功將他aspx木馬傳入了你的upload目錄內:
13:08:09
POST
/demo/form/fileupload.aspx
13:08:13
GET
/demo/upload/635074456895620028_safer.aspx
13:08:16
GET
/demo/upload/635074456895620028_safer.aspx
我也隨之測試了一下 /demo/form/fileupload.aspx 這個頁面,上傳php,aspx文件均可以,並且穿了後,文件路徑就在下放輸出的圖片路徑內能夠獲取:
我將個人分析和日誌導出結果發給你,望能儘快修復(驗證上傳文件類型)。這個多是以前上傳php木馬發包的一個入口。
爲了防止有人繼續用這個漏洞傳入木馬或者篡改數據,我暫時幫你重命名了。。
/demo/form/fileupload.aspx -> /demo/form/fileupload__.aspx
你看這我的的IP,應該就是我上面提到的IP了。他應該已經拿到了MYSQL的密碼,進入了數據庫修改了權限了。
通過上面的分析,已經很明顯了,黑客的入侵途徑大體以下:
1. 經過 http://fineui.com/demo/#/demo/form/fileupload.aspx 上傳一個木馬 php 文件;
2. 經過此木馬獲取論壇權限並篡改首頁;
3. 將本身設爲論壇管理員。
其實我最擔憂的是他拿到管理員權限後會不會一會兒把用戶全刪掉,或者作其餘一些批量操做,這就麻煩了。
後來發現這位黑客沒有這麼作,僅僅是把本身改爲管理員爽了一把,個人心中不禁的升氣一絲莫名的欣慰,感受也沒那麼擔憂了,由於這是一位:
有道德的黑客:ice
接下來,個人作法是:
1. 禁止用戶 ice 登錄論壇;
2. 修改 FineUI 的官方示例,只容許用戶上傳圖片文件,而不能上傳任何其餘文件。
新增的限制文件上傳的代碼以下:
1: protected readonly static List<string> VALID_FILE_TYPES = new List<string> { "jpg", "bmp", "gif", "jpeg", "png" };
2:
3: protected static bool ValidateFileType(string fileName)
4: {
5: string fileType = String.Empty;
6: int lastDotIndex = fileName.LastIndexOf(".");
7: if (lastDotIndex >= 0)
8: {
9: fileType = fileName.Substring(lastDotIndex + 1).ToLower();
10: }
11:
12: if (VALID_FILE_TYPES.Contains(fileType))
13: {
14: return true;
15: }
16: else
17: {
18: return false;
19: }
20: }
1: protected void btnSubmit_Click(object sender, EventArgs e)
2: {
3: if (filePhoto.HasFile)
4: {
5: string fileName = filePhoto.ShortFileName;
6:
7: if (!ValidateFileType(fileName))
8: {
9: Alert.Show("無效的文件類型!");
10: return;
11: }
12:
13:
14: fileName = fileName.Replace(":", "_").Replace(" ", "_").Replace("\\", "_").Replace("/", "_");
15: fileName = DateTime.Now.Ticks.ToString() + "_" + fileName;
16:
17: filePhoto.SaveAs(Server.MapPath("~/upload/" + fileName));
18:
19:
20: labResult.Text = "<p>用戶名:" + tbxUseraName.Text + "</p>" +
21: "<p>頭像:<br /><img src=\"" + ResolveUrl("~/upload/" + fileName) + "\" /></p>";
22:
23:
24: // 清空表單字段
25: SimpleForm1.Reset();
26: }
27: }
多是發現這位 ice 頗有善意,我竟然忘記修改可能已經被攻破的管理員密碼。直到晚上我才發現這回事!
由於 ice 有把本身設爲了管理員,併發了一個帖子告訴我「密碼是12345」,很遺憾我把這個帖子給刪了,要否則貼出來也博你們一笑!
很無奈的用別人告訴個人密碼 12345 登錄我本身管理的網站,從新把 ice 的全部資料刪除。當時我還不知道 ice 是怎麼從新獲取管理員權限的,鬱悶的一屁!
後來經過 Discuz 的日誌,我發現了本身的這個錯誤:
能夠看到以下過程:
1. 早上 10:12,我登錄後將 ice 設爲禁止訪問;
2. 僅僅過去一個小時 11::16,ice 用個人帳號登錄解禁 ice,並將 ice 設爲管理員;
3. 我在晚上 22:24,才發現這個問題,並從新刪除 ice 的全部資料。
以後,我修改了全部相關密碼!
首先是要保證本身的代碼沒有漏洞,涉及用戶輸入和用戶上傳的地方必定要特別注意!
其次是但願每個黑客都能向 ice 學習,作一個有道德的黑客(本身爽一把不要緊,不要破壞別人的數據)!
喜歡這篇文章,就不要忘記點擊頁面右下角的【推薦】按鈕哦。