实验9 基于WebGoat平台的SQL注入攻击

news2025/2/12 9:50:33

实验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.coloradmin.cn/o/2296765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多光谱技术在华为手机上的应用发展历史

2018 年&#xff0c;华为 P20 系列首次搭载 5 通道色温传感器&#xff0c;可帮助手机在不同光照条件下保持画面色彩一致性。 2020 年&#xff0c;华为 P40 系列搭载 8 通道多光谱色温传感器&#xff08;实际为 11 通道&#xff0c;当时只用 8 个通道检测可见光&#xff09;&am…

如何免费白嫖 Deepseek API 接口

今天我将教大家如何利用网络空间测绘搜索引擎「Fofa」来寻找已经部署并开放 Deepseek 接口的服务。以下是详细步骤&#xff1a; 1. 访问 Fofa 搜索引擎 首先&#xff0c;打开 Fofa 搜索引擎的网站&#xff1a;https://fofa.info 2. 搜索开放的 Deepseek 接口 在搜索框中输入…

SaaS+AI应用架构:业务场景、智能体、大模型、知识库、传统工具系统

SaaSAI应用架构&#xff1a;业务场景、智能体、大模型、知识库、传统工具系统 大家好&#xff0c;我是汤师爷~ 在SaaS与AI应用的演进过程中&#xff0c;合理的架构设计至关重要。本节将详细介绍其五个核心层次&#xff1a; 业务场景层&#xff1a;发现和确定业务场景智能体层…

ios通过xib创建控件

之前写过ios动态创建控件及添加事件&#xff0c;纯手工代码写控件&#xff0c;虽然比较灵活&#xff0c;但是就是代码量比较多。这次我们通过xib来创建app下载列表项 AppView.xib。一个imageview,一个label,一个button构成 1.创建AppView.xib 2.再创建xib对应的mode&#xff0…

【树莓派Pico设备驱动】-WS2812B全彩LED驱动(基于SPI)

WS2812B全彩LED驱动(基于SPI) 文章目录 WS2812B全彩LED驱动(基于SPI)1、WS2812介绍2、WS2812配置4、驱动实现1、WS2812介绍 WS2812/WS2812B LED 使用 24 位来表示绿色、红色和蓝色值。 WS2812采用单线通信的设计,通信协议为非归零编码,每个LED需要24个bit的数据,数据依…

AIGC-微头条爆款文案创作智能体完整指令(DeepSeek,豆包,千问,Kimi,GPT)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi)👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资…

2025届优秀创新大数据毕业设计

吊打导师的大数据毕业设计项目 985华南理工大学学长 大厂全栈&#xff0c;大数据开发工程师 专注定制化开发

解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题

解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题 1. 安装ComfyUI-Impact-Pack 首先确保ComfyUI-Impact-Pack 已经下载 地址: https://github.com/ltdrdata/ComfyUI-Impact-Pack 2. 安装ComfyUI-Impact-Subpack 由于新版本的Impact Pack 不再提供这…

SpringBoot中的Javaconfig

为什么要使用Javaconfig&#xff1f; 如果要声明的bean对象&#xff0c;来自于第三方jar包&#xff08;不是自定义的&#xff09;&#xff0c;无法使用Component 及衍生注解来声明bean&#xff0c;因为第三方的jar一般不可写&#xff0c;需要使用注解Configuration和Bean注解来…

【前端】几种常见的跨域解决方案代理的概念

几种常见的跨域解决方案&代理的概念 一、常见的跨域解决方案1. 服务端配置CORS&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff1a;2. Nginx代理3. Vue CLI配置代理&#xff1a;4 .uni-app在manifest.json中配置代理来解决&#xff1a;5. 使用WebSocket通讯…

Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程

系统版本&#xff1a;Windows 11 依赖环境&#xff1a;Anaconda3 运行软件&#xff1a;PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…

基于java手机销售网站设计和实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

如何评估云原生GenAI应用开发中的安全风险(下)

以上就是如何评估云原生GenAI应用开发中的安全风险系列中的上篇内容&#xff0c;在本篇中我们介绍了在云原生AI应用开发中不同层级的风险&#xff0c;并了解了如何定义AI系统的风险。在本系列下篇中我们会继续探索我们为我们的云原生AI应用评估风险的背景和意义&#xff0c;并且…

使用WebUI访问本地Deepseek(Ollama集成Open WebUI)

在《deepseek本地部署和使用&#xff08;Linux虚拟机&#xff09;》中&#xff0c;我们使用Ollama部署了Deepseek-r1&#xff0c;但是只能通过命令行方式交互&#xff0c;默认Ollama启动后&#xff0c;会启动一个监听到127.0.0.1&#xff0c;用以接收POST 请求&#xff0c;服务…

Word成功接入DeepSeek详细步骤

原理 原理是利用Word的VBA宏&#xff0c;写代码接入API。无需下载额外插件。 步骤一、注册硅基流动 硅基流动统一登录 注册这个是为了有一个api调用的api_key&#xff0c;有一些免费的额度可以使用。大概就是这个公司提供token&#xff0c;我们使用这个公司的模型调用deepsee…

房价预测/矿藏勘探/自然灾害预测……AI助力地球科学革新,浙大/清华/Google Research等已发表重要成果

地球科学作为一个高度跨学科的领域&#xff0c;正在经历一场由 AI 引领的重大变革。回顾 2024 年&#xff0c;研究人员在智慧城市建设、房价预测、海洋生态建模、地面沉降预测、洪水预测、山体滑坡预测、矿物预测等方面取得了一系列突破性成果。这些研究不仅展现了 AI 在处理复…

Linux网络编程--Udp套接字+实战 (万字详解,超详细!!)

目录 套接字协议&#xff1a; 协议(protocol)&#xff1a; 创建套接字(Create Socket): 绑定服务器地址 开始通信 Udp服务器设计--V1 Udp服务器设计--V2 引入进程池 待更新 套接字协议&#xff1a; 协议(protocol)&#xff1a; 如果2个距离很远的人想要进行交流&#xff…

玩转工厂模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 什么是工厂模式?工厂方法模式适合应用场景实现方式工厂方法模式优缺点什么是工厂模式? 工厂方法模式是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。…

开箱即用:一个易用的开源表单工具!

随着互联网的普及&#xff0c;表单应用场景越来越广泛&#xff0c;从网站注册、调查问卷到考试测评&#xff0c;无处不在。传统的表单制作方式需要一定的代码基础&#xff0c;对于不懂编程的小伙伴来说&#xff0c;无疑是一道门槛。 今天&#xff0c;给大家分享一款开源的表单…

基于微信小程序的博物馆预约系统的设计与实现

hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生…