SQL注入攻击详解ppt课件.ppt

上传人:飞****2 文档编号:77717855 上传时间:2023-03-16 格式:PPT 页数:32 大小:186.50KB
返回 下载 相关 举报
SQL注入攻击详解ppt课件.ppt_第1页
第1页 / 共32页
SQL注入攻击详解ppt课件.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《SQL注入攻击详解ppt课件.ppt》由会员分享,可在线阅读,更多相关《SQL注入攻击详解ppt课件.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益SQL 注入攻击华中科技大学计算机学院为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益问问 题题1.什么是什么是SQL注入攻击?注入攻击?2.SQL注入攻击的分类?注入攻击的分类?3.SQL注入攻击的危害?注入攻击的危害?4.常见的常见的SQL 注入攻击的过程注入攻击的过程?5.怎样防止怎样防止SQL注入攻击?注入攻击?6.我们介绍我们介绍SQL注入攻击的目的注入攻击的目的为了规范事业单位聘用关系,建立和完善适应

2、社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益1.什么是什么是SQL注入攻击?注入攻击?n n不够完整的定义不够完整的定义不够完整的定义不够完整的定义:脚本注入式攻击,恶意用户输入用来影响被执行的脚本注入式攻击,恶意用户输入用来影响被执行的脚本注入式攻击,恶意用户输入用来影响被执行的脚本注入式攻击,恶意用户输入用来影响被执行的SQLSQL脚脚脚脚本本本本;从一个数据库获得未经授权的访问和直接检索;从一个数据库获得未经授权的访问和直接检索;从一个数据库获得未经授权的访问和直接检索;从一个数据库获得未经授权的访问和直接检索;n n利用利用利用利用SQLSQL语法,针对

3、语法,针对语法,针对语法,针对应用程序开发者编程中的漏洞应用程序开发者编程中的漏洞应用程序开发者编程中的漏洞应用程序开发者编程中的漏洞,往应用程序中插入一些往应用程序中插入一些往应用程序中插入一些往应用程序中插入一些SQLSQL语句成分或者语句成分或者语句成分或者语句成分或者SQLSQL语句,语句,语句,语句,从而能够操作不可访问的数据的方法。从而能够操作不可访问的数据的方法。从而能够操作不可访问的数据的方法。从而能够操作不可访问的数据的方法。通过在通过在通过在通过在应用程序应用程序应用程序应用程序中预先定义好的中预先定义好的中预先定义好的中预先定义好的查询语句结尾加上额外的查询语句结尾加上额

4、外的查询语句结尾加上额外的查询语句结尾加上额外的SQLSQL语句元素语句元素语句元素语句元素,使得数据库服务器执行非授权的查询。,使得数据库服务器执行非授权的查询。,使得数据库服务器执行非授权的查询。,使得数据库服务器执行非授权的查询。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益1.什么是什么是SQL注入攻击?注入攻击?一个实例一个实例一个实例一个实例n n例例例例1 1:现现现现有有有有的的的的多多多多数数数数网网网网络络络络应应应应用用用用程程程程序序序序,没没没没有有有有充充充充分分分分利利利利用用用用DBMSDBM

5、S的的的的身身身身份份份份验验验验证证证证功功功功能能能能,而而而而是是是是在在在在数数数数据据据据库库库库中中中中建建建建立立立立一一一一张张张张表表表表(例例例例如如如如表表表表名名名名为为为为user_table)user_table),保保保保存存存存访访访访问问问问应应应应用用用用系系系系统统统统的的的的用用用用户户户户名名名名及及及及其其其其密密密密码码码码,实实实实际际际际访访访访问数据库服务器的只有一个用户。问数据库服务器的只有一个用户。问数据库服务器的只有一个用户。问数据库服务器的只有一个用户。当当当当使使使使用用用用JSP(JSP(或或或或ASP)ASP)编编编编写写写写一

6、一一一个个个个简简简简单单单单的的的的验验验验证证证证登登登登录录录录网网网网页页页页程程程程序序序序时时时时,该该该该页页页页面面面面要要要要求求求求用用用用户户户户输输输输入入入入用用用用户户户户名名名名(input_(input_ username)username)和和和和密密密密码码码码(input_password)(input_password)。提交后由后台应用程序通过拼接:提交后由后台应用程序通过拼接:提交后由后台应用程序通过拼接:提交后由后台应用程序通过拼接:select select*from from user_table user_table where where

7、username username=+input_ input_ username username+and and password password=+input_password input_password+;动态生成一个动态生成一个动态生成一个动态生成一个SQLSQL语句。语句。语句。语句。通过验证结果是否为空来判断用户是否为合法用户。通过验证结果是否为空来判断用户是否为合法用户。通过验证结果是否为空来判断用户是否为合法用户。通过验证结果是否为空来判断用户是否为合法用户。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权

8、益1.什么是什么是SQL注入攻击?注入攻击?一个实例一个实例一个实例一个实例n n攻击方法攻击方法攻击方法攻击方法:在密码框输入:在密码框输入:在密码框输入:在密码框输入:or 1=1 or 1=1,在用户名框输入在用户名框输入在用户名框输入在用户名框输入:zhuhong:zhuhong 后台应用程序组装的后台应用程序组装的后台应用程序组装的后台应用程序组装的SQLSQL语句是语句是语句是语句是:select*from user_table where username=zhuhong select*from user_table where username=zhuhong and pass

9、word=or 1=1;and password=or 1=1;n n这个语句的执行结果是什么?这个语句的执行结果是什么?这个语句的执行结果是什么?这个语句的执行结果是什么?n n讨论讨论讨论讨论:针对本例解决的办法?针对本例解决的办法?针对本例解决的办法?针对本例解决的办法?更为常见的例子:更为常见的例子:更为常见的例子:更为常见的例子:http:/mysite/studetails.asp?StuID=4http:/mysite/studetails.asp?StuID=4为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益1

10、.什么是什么是SQL注入攻击?注入攻击?n n实质实质实质实质:在一个在一个在一个在一个有漏洞的网络应用程序有漏洞的网络应用程序有漏洞的网络应用程序有漏洞的网络应用程序中,允许用户中,允许用户中,允许用户中,允许用户输入查询条输入查询条输入查询条输入查询条件件件件,并将查询条件嵌入到,并将查询条件嵌入到,并将查询条件嵌入到,并将查询条件嵌入到SQLSQL请求语句中,发送到与该请求语句中,发送到与该请求语句中,发送到与该请求语句中,发送到与该应用程序相关联的数据库服务器中去执行。应用程序相关联的数据库服务器中去执行。应用程序相关联的数据库服务器中去执行。应用程序相关联的数据库服务器中去执行。攻击

11、者通过攻击者通过攻击者通过攻击者通过构造一些畸形的输入构造一些畸形的输入构造一些畸形的输入构造一些畸形的输入,实现操作这种请求语,实现操作这种请求语,实现操作这种请求语,实现操作这种请求语句去获取未知的结果。句去获取未知的结果。句去获取未知的结果。句去获取未知的结果。SQLSQL注入不是数据库或者注入不是数据库或者注入不是数据库或者注入不是数据库或者WebWeb服务器的问题,而是服务器的问题,而是服务器的问题,而是服务器的问题,而是WebWeb应用中的漏洞或者缺陷应用中的漏洞或者缺陷应用中的漏洞或者缺陷应用中的漏洞或者缺陷为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工

12、作人员聘用制度,保障用人单位和职工的合法权益2.SQL注入攻击的分类?注入攻击的分类?n nIntroduction to SQL Injection Attacks for Oracle Introduction to SQL Injection Attacks for Oracle DevelopersDevelopers将将将将OracleOracle数据库中的数据库中的数据库中的数据库中的SQLSQL注入攻击分注入攻击分注入攻击分注入攻击分为为为为4 4类类类类:SQL Manipulation(SQLSQL Manipulation(SQL操纵操纵操纵操纵)Code Injectio

13、n(Code Injection(代码注入代码注入代码注入代码注入)Function Call(Function Call(函数调用函数调用函数调用函数调用)Buffer Overflows(Buffer Overflows(缓冲区溢出缓冲区溢出缓冲区溢出缓冲区溢出)为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益2.SQL注入攻击的分类?注入攻击的分类?n nSQL Manipulation(SQLSQL Manipulation(SQL操纵操纵操纵操纵)最最最最常常常常见见见见的的的的一一一一种种种种SQLSQL注注注注入

14、入入入攻攻攻攻击击击击方方方方法法法法。攻攻攻攻击击击击者者者者一一一一般般般般试试试试图图图图通通通通过过过过增增增增加加加加wherewhere子子子子句句句句中中中中的的的的条条条条件件件件或或或或者者者者用用用用集集集集合合合合操操操操作作作作符符符符(如如如如UNIONUNION、INTERSECTIONINTERSECTION或或或或 MINUS)MINUS)扩扩扩扩 展展展展 SQLSQL语语语语 句句句句,达达达达 到到到到 修修修修 改改改改SQLSQL语句的目的。语句的目的。语句的目的。语句的目的。n n例例例例2 2:select select product_name

15、product_name from from all_products all_products where where product_ product_ name like%name like%chairschairs%;攻击者可以让上面的攻击者可以让上面的攻击者可以让上面的攻击者可以让上面的SQLSQL语句变成:语句变成:语句变成:语句变成:select select product_name product_name from from all_products all_products where where product_ product_ name name like like

16、%chairs chairs UNION UNION select select username username FROM FROM dba_users where username like dba_users where username like%;使用使用使用使用UNION SELECTUNION SELECT还要求还要求还要求还要求当前语句和最初的语句查询的当前语句和最初的语句查询的当前语句和最初的语句查询的当前语句和最初的语句查询的信息必须具有相同数据类型信息必须具有相同数据类型信息必须具有相同数据类型信息必须具有相同数据类型,不然就会出错,不然就会出错,不然就会出错,不然就会

17、出错为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益2.SQL注入攻击的分类?注入攻击的分类?n nCode Injection(Code Injection(代码注入代码注入代码注入代码注入)SQLSQL注注注注入入入入攻攻攻攻击击击击者者者者试试试试图图图图向向向向现现现现有有有有的的的的SQLSQL语语语语句句句句中中中中增增增增加加加加额额额额外外外外的的的的SQLSQL语句或者命令语句或者命令语句或者命令语句或者命令。攻击攻击攻击攻击Microsoft SQL ServerMicrosoft SQL Server数据

18、库应用程序数据库应用程序数据库应用程序数据库应用程序n n例例例例:select select*from from users users where where username=bob username=bob and and password=password=mypassword;mypassword;delete delete form form users users where where username username=admin=admin;在在在在SQL-ServerSQL-Server中中中中可可可可能能能能注注注注入入入入成成成成功功功功,但但但但在在在在Oracl

19、eOracle中中中中会会会会报报报报错错错错。原原原原因在于因在于因在于因在于SQL ServerSQL Server支持多句执行,而支持多句执行,而支持多句执行,而支持多句执行,而OracleOracle不允许。不允许。不允许。不允许。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益2.SQL注入攻击的分类?注入攻击的分类?n nCode Injection(Code Injection(代码注入代码注入代码注入代码注入)OracleOracle中中中中一一一一些些些些动动动动态态态态执执执执行行行行的的的的匿匿匿匿名名名

20、名存存存存储储储储过过过过程程程程,对对对对于于于于代代代代码码码码注注注注入入入入攻攻攻攻击十分脆弱。击十分脆弱。击十分脆弱。击十分脆弱。n n例例例例4 4:在一个:在一个:在一个:在一个WebWeb应用程序中执行的存储过程应用程序中执行的存储过程应用程序中执行的存储过程应用程序中执行的存储过程:BEGIN BEGIN ENCRYPT_PASSWORD ENCRYPT_PASSWORD(bobbob,mypass mypass wordword););END;END;BEGIN BEGIN ENCRYPT_PASSWORD ENCRYPT_PASSWORD(bobbob,mypass my

21、pass wordword););DELETE DELETE FROM FROM users users WHERE WHERE upper upper(username)(username)=upper(upper(adminadmin);END);END为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益2.SQL注入攻击的分类?注入攻击的分类?n nFunction Call (Function Call (函数调用函数调用函数调用函数调用)将将将将数数数数据据据据库库库库函函函函数数数数或或或或者者者者自自自自定定定定义义

22、义义函函函函数数数数插插插插入入入入到到到到一一一一个个个个脆脆脆脆弱弱弱弱的的的的SQLSQL语语语语句句句句中中中中。这这这这些些些些函函函函数数数数调调调调用用用用可可可可以以以以调调调调用用用用操操操操作作作作系系系系统统统统或或或或操操操操作作作作数数数数据据据据库库库库中中中中的的的的数数数数据据据据。如如如如OracleOracle数据库允许函数作为数据库允许函数作为数据库允许函数作为数据库允许函数作为SQLSQL语句的一部分来执行。语句的一部分来执行。语句的一部分来执行。语句的一部分来执行。n n例例例例5 5:SELECT SELECT TRANSLATE(TRANSLATE

23、(user user inputinput,uf,uf,ar)ar)FROM FROM dual;dual;调用调用调用调用OracleOracle数据库函数的注入方式如下:数据库函数的注入方式如下:数据库函数的注入方式如下:数据库函数的注入方式如下:SELECT TRANSLATE(SELECT TRANSLATE(|UTL_HTTP.REQUEST|UTL_HTTP.REQUEST(http:/202.114.1.180/|(http:/202.114.1.180/|,uf,ar)FROM dual;,uf,ar)FROM dual;改变的改变的改变的改变的SQLSQL语句可以向一个语句可

24、以向一个语句可以向一个语句可以向一个WEBWEB服务器请求一个页面。服务器请求一个页面。服务器请求一个页面。服务器请求一个页面。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益2.SQL注入攻击的分类?注入攻击的分类?n nFunction Call (函数调用函数调用)调用调用调用调用自定义的函数自定义的函数自定义的函数自定义的函数也可以实现也可以实现也可以实现也可以实现SQLSQL注入,注入,注入,注入,如下:如下:如下:如下:SELECT SELECT TRANSLATE(TRANSLATE(|myappadmin.ad

25、duser|myappadmin.adduser(admin,newpass)|(admin,newpass)|,uf,ar)FROM dual;,uf,ar)FROM dual;n n攻击者可以创建一个新的用户攻击者可以创建一个新的用户攻击者可以创建一个新的用户攻击者可以创建一个新的用户n nBuffer Overflows(缓冲区溢出缓冲区溢出)通通通通过过过过缓缓缓缓冲冲冲冲区区区区溢溢溢溢出出出出,实实实实现现现现代代代代码码码码或或或或SQLSQL语语语语句句句句的的的的注注注注入入入入,通常采用的方法是函数调用。通常采用的方法是函数调用。通常采用的方法是函数调用。通常采用的方法是函

26、数调用。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益3.SQL注入攻击的危害注入攻击的危害n n在风险方面,在风险方面,SQL注入攻击对数据库的危害注入攻击对数据库的危害是位居前列的,与缓冲区溢出等漏洞基本相是位居前列的,与缓冲区溢出等漏洞基本相当。当。如果要实施缓冲区溢出攻击,攻击者必须首先能如果要实施缓冲区溢出攻击,攻击者必须首先能如果要实施缓冲区溢出攻击,攻击者必须首先能如果要实施缓冲区溢出攻击,攻击者必须首先能绕过站点的防火墙。绕过站点的防火墙。绕过站点的防火墙。绕过站点的防火墙。一旦网络应用程序有注入漏洞,一旦网

27、络应用程序有注入漏洞,一旦网络应用程序有注入漏洞,一旦网络应用程序有注入漏洞,攻击者就可以直攻击者就可以直攻击者就可以直攻击者就可以直接访问数据库进而能够获得数据库所在的服务器接访问数据库进而能够获得数据库所在的服务器接访问数据库进而能够获得数据库所在的服务器接访问数据库进而能够获得数据库所在的服务器的访问权,的访问权,的访问权,的访问权,因此在因此在因此在因此在某些情况下某些情况下某些情况下某些情况下,SQLSQL注入攻击的注入攻击的注入攻击的注入攻击的风险要高于所有其他漏洞。风险要高于所有其他漏洞。风险要高于所有其他漏洞。风险要高于所有其他漏洞。为了规范事业单位聘用关系,建立和完善适应社会

28、主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程n n假设假设:在攻击前,在攻击前,在攻击前,在攻击前,对网络应用程序、数据库类型、表结对网络应用程序、数据库类型、表结对网络应用程序、数据库类型、表结对网络应用程序、数据库类型、表结构等信息都一无所知构等信息都一无所知构等信息都一无所知构等信息都一无所知,这些信息都需要在注入的,这些信息都需要在注入的,这些信息都需要在注入的,这些信息都需要在注入的过程中通过探测获得;过程中通过探测获得;过程中通过探测获得;过程中通过探测获得;被攻击的网络应用程序被攻击的网络应用程序被攻

29、击的网络应用程序被攻击的网络应用程序存在注入漏洞存在注入漏洞存在注入漏洞存在注入漏洞。n n过程:过程:确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞n n识别错误;定位错误;确定注入点识别错误;定位错误;确定注入点识别错误;定位错误;确定注入点识别错误;定位错误;确定注入点实施注入攻击实施注入攻击实施注入攻击实施注入攻击n n确定符合确定符合确定符合确定符合SQLSQL语法的注入语法的注入语法的注入语法的注入语句;语句;语句;语句;判断数据库的判断数据库的判断数据库的判断数据库的类型类型类型类型;构造构造构造构造注入利用注入利用注入利用注入利用代码代码代码代码为了规范事业单位聘用关系,建立

30、和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 n n识别错误识别错误网络应用程序产生的错误网络应用程序产生的错误 缺陷无处不在,检查所有的输入点:缺陷无处不在,检查所有的输入点:.Web表单的域;表单的域;.URL查询串中的脚本参数;查询串中的脚本参数;.Cookie中的值或者隐藏的域中的值或者隐藏的域 为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过

31、程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 n n识别错误识别错误网络应用程序产生的错误网络应用程序产生的错误攻击者首先必须能确立一些与服务器产生的错误相关攻击者首先必须能确立一些与服务器产生的错误相关攻击者首先必须能确立一些与服务器产生的错误相关攻击者首先必须能确立一些与服务器产生的错误相关的提示类型。的提示类型。的提示类型。的提示类型。n n尽管错误信息本身已被屏蔽,网络应用程序仍然尽管错误信息本身已被屏蔽,网络应用程序仍然尽管错误信息本身已被屏蔽,网络应用程序仍然尽管错误信息本身已被屏蔽,网络应用程序仍然具有能区分正确请求和错误请求的能力,攻击者具有能区分正确请求和

32、错误请求的能力,攻击者具有能区分正确请求和错误请求的能力,攻击者具有能区分正确请求和错误请求的能力,攻击者只需要学习去识别这些提示,寻找相关错误,并只需要学习去识别这些提示,寻找相关错误,并只需要学习去识别这些提示,寻找相关错误,并只需要学习去识别这些提示,寻找相关错误,并确认其是否和确认其是否和确认其是否和确认其是否和SQLSQL相关。相关。相关。相关。攻击者会首先攻击者会首先攻击者会首先攻击者会首先尝试提交一些无效的请求尝试提交一些无效的请求尝试提交一些无效的请求尝试提交一些无效的请求,并,并,并,并观察应用观察应用观察应用观察应用程序如何处理这些错误程序如何处理这些错误程序如何处理这些错

33、误程序如何处理这些错误,以及如果出现,以及如果出现,以及如果出现,以及如果出现SQLSQL错误会发错误会发错误会发错误会发生什么情况。生什么情况。生什么情况。生什么情况。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 n n识别错误识别错误识别错误识别错误由由由由WebWeb服务器产生的代码异常服务器产生的代码异常服务器产生的代码异常服务器产生的代码异常(exception)(exception),类似,类似,类似,类似于于于

34、于“500:Internal Server Error”500:Internal Server Error”;由应用程序代码产生的错误由应用程序代码产生的错误由应用程序代码产生的错误由应用程序代码产生的错误:应用程序考虑到可:应用程序考虑到可:应用程序考虑到可:应用程序考虑到可能会出现一些无效的情况,并分别为之产生了一能会出现一些无效的情况,并分别为之产生了一能会出现一些无效的情况,并分别为之产生了一能会出现一些无效的情况,并分别为之产生了一个特定的错误信息。个特定的错误信息。个特定的错误信息。个特定的错误信息。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用

35、制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 例例例例:有两个电子商务的应用程序有两个电子商务的应用程序有两个电子商务的应用程序有两个电子商务的应用程序,都使用都使用都使用都使用studetails.aspstudetails.asp的页面,该页的页面,该页的页面,该页的页面,该页面期待获得一个参数面期待获得一个参数面期待获得一个参数面期待获得一个参数StuIDStuID,即学号,获取该参数后,从数据,即学号,获取该参数后,从数据,即学号,获取该参数后,从数据,即学号,获取该参数后,从数据库中提取相应的学

36、生详细信息数据,然后对返回的结果进行库中提取相应的学生详细信息数据,然后对返回的结果进行库中提取相应的学生详细信息数据,然后对返回的结果进行库中提取相应的学生详细信息数据,然后对返回的结果进行一些处理。两个应用程序都是通过一个一些处理。两个应用程序都是通过一个一些处理。两个应用程序都是通过一个一些处理。两个应用程序都是通过一个学生列表页面学生列表页面学生列表页面学生列表页面上的链上的链上的链上的链接调用接调用接调用接调用studetails.aspstudetails.asp,因此能保证,因此能保证,因此能保证,因此能保证StuIDStuID一直都存在且有效。一直都存在且有效。一直都存在且有效

37、。一直都存在且有效。A A B B 认为这样就不会出现问题认为这样就不会出现问题认为这样就不会出现问题认为这样就不会出现问题 在对记录进行处理前在对记录进行处理前在对记录进行处理前在对记录进行处理前 对参数不做额外的检查对参数不做额外的检查对参数不做额外的检查对参数不做额外的检查.会确认记录的大小会确认记录的大小会确认记录的大小会确认记录的大小 若攻击者篡改了若攻击者篡改了若攻击者篡改了若攻击者篡改了StuIDStuID,是否会超过是否会超过是否会超过是否会超过0 0,如果,如果,如果,如果 输入了一个在数据表中不存在的输入了一个在数据表中不存在的输入了一个在数据表中不存在的输入了一个在数据表

38、中不存在的 是空记录,给出提示是空记录,给出提示是空记录,给出提示是空记录,给出提示学号,数据库就会返回一个空记录。学号,数据库就会返回一个空记录。学号,数据库就会返回一个空记录。学号,数据库就会返回一个空记录。错误:该学生不存在错误:该学生不存在错误:该学生不存在错误:该学生不存在 可能会出现异常,产生可能会出现异常,产生可能会出现异常,产生可能会出现异常,产生 或隐藏该错误,将页面或隐藏该错误,将页面或隐藏该错误,将页面或隐藏该错误,将页面 “500:Internal Server Error”500:Internal Server Error”。重新定位到学生列重新定位到学生列重新定位到

39、学生列重新定位到学生列 表的页面。表的页面。表的页面。表的页面。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 n n定位错误定位错误定位错误定位错误 攻击者试图定位由人为构造的输入而产生的错误信息攻击者试图定位由人为构造的输入而产生的错误信息攻击者试图定位由人为构造的输入而产生的错误信息攻击者试图定位由人为构造的输入而产生的错误信息,使用标准的使用标准的使用标准的使用标准的SQLSQL注入测试技术,独立地测试每个参数:注入测

40、试技术,独立地测试每个参数:注入测试技术,独立地测试每个参数:注入测试技术,独立地测试每个参数:n n添加一些添加一些添加一些添加一些SQLSQL关键字,如关键字,如关键字,如关键字,如OROR,ANDAND;n n添加一些字符,如添加一些字符,如添加一些字符,如添加一些字符,如“;”,“”。任何一个返回错误的参数都有可能存在任何一个返回错误的参数都有可能存在任何一个返回错误的参数都有可能存在任何一个返回错误的参数都有可能存在SQLSQL注入漏洞。注入漏洞。注入漏洞。注入漏洞。测试的结果是得到一个可疑的参数列表,剔除造成测试的结果是得到一个可疑的参数列表,剔除造成测试的结果是得到一个可疑的参数

41、列表,剔除造成测试的结果是得到一个可疑的参数列表,剔除造成SQLSQL无关的错误的参数。无关的错误的参数。无关的错误的参数。无关的错误的参数。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 n n确定注入点确定注入点确定注入点确定注入点 测试字符串参数的情形:字符串表达式是放在引号中的,测试字符串参数的情形:字符串表达式是放在引号中的,测试字符串参数的情形:字符串表达式是放在引号中的,测试字符串参数的情形:字符串表达式是放在引

42、号中的,因此需要阻断引号;不同的数据库服务器连结字符串的因此需要阻断引号;不同的数据库服务器连结字符串的因此需要阻断引号;不同的数据库服务器连结字符串的因此需要阻断引号;不同的数据库服务器连结字符串的语法不同,语法不同,语法不同,语法不同,MS SQL ServerMS SQL Server使用符号使用符号使用符号使用符号+,OracleOracle使用符号使用符号使用符号使用符号|。n n例例例例 6 6:http:/mysite/studetails.asp?http:/mysite/studetails.asp?StuName=zhuhongStuName=zhuhong 测试该参数:先

43、将其替换成一个无效的字符串,然后再测试该参数:先将其替换成一个无效的字符串,然后再测试该参数:先将其替换成一个无效的字符串,然后再测试该参数:先将其替换成一个无效的字符串,然后再替换成一个可能生成正确字符串的表达式替换成一个可能生成正确字符串的表达式替换成一个可能生成正确字符串的表达式替换成一个可能生成正确字符串的表达式n nSELECT*FROM students WHERE StuName=SELECT*FROM students WHERE StuName=zhuhongzhuhong 出错出错出错出错n nSELECT*FROM students WHERE StuName=SELEC

44、T*FROM students WHERE StuName=zhu+hongzhu+hong n n结论结论结论结论:参数参数参数参数StuNameStuName存在注入漏洞存在注入漏洞存在注入漏洞存在注入漏洞为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程确定注入漏洞确定注入漏洞确定注入漏洞确定注入漏洞 n n确定注入点确定注入点确定注入点确定注入点 即使应用程序已经过滤了即使应用程序已经过滤了即使应用程序已经过滤了即使应用程序已经过滤了 和和和和+等字符,攻击者可以在输入

45、等字符,攻击者可以在输入等字符,攻击者可以在输入等字符,攻击者可以在输入时通过把字符转换成时通过把字符转换成时通过把字符转换成时通过把字符转换成URLURL编码编码编码编码(即字符即字符即字符即字符ASCIIASCII码的码的码的码的1616进制进制进制进制)绕过检查绕过检查绕过检查绕过检查n n 例例例例7 7:/mysite/proddetails.asp?ProdID=3+1/mysite/proddetails.asp?ProdID=3+1就等于就等于就等于就等于/mysite/proddetails.asp?ProdID=3%2B1/mysite/proddetails.asp?Pr

46、odID=3%2B1 /mysite/proddetails.asp?ProdID=B+ook/mysite/proddetails.asp?ProdID=B+ook就等于就等于就等于就等于/mysite/proddetails.asp?ProdID=B%27%2B%27ook/mysite/proddetails.asp?ProdID=B%27%2B%27ook为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程实施注入攻击实施注入攻击实施注入攻击实施注入攻击 n n确定符合确

47、定符合确定符合确定符合SQLSQL语法的注入语句:语法的注入语句:语法的注入语句:语法的注入语句:技术原理简单;技术原理简单;技术原理简单;技术原理简单;关键是能否成功地突破插入语符号限制关键是能否成功地突破插入语符号限制关键是能否成功地突破插入语符号限制关键是能否成功地突破插入语符号限制并能顺利地结束请求语句;并能顺利地结束请求语句;并能顺利地结束请求语句;并能顺利地结束请求语句;需要进行需要进行需要进行需要进行多次测试多次测试多次测试多次测试n n难点:难点:难点:难点:(i)(i)通过标准的通过标准的通过标准的通过标准的SELECT WHERESELECT WHERE语句,注入点是语句,

48、注入点是语句,注入点是语句,注入点是WHEREWHERE语句的一部分。方法语句的一部分。方法语句的一部分。方法语句的一部分。方法:仅仅加上仅仅加上仅仅加上仅仅加上OR 1=1 OR 1=1 简单情形简单情形简单情形简单情形 如何配对插入符号,使之能与前面的已使用的符号,如如何配对插入符号,使之能与前面的已使用的符号,如如何配对插入符号,使之能与前面的已使用的符号,如如何配对插入符号,使之能与前面的已使用的符号,如左括号匹配左括号匹配左括号匹配左括号匹配 被篡改的请求语句可能会导致应用程序产生其他错误。被篡改的请求语句可能会导致应用程序产生其他错误。被篡改的请求语句可能会导致应用程序产生其他错误

49、。被篡改的请求语句可能会导致应用程序产生其他错误。难以和难以和难以和难以和SQLSQL语句产生的错误相区分语句产生的错误相区分语句产生的错误相区分语句产生的错误相区分为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益4.常见的常见的SQL 注入攻击的过程注入攻击的过程实施注入攻击实施注入攻击实施注入攻击实施注入攻击 n n难点:难点:难点:难点:(ii)UNION SELECT(ii)UNION SELECT注入或存储过程注入,还需要能注入或存储过程注入,还需要能注入或存储过程注入,还需要能注入或存储过程注入,还需要能先顺利地结

50、束整个先顺利地结束整个先顺利地结束整个先顺利地结束整个SQLSQL请求语句,然后才能添加其他攻击者请求语句,然后才能添加其他攻击者请求语句,然后才能添加其他攻击者请求语句,然后才能添加其他攻击者所需要的所需要的所需要的所需要的SQLSQL语句语句语句语句 攻击者可以选择使用攻击者可以选择使用攻击者可以选择使用攻击者可以选择使用SQLSQL注释符号注释符号注释符号注释符号(-)(-)来结束语句来结束语句来结束语句来结束语句n n例例例例8 8:登录页面需要输入用户名和密码,并提交:登录页面需要输入用户名和密码,并提交:登录页面需要输入用户名和密码,并提交:登录页面需要输入用户名和密码,并提交SQ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁