記 FineUI 官方論壇所遭受的一次真實網絡攻擊!做一個像 ice 有道德的黑客!


可能是最近在參加 CSDN 舉行的那個評選,FineUI 論壇吸引了一大批圍觀群眾,也吸引了一些黑客的目光,本文會按時間順序記錄下 FineUI 論壇所遭受的這次網絡攻擊,期望能對其他站長有所幫助。

 

發現異常

2013-6-22 08:56

早上起來,像往常一樣打開 FineUI 官網論壇(http://fineui.com/bbs/ )去發現進不去,還以為服務器又受到 DDOS 攻擊(因為前兩天服務器連續受到攻擊,也出現偶爾連不上的情況),就趕緊上 QQ 准備聯系服務器管理員,卻發現服務器管理員已經給我留言:

snap260

 

還沒看完留言就已經頭皮發麻,真的是受到攻擊了,莫非是最近選票排的靠前被盯上了(后來發現不是這樣的),不由得一陣胡思亂想,數據庫數據有沒有丟失啊….

 

冷靜下來,看下那張查出木馬的截圖:

QQ圖片20130623091333

 

原來是 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 62

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 95

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

clip_image001

這是我根據文件修改時間(日志內使用的是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/這個目錄內發現了個馬,,,

clip_image003

Upload這個目錄內,有好多好多文件。。。可能是人家體驗程序的時候上傳上來的。

clip_image005

這幾天的日志有點異常,不知道是不是有人在做壞事。。。。

我只有繼續分析那個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文件都可以,而且穿了后,文件路徑就在下放輸出的圖片路徑內可以獲取:

clip_image006

我將我的分析和日志導出結果發給你,望能盡快修復(驗證上傳文件類型)。這個可能是之前上傳php木馬發包的一個入口。

為了防止有人繼續用這個漏洞傳入木馬或者篡改數據,我暫時幫你重命名了。。

/demo/form/fileupload.aspx -> /demo/form/fileupload__.aspx

clip_image008

你看這個人的IP,應該就是我上面提到的IP了。他應該已經拿到了MYSQL的密碼,進入了數據庫修改了權限了。

 

有道德的黑客

經過上面的分析,已經很明顯了,黑客的入侵途徑大致如下:

1. 通過 http://fineui.com/demo/#/demo/form/fileupload.aspx 上傳一個木馬 php 文件;

2. 通過此木馬獲取論壇權限並篡改首頁;

3. 將自己設為論壇管理員。

 

其實我最擔心的是他拿到管理員權限后會不會一下子把用戶全刪掉,或者做其他一些批量操作,這就麻煩了。

 

后來發現這位黑客沒有這么做,僅僅是把自己改成管理員爽了一把,我的心中不由的升氣一絲莫名的欣慰,感覺也沒那么擔心了,因為這是一位:

 

有道德的黑客:ice

 

clip_image008

 

 

修復被攻擊的網站

接下來,我的做法是:

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 的日志,我發現了自己的這個錯誤:

snap261

 

可以看到如下過程:

1. 早上 10:12,我登陸后將 ice 設為禁止訪問;

2. 僅僅過去一個小時 11::16,ice 用我的賬號登陸解禁 ice,並將 ice 設為管理員;

3. 我在晚上 22:24,才發現這個問題,並重新刪除 ice 的所有資料。

 

之后,我修改了所有相關密碼!

 

 

結論

首先是要保證自己的代碼沒有漏洞,涉及用戶輸入和用戶上傳的地方一定要特別注意!

其次是希望每一個黑客都能向 ice 學習,做一個有道德的黑客(自己爽一把沒關系,不要破壞別人的數據)!

 

 

 

喜歡這篇文章,就不要忘記點擊頁面右下角的【推薦】按鈕哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM