20145316《網絡對抗》Exp9 Web安全基礎實踐學習總結

20145316《網絡對抗》Exp9 Web安全基礎實踐學習總結

基礎問題回答

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

  • SQL注入,就是攻擊者經過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到讓後臺數據庫執行惡意的SQL命令的目的,並根據程序返回的結果,得到某些攻擊者想得知的數據。
  • 防範:web

    • 1.檢查變量數據類型和格式
    • 2.過濾特殊符號
    • 3.綁定變量,使用預編譯語句

    XSS攻擊的原理,如何防護

  • XSS攻擊相似於SQL注入攻擊,攻擊以前,咱們先找到一個存在XSS漏洞的網站,XSS漏洞分爲兩種,一種是DOM Based XSS漏洞,另外一種是Stored XSS漏洞。理論上,全部可輸入的地方沒有對輸入數據進行處理的話,都會存在XSS漏洞,漏洞的危害取決於攻擊代碼的威力,攻擊代碼也不侷限於script。
  • 防範:只要咱們的代碼中不存在漏洞,攻擊者就無從下手,咱們要作一個沒有縫的蛋。XSS防護有以下方式————完善的過濾體系、Html encode。sql

    CSRF攻擊原理,如何防護

  • CSRF全名是Cross-site request forgery,是一種對網站的惡意利用,CSRF比XSS更具危險性。經過假裝受信任用戶的請求利用受信任網站,利用用戶在可信網站上沒有登出的COOKIE作惡意操做
  • 防範:數據庫

    • 1.經過 referer、token 或者 驗證碼 來檢測用戶提交。
    • 2.儘可能不要在頁面的連接中暴露用戶隱私信息。
    • 3.對於用戶修改刪除等操做最好都使用post 操做 。
    • 4.避免全站通用的cookie,嚴格設置cookie的域。

    實驗總結與體會

  • 本次實驗很是有趣,不一樣於以往在虛擬機內操做的實驗,在webgoat網站上作實驗有一種「闖關」解題的快感,一次性學會了不少攻擊方法。也掌握了Berpsuite等工具的使用方法。最後一次實驗,完美收官。瀏覽器

    實驗過程

  • 先開啓webgoat,等待加載。
  • 當出現下面這張圖所示情景時Starting ProtocolHandler,說明開啓成功
  • 在瀏覽器中訪問localhost:8080/WebGoat,用默認用戶名密碼登錄便可
    安全

    1.Stored XSS Attacks

  • 這個實驗的意思是存儲型XSS攻擊,經過輸入代碼使用戶訪問時彈出非預期的內容
  • 在title框中輸入<script>alert("silly human!This is 20145316!");</script>
  • 點擊submit,窗口彈出,攻擊成功
    cookie

    2.Reflected XSS Attacks

  • 相似上一個實驗,是個買東西的頁面,在code框中輸入<script>alert("this is 5316,I'm rich");</script>
  • 彈出窗口,攻擊成功
    網絡

    3.Cross Site Request Forgery(CSRF)

  • 這個實驗的目的是經過郵件的方式僞造一個轉帳請求,查看右側參數欄內參數
  • 在文本框中提交一個有URL惡意請求的代碼,<iframe src="attack?Screen=題中給出的scr&menu=題中給出的menu&transferFunds=轉帳金額"></iframe>
  • 攻擊成功
    xss

    4.CSRF Prompt By-Pass

  • 比上個實驗多了一個「確認請求」,因此須要增長一行代碼,以下
  • 攻擊成功,兩個請求內容都有
    工具

    5.Phishing with XSS

  • 該實驗的目的是讀取登陸用戶的用戶名和密碼。首先輸入編輯的釣魚網站代碼(XSS攻擊代碼)
  • 代碼以下,參考了蔡野同窗的博客
  • 在搜索框中輸入攻擊代碼後點擊搜索,會看到一個要求輸入用戶名密碼的表單以下,輸入用戶名密碼點擊login
  • WebGoat會將輸入的信息捕獲並反饋回來,攻擊成功
    web安全

    6.Numeric SQL Injection

  • 題目大意是這個表單容許使用者看到天氣數據,利用SQL注入使得能夠看見全部數據
  • 這裏要利用到代理berpsuite來對網頁內容進行篡改,具體過程周岐浩同窗博客寫的很清楚,下面是個人操做過程圖





  • 攻擊成功

    7.String SQL Injection

  • 這個題目是讓你們使用SQL注入讓全部的信用卡號都看得見
  • 先嚐試一個輸入,根據結果來找到咱們要進行SQL注入的位置
  • 在文本框中輸入' or 1=1 --進行攻擊,成功

    8.Log Spoofing

  • 該實驗是在代碼中加入用戶名admin迷惑用戶,當用戶登錄的時候登陸失敗,但覺得本身登錄成功了。
  • 在user name 處寫入代碼20145316%0d%0aLogin Succeed!%0d%0aUsername: admin
  • 攻擊成功

    9.LAB:SQL Injection(Stage 1 String SQL Injection)

  • 使用admin帳戶Neville登錄
  • 首先在密碼欄中輸入' or 1=1 -- 進行永真式SQL注入,可是登陸失敗
  • 查看網頁代碼發現弒密碼長度設置過短,將密碼長度修長
  • 再次輸入' or 1=1 --,成功

    10.LAB:SQL Injection(Stage 3:Numeric SQL Injection)

  • 登錄使用employee帳號Larry登錄
  • 首先作上一個實驗修改密碼限制長度的操做
  • 點擊ViewProfile,發現並無辦法使老闆排在最前面
  • 更改網頁代碼,將ViewProfile參數改爲以下
  • 再次' or 1=1 --登錄,成功

    記錄


相關文章
相關標籤/搜索