20159302《網絡攻擊與防範》第五週學習總結

教材內容學習總結

1.基礎知識回顧

經過教材內容的學習瞭解,掌握了基本的網站運行模式,並瞭解其結構方式。以下圖:javascript

運行過程爲:首先客戶在瀏覽器端發送請求,將相關的表單、數據交付給服務器;而後服務器根據所傳送過來的數據由相應的處理程序進行處理;而後調用數據庫內容反饋給服務器,由服務器將數據庫取得的數據進行封裝處理再發給瀏覽器用戶。這樣就完成了一個請求/響應的流程。php

目前:主流的前端技術有html5+css3+javascript。html語言是超文本標記語言,其結構包括頭」部分(英語:Head)、和「主體」部分(英語:Body),其中「頭」部提供關於網頁的信息,「主體」部分提供網頁的具體內容。通常網站搭建過程當中使用該語言進行網站的佈局,如使用div。而css是層疊樣式表是一種用來表現html或xml(標準通用標記語言的一個子集)等文件樣式的計算機語言。可以對網頁中的對象的位置排版進行像素級的精確控制,支持幾乎全部的字體字號樣式,擁有對網頁對象和模型樣式編輯的能力,並可以進行初步交互設計,是目前基於文本展現最優秀的表現設計語言。javascript是由網景公司提出並應用於網站的搭建中的,一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言,最先是在html網頁上使用,用來給html網頁增長動態功能。目前經常使用的javascript框架有jquery等。css

服務器語言主要有php、java、c#、jsp等。其中簡單介紹一下php語言,PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,利於學習,使用普遍,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及php自創的語法。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,php是將程序嵌入到html文檔中去執行,執行效率比徹底生成html標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。目前經常使用的php框架有thinkphp、yii等。值得一提的是國內百分之八十以上的網站都是用php寫的。而服務器的搭建通常是使用Apache、tomcat等。html

數據庫:經常使用的數據庫有mysql、sql server、mogodb等。其中mysql是免費開源的數據庫系統,下面簡單介紹一下:它是一個關係型數據庫管理系統。在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。MySQL所使用的 SQL 語言是用於訪問數據庫的最經常使用標準化語言。MySQL 軟件採用了雙受權政策,它分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。前端

前臺頁面與服務器的交互時使用的是http協議,http協議是超文本傳輸協議,默認使用tcp 80端口,http是相對比較簡單、無狀態的、基於ascll碼的協議,HTTP協議使用統一資源標識符,對其範圍內的全部資源進行統一的定義,而後採用一種簡單請求/響應模式,來請求一項資源,若資源存在則響應該資源。可是該協議的安全性比較差,目前已經採起多種手段進行保護如ssl或者cookie等技術。html5

2.安全威脅分析

經過分析總結,從安全技術角度分析web安全有以下幾種威脅。java

1)針對認證機制的攻擊:針對用來確認用戶、服務或應用身份機制的攻擊手段,包括暴力枚舉、利用認證機制不完善弱點、攻擊口令恢復驗證等。mysql

2)受權機制的攻擊:針對用來確認用戶、服務或應用是否具備執行請求動做必須權限機制的攻擊手段,包括信任/會話預測、利用認證機制不完善弱點等。jquery

3)客戶端攻擊:擾亂或者滲透攻擊web站點客戶端用戶的攻擊手段,包括內容欺騙、跨站腳本攻擊等。css3

4)命令執行攻擊:在web站點上執行遠程命令的攻擊手段,包括緩衝區溢出、格式化字符串、LDAP注入、操做系統命令注入、SQL注入、SSI注入等。

5)信息暴露:獲取web站點具體系統信息的攻擊手段,包括目錄列舉、信息泄露、路徑遍歷、資源位置可預測等。

6)邏輯攻擊:擾亂或滲透攻擊web應用邏輯流程的攻擊手段,包括功能濫用、拒絕服務攻擊、對抗自動程序不完善、處理驗證過程不完善等。

3.web應用安全防範措施

1)儘可能使用https來保障web站點傳輸時的保密性、完整性和身份真實性。

2)經過加密的鏈接通道來管理web站點,避免使用未經加密的telnet、ftp、http等來進行web站點的管理,而應使用SSH、SFTP等安全協議。

3)設置靜態綁定的MAC-ip映射,在服務網段內禁止ARP欺騙,在網關處部署防火牆或者入侵檢測系統等。

4)必定要開啓日誌功能,作好日誌記錄和安全審計工做。

4.SQL注入攻擊方法

1)SQL注入

代碼注入是針對web應用程序的主流攻擊方法之一,代碼注入攻擊經過利用web應用程序的輸入驗證不完整性漏洞,使得web應用程序執行由攻擊者所注入的惡意指令和代碼,形成敏感信息泄露、權限提高或對系統的未受權訪問等危害後果。主要是因爲用戶輸入沒有被正確的過濾以消除SQL語言中的字符串轉義字符,如引號、雙引號、反引號等,或者是沒有進行嚴格的類型判斷。Sql注入的原理是向web應用程序提供的用戶輸入接口輸入一段精心構造的SQL查詢命令,攻擊和利用不完善的輸入驗證機制,使得注入代碼得以執行完成非預期的攻擊操做行爲。

2)發現注入點’

sql注入點存在於動態網頁中,只要參數可以生成sql語句並訪問數據庫,就可能存在注入,經常使用的注入爲輸入‘1‘=’1‘,

3)判斷數據庫類型

利用數據庫服務器的系統變量進行判斷

利用數據庫服務器的系統表進行判斷

4)後臺數據庫中管理員用戶口令字猜解

管理員賬戶具備管理和維護web應用程序的特殊權限和功能,如上傳/下載文件、目錄瀏覽、修改配置等,而這些管理員帳號通常也是存在數據庫中的,經過sql注入拿到後臺管理員帳號,就能經過管理員的權限對整個網站進行控制。管理員的帳號破解包括表名猜想、字段名猜想以及用戶名和密碼的猜想。

5)上傳後門,獲得默認帳戶權限

將後門上傳至www目錄下面的script目錄下,攻擊者就能經過它進行訪問,進而獲得默認帳戶的權限,從而執行上傳/下載等功能。

6)本地權限提高

5.防範措施

防範措施主要有以下幾點:

1)使用類型安全的參數編碼機制

2)凡是來自外部的用戶輸入,均需進行完備檢查

3)將動態SQL語句替換爲存儲過程、預編譯SQL和ADO命令對象

4)增強SQL數據庫服務器的配置與鏈接

相關文章
相關標籤/搜索