秦文生
摘要:實訓操作是職業學校各專業教學中的重要一環,搭建一套基于Web服務的Windows server 2003安全實驗系統,在實訓室內部中就可以開展多種安全攻防實訓。
關鍵詞:信息安全;Web安全;仿真;實驗平臺;網絡攻防平臺
中圖分類號:G710 文獻標志碼:A 文章編號:1674-9324(2017)37-0257-02
一、引言
實訓操作是職業學校各專業教學中的重要一環。進行信息安全的實驗時,沒有相關的實驗平臺,實驗就很難開展。本系統搭建了一套基于Web服務的Windows server 2003靶機系統,從而在實訓室內部網中就可以開展相關安全測試和評估,為各開展信息安全課程的職業院校相關專業提供借鑒和參考。
二、Web安全系統部署
對于進行初級階段練習的靶機環境,不選擇最新的系統和軟件,本系統選擇了Windows server 2003企業版作為操作系統,雷弛新聞系統v1.0和2.0等作為Web安全測試系統。
使用者可以通過仿真的安全環境,可以實現對SQL注入,文件上傳,XSS跨站的安全測試,并可以使用某些免費的Web防火墻進行安全加固,在安全的攻與防中提高對Web安全的認識。
三、安全漏洞分析
1.萬能密碼漏洞分析。
雷弛V1.0系統存在萬能密碼漏洞(用戶名寫:'or 1 or' 或 'or'='or' )。漏洞文件在后臺驗證文件上/admin/CHKLOGIN.ASP中,見代碼4-7行:
dim rs
admin1=request("admin") '沒有任何過濾
password1=request("password")'沒有任何過濾
set rs=server.CreateObject("ADODB.RecordSet")
rs.open "select * from admin where admin='"& admin1 &"' and password='"&encrypt(password1)&"'",conn,1'帶入SQL查詢中時依然沒有過濾
if rs.eof and rs.bof then
因此可以構造SQL語句,利用“萬能密碼”登錄。此系統使用ACCSESS小型數據庫,access數據庫的運算優先級與其他數據庫稍有不同,根據microsoft官方的ACCSEE的SQL語句的運算符優先級資料分析如下:
構造一個用戶名為“ 'or 1 or' ”的用戶帶入原SQL語句,分析此SQL后半部分的邏輯值過程如下:
(1)SELECT * from admin where admin='' or 1 or '' and password='';(''為兩個單引號,為轉義字符,單引號里面的內容不做任何解析)
在這個表達式里,由于沒有優先級別1-3的運算符,第一批執行的是優先級為4的比較優運算符,即“=”等于,顯然,這次運算的結果不成立,為0。此時表達式結果如下:
(2)SELECT * from admin where 0 or 1 or '' and 0;
第二批執行的優先級別為6的“and”運算符,此時'' (兩個單引號,內容為空)and與0相與,結果仍為0,此時表達式結果如下:
(3)SELECT * from admin where 0 or 1 or 0;
第三批執行的優先級別為7的“or”運算符,此時0與1相或,結果變成了1,此時表達式成立,結果如下:
(4)SELECT * from admin where 1 or 0
第三批執行的優先級別為7的“or”運算符,此時1與0相或,結果仍為1,此時where后的整個表達式宣告成立,整體結果為1,可以成功地通過系統對用戶名密碼的驗證。
2.SQL注入漏洞。
雷弛V1.0中http://172.16.57.120:87/onews.asp?id=44存在SQL注入漏洞,
打開數據庫發現有11個字段,可以構造這樣的語句來進行:
-1 union select 1,admin,password,4,5,6,7,8,9,
10,11 from admin
其中的-1是讓原本的SQL不成立就執行后面的聯合查詢語句,其中位置2和3是網頁會在網頁中顯示的字段。使用
http://172.16.57.120:87/onews.asp?id=44%20union%20select%201,admin,password,4,5,6,7,8,9,10,11%20from%20admin進行測試,可獲得用戶名和密碼,用戶名“admin”,密碼為“bfpms”(簡單加密后的密碼)。
3.cookie注入漏洞。
雷池新聞系統的2.0增強版本,加入了防注入系統,但是經過分析知道在SQL通用防注入系統3.0版存在cookie注入漏洞,在/sql/Neeao_SqlIn.Asp文件中:
文件只對GET和POST提交方式進行檢測合法性。網頁文件在接受處理方式的時候一般是POST或GET兩種方式。比如Request.form或Request.QueryString。而防注入程序3.0是限制,這兩種方式提交。卻沒有限制Request.cookie的方式。
此時使用可修改cookies的瀏覽器(或插件),根據瀏覽器對cookies的處理機制不同,有的會對URL自動進行URL編碼,有的需要手動進行。endprint
注入語句:
id=-1 union select 1,admin,password,4,5,6,7,8,
9,10,11 from admin
(1)Cookies browswer:可以自動編碼,1設置好cookies后,點修改cookies,然后點右鍵,“重新載入”,即可。
(2)中國菜刀:需要手動編碼(含特殊符號的必須用URL編碼,空格的URL編碼即20%,編碼后為:id=-1%20union%20select%201,admin,password,4,5,6,7,8,9,10,11%20from%20admin)
4.XSS漏洞。
使用IE6.0瀏覽器,在“新聞搜索”框里輸入任意數字111,得到如下url地址
http://10.92.92.32/leichinews/search.asp?key=111&
otype=title&Submit=%CB%D1%CB%F7
將111后面字符串刪除,插入一些跨站語句進行測試,發現存在XSS漏洞。
http://192.168.33.150/search.asp?key=111
alert('XSS')
http://192.168.33.150/search.asp?key=111
alert(document.cookie)
四、網站安全加固
Web應用安全問題本質上源于軟件質量問題。一方面Web程序通常是某個機構所獨有的,另一方面,Web應用需要頻繁地變更以滿足業務目標,從而使得很難維持有序的開發周期;針對Web應用安全,折中的解決方案是使用由專業的安全公司開發的Web安全防護產品,即Web防火墻,Web防火墻有硬件的也有軟件的,本文使用的為軟件的。
1.自動:安裝本地Web防火墻。
在Windows平臺,針對IIS的Web防火墻,常見的有網站安全狗(IIS版)、智創IIS防火墻系統、D盾_IIS防火墻等。這些產品需要在服務器上安裝,安裝后根據產品自身內置的防護規則,會對http流量進行監控并實施防護。
2.使用在線的云Web防火墻。
云WAF,也稱WEB應用防火墻的云模式。這種模式讓用戶不需要在自己的網絡中安裝軟件程序或部署硬件設備,就可以對網站實施安全防護,如防SQL注入、防XSS、防DDOS等。目前常見的云WAF有阿里WAF,360WAF和安全寶WAF等。以阿里云WAF產品功能如下:
3.手動加固。
除了使用各種WAF產品,也可以手動對網站和服務器進行安全加固。目前有關IIS加固和Windows安全加固的資料在網上特別多,此不贅述。僅就其中幾項關鍵的地方提示如下:
(1)iis加固。
限制后臺登錄:
刪除所有自定義錯誤。發送統一出錯信息:
(2)權限控制。
終極防網馬:有寫入權限的目錄不給執行權限,即使有webshell傳上來無法運行,給執行權限的不給寫入權限(即禁止上傳文件)
五、結論
通過自行構建網絡安全實驗環境,使用在普通PC上即可進行安全測試和安全加固的實訓,給信息安全課程教學提供了方便。
參考文獻:
[1]阿里云web應用防火墻[EB/OL].https://cn.aliyun.com/product/waf.
[2]天融信:淺談云WAF帶來的利與弊[EB/OL].http://www.enet.com.cn/article/2014/0213/A20140213349317.shtml.
[3]解讀Web應用防火墻[EB/OL].http://www.2cto.com/article/201010/77002.html.endprint