實驗9 基于WebGoat平臺的SQL注入攻擊

實驗9 基于WebGoat平臺的SQL注入攻擊

1.實驗目的
熟悉WebGoat平臺,在該平臺上實現SQL注入攻擊。
2.實驗內容
(1)下載webgoat-server-8.2.2.jar。
(2)搭建java環境。
(3)運行webgoat。
(4)實施SQL注入攻擊。
3.實驗步驟
(將實驗過程及運行結果截圖放入實驗報告中)
啟動webgoat
在這里插入圖片描述
第九題
在這里插入圖片描述

第十題
在這里插入圖片描述

第十一題
在這里插入圖片描述

第十二題
在這里插入圖片描述

第十三題
在這里插入圖片描述

4.實驗思考
(1)舉例說明SQL 注入攻擊發生的原因。
SQL注入攻擊發生的原因通常在于應用程序對用戶輸入的處理不當,未能正確區分用戶輸入的數據和SQL代碼。
假設有一個簡單的Web應用程序,它使用以下PHP代碼來根據用戶提供的用戶名查詢數據庫中的用戶信息:

 <?php $username = $_GET['username']; // 從URL獲取用戶輸入的用戶名 $query = "SELECT * FROM users WHERE username = '$username'"; $result = mysqli_query($connection, $query); ?> 

在這個例子中,如果用戶通過URL提供以下輸入:

 http://example.com/search.php?username=' OR '1'='1 

那么拼接后的SQL查詢將變成:

 SELECT * FROM users WHERE username = '' OR '1'='1' 

由于條件’1’='1’總是為真,這個查詢將返回users表中的所有記錄,而不僅僅是具有指定用戶名的記錄。這就是一個典型的SQL注入攻擊示例,它利用了應用程序對用戶輸入處理不當的漏洞。

(2)從信息的CIA 三要素(機密性、完整性、可用性)出發,舉例說明SQL 注入攻擊造成的破壞。
一、機密性破壞
案例:攻擊者可以通過構造惡意的SQL語句,繞過正常的身份驗證和授權機制,獲取到未經授權的數據。例如,攻擊者可能通過拼接字符串,使得SQL語句中有條件永遠為真,從而無需判斷其他條件就能查看數據庫里全部人的信息。這些信息可能包括用戶賬號、密碼、個人資料等敏感數據。
二、完整性破壞
案例:攻擊者可以通過修改查詢條件或執行惡意的更新語句來篡改數據庫中的數據。例如,攻擊者可以在SQL語句執行的時候更改其他數據,如將某用戶的salary修改為$100,或者刪除某些重要記錄,這將破壞數據的完整性,并可能影響業務流程的正常運作。
三、可用性破壞
案例:攻擊者可以通過發送惡意的SQL查詢或指令,消耗數據庫系統的資源,導致其無法正常響應合法用戶的請求。例如,攻擊者可以通過注入惡意的SQL代碼來刪除數據庫中的重要表或數據,或者通過注入惡意代碼來使數據庫服務器崩潰或拒絕服務。這將導致數據庫系統的服務不可用,從而影響系統的正常運行和用戶的正常使用。

(3)通過表單輸入用戶名來查詢特定用戶信息,寫出獲得表格中所有用戶信息的SQL語句。

SELECT * FROM user_data WHERE first_name = 'John' AND last_name =  ' Smith'  or '1'='1 ' ;

(4)如果想修改“Bob”用戶的salary為$100,應該寫怎樣的SQL語句?

SELECT * FROM employees WHERE last_name = 'sadf' AND auth_tan = ' ';update employees set salary = 100 where first_name = ‘Bob’and last_name = ‘Brant';

(5)如果想破壞employees的可用性,應該寫怎樣的SQL語句?

SELECT * FROM user_data WHERE login_count ='  '; drop table access_log; 

(6)怎樣預防和避免SQL 注入攻擊。
嚴格輸入驗證:對用戶輸入的數據進行嚴格驗證,確保其符合預期格式和范圍。使用正則表達式或其他驗證工具來檢查輸入數據的有效性。
輸入過濾:過濾掉用戶輸入中的特殊字符和潛在的危險字符,如單引號、雙引號、分號等。
預編譯SQL語句:使用預編譯的SQL語句和參數綁定技術,將用戶輸入作為參數傳遞給SQL語句,而不是直接拼接到SQL語句中。
存儲過程:在可能的情況下,使用存儲過程來執行數據庫操作。
限制數據庫用戶權限:確保數據庫用戶只具有執行必要操作的最低權限。避免使用具有超級用戶權限的數據庫賬戶來運行應用程序。
應用程序與數據庫分離:將應用程序與數據庫服務器分離,通過中間層或API進行通信。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895260.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895260.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

StochSync:可在任意空間中生成360°全景圖和3D網格紋理

StochSync方法可以用于在任意空間中生成圖像&#xff0c;尤其是360全景圖和3D網格紋理。該方法利用了預訓練的圖像擴散模型&#xff0c;以實現零-shot生成&#xff0c;消除了對新數據收集和單獨訓練生成模型的需求。StochSync 結合了 Diffusion Synchronization&#xff08;DS&…

研發管理知識

定義 研發管理是對研發活動進行有效的計劃、組織、領導和控制的過程&#xff0c;旨在通過合理配置資源、協調團隊工作、監控項目進度和質量等&#xff0c;確保研發項目能夠按時、按質、按量完成&#xff0c;實現企業的技術創新和產品升級目標&#xff0c;增強企業的核心競爭力。…

HarmonyOS 5.0應用開發——全局自定義彈出框openCustomDialog

【高心星出品】 文章目錄 全局自定義彈出框openCustomDialog案例開發步驟完整代碼 全局自定義彈出框openCustomDialog CustomDialog是自定義彈出框&#xff0c;可用于廣告、中獎、警告、軟件更新等與用戶交互響應操作。開發者可以通過CustomDialogController類顯示自定義彈出框…

AOS安裝及操作演示

文章目錄 一、安裝node1.1 在 macOS 上管理 Node版本1.1.1 安裝 nvm1.1.2 驗證 nvm 是否安裝成功1.1.3 使用 nvm 安裝/切換 Node.js 版本1.1.4 卸載 Node.js 版本 1.2 在 windows 上管理 Node版本1.2.1 安裝 nvm-windows1.2.2 安裝 Node.js 版本1.2.3 切換 Node.js 版本1.2.4 卸…

DeepSeek模型R1服務器繁忙,怎么解決?

在當今科技飛速發展的時代&#xff0c;人工智能領域不斷涌現出令人矚目的創新成果&#xff0c;其中DeepSeek模型無疑成為了眾多關注焦點。它憑借著先進的技術和卓越的性能&#xff0c;在行業內掀起了一股熱潮&#xff0c;吸引了無數目光。然而&#xff0c;如同許多前沿技術在發…

AIGC-微頭條爆款文案創作智能體完整指令(DeepSeek,豆包,千問,Kimi,GPT)

Unity3D特效百例案例項目實戰源碼Android-Unity實戰問題匯總游戲腳本-輔助自動化Android控件全解手冊再戰Android系列Scratch編程案例軟考全系列Unity3D學習專欄藍橋系列AIGC(GPT、DeepSeek、豆包、千問、Kimi)??關于作者 專注于Android/Unity和各種游戲開發技巧,以及各種資…

[LLM面試題] 指示微調(Prompt-tuning)與 Prefix-tuning區別

一、提示調整(Prompt Tuning) Prompt Tuning是一種通過改變輸入提示語&#xff08;input prompt&#xff09;以獲得更優模型效果的技術。舉個例子&#xff0c;如果我們想將一條英語句子翻譯成德語&#xff0c;可以采用多種不同的方式向模型提問&#xff0c;如下圖所示&#xf…

CSS 性能優化全攻略:提升網站加載速度與流暢度

系列文章目錄 01-從零開始學CSS選擇器&#xff1a;屬性選擇器與偽類選擇器完全指南 02-避免樣式沖突&#xff1a;掌握CSS選擇器優先級與層疊規則的終極指南 03-如何精確掌控網頁布局&#xff1f;深入解析 CSS 樣式與盒模型 04-CSS 布局全面解析&#xff1a;從傳統浮動到現代 F…

自主項目面試點總結

1、許苑–OJ判題系統 技術棧&#xff1a;Spring BootSpring Cloud AlibabaRedisMybatisMQDocker 項目地址: https://github.com/xuyuan-upward/xyoj-backend-microservice 1.1、項目介紹: 一個基于微服務的OJ系統&#xff0c;具備能夠根據管理員預設的題目用例對用戶提交的代…

12.推薦系統的前沿技術

接下來我們將學習推薦系統的前沿技術。推薦系統是一個快速發展的領域&#xff0c;許多新技術和新方法不斷涌現&#xff0c;進一步提升了推薦系統的性能和效果。在這一課中&#xff0c;我們將介紹以下內容&#xff1a; 圖神經網絡&#xff08;GNN&#xff09;在推薦系統中的應用…

【py】python安裝教程(Windows系統,python3.13.2版本為例)

1.下載地址 官網&#xff1a;https://www.python.org/ 官網下載地址&#xff1a;https://www.python.org/downloads/ 2.64版本或者32位選擇 【Stable Releases】&#xff1a;穩定發布版本&#xff0c;指的是已經測試過的版本&#xff0c;相對穩定。 【Pre-releases】&#…

CEF132 編譯指南 MacOS 篇 - depot_tools 安裝與配置 (四)

1. 引言 在 CEF132&#xff08;Chromium Embedded Framework&#xff09;的編譯過程中&#xff0c;depot_tools 扮演著舉足輕重的角色。這套由 Chromium 項目精心打造的腳本和工具集&#xff0c;專門用于獲取、管理和更新 Chromium 及其相關項目&#xff08;包括 CEF&#xff…

1312:【例3.4】昆蟲繁殖

1312&#xff1a;【例3.4】昆蟲繁殖 時間限制: 1000 ms 內存限制: 65536 KB 提交數:60386 通過數: 29787 【題目描述】 科學家在熱帶森林中發現了一種特殊的昆蟲&#xff0c;這種昆蟲的繁殖能力很強。每對成蟲過xx個月產yy對卵&#xff0c;每對卵要過兩個月長成成蟲…

Linux防火墻設置

目錄 Ubuntu防火墻&#xff08;UFW&#xff09;常用設置 1. 查看防火墻狀態 2. 開啟/關閉防火墻 3. 管理端口 4. 管理IP地址 5. 服務管理 CentOS防火墻&#xff08;firewalld&#xff09;常用設置 1. 查看防火墻狀態 2. 啟動/關閉防火墻 3. 設置開機啟動 4. 管理端口…

Git 日志查看與版本回溯

引言 在軟件開發的漫漫長路中&#xff0c;代碼就如同我們搭建軟件大廈的基石&#xff0c;而 Git 則是一位默默守護并精心管理這些基石的 “管家”。它不僅能記錄代碼的每一次變動&#xff0c;還提供了強大的日志查看和版本回溯功能&#xff0c;這些功能就像是給開發者配備了一…

針對Prompt優化的深入分析

一、針對Prompt優化的深入分析 1. 結構化設計 技術原理&#xff1a; 大語言模型&#xff08;LLMs&#xff09;本質是基于概率的序列生成器&#xff0c;結構化模板通過顯式定義輸出框架&#xff08;如角色、段落數、連接詞&#xff09;&#xff0c;利用模型的模式匹配能力&…

fps動作系統9:動畫音頻

文章目錄 動畫音頻創建音頻藍圖cue音量乘數 音效衰減衰減空間 綁定到動畫動畫序列軌道 動畫音頻 創建音頻藍圖 cue 音量乘數 音量大小 音效衰減 空間音效 衰減 空間 綁定到動畫 動畫序列 軌道 橫著的方向是有不同的軌道的&#xff0c;陰影的就是。

TensorRT【詳解】

文章目錄 1、 1、 參考&#xff1a; 1、nVidia TensorRT pytorch Docker 下載&#xff1a;https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch/tags 2、nVidia TensorRT pytorch Docker 版本講解&#xff1a;https://docs.nvidia.com/deeplearning/frameworks/py…

解決QTimer報“Timers cannot be started from another thread“錯誤

今天在Qt編程時&#xff0c;將QTimer在子線程里執行start()函數&#xff0c;遇到“Timers cannot be started from another thread”問題&#xff0c;使用了如下AI工具&#xff0c;進行查詢&#xff1a; ? ? 提示詞A&#xff1a;“C QTimer 如何跨線程” ? ? 提示詞B&#…

【AI知識點】苦澀的教訓 The Bitter Lesson by Rich Sutton(2019)

【AI論文解讀】【AI知識點】【AI小項目】【AI戰略思考】【AI日記】【讀書與思考】【AI應用】 “The Bitter Lesson” 是由 Richard Sutton&#xff08;強化學習領域的先驅之一&#xff09;提出的一個概念&#xff0c;指的是機器學習領域在長期發展過程中&#xff0c;尤其是在強…