




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、02SQL注入类型03SQL注入防范01SQL注入攻击分析 SQL注入攻击分析例如,某个网站的登录验证的例如,某个网站的登录验证的SQLSQL查询代码为:查询代码为:v strSQL = SELECT strSQL = SELECT * * FROM users WHERE (name = FROM users WHERE (name = + userName + ) and (pw = + passWord +);+ userName + ) and (pw = + passWord +); 攻击攻击者在填写用户名密码表单时恶意填入如下信息:者在填写用户名密码表单时恶意填入如下信息:v us
2、erName = 1 OR 1=1; userName = 1 OR 1=1; 和和passWord = 1 OR passWord = 1 OR 1=1;1=1;v 这时,将导致原本的这时,将导致原本的SQLSQL字符串被修改。因为代码字符串被修改。因为代码strSQL = SELECT strSQL = SELECT * * FROM users WHERE (name = 1 FROM users WHERE (name = 1 OR 1=1) and (pw = 1 OR 1=1);OR 1=1) and (pw = 1 OR 1=1);在在WHEREWHERE语句后面的条件判断结果都
3、会变成语句后面的条件判断结果都会变成TrueTrue,也就是实际,也就是实际上运行的上运行的SQLSQL命令会变成了命令会变成了strSQL = SELECT strSQL = SELECT * *FROM FROM users;users;,因此实现无账号密码,亦可登录网站,因此实现无账号密码,亦可登录网站。SQL注入类型(1 1)不正确的处理类型)不正确的处理类型v 如果一个用户提供的字段并非一个强类型,或者没有实施如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个类型强制,就会发生这种形式的攻击。当在一个SQLSQL语句语句中使用一个数字字段时,
4、如果程序员没有检查用户输入的中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。例如:合法性(是否为数字型)就会发生这种攻击。例如:v statement := SELECT statement := SELECT * * FROM data WHERE id = + FROM data WHERE id = + a_variable + ;a_variable + ;v 从这个语句可以看出,作者希望从这个语句可以看出,作者希望a_variablea_variable是一个与是一个与“idid”字段有关的数字。不过,如果终端用户选择一个字符串,字段有关的数
5、字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。例如,将就绕过了对转义字符的需要。例如,将a_variablea_variable设置为:设置为:1;DROP TABLE users1;DROP TABLE users,它会将,它会将“usersusers”表从数据库中删表从数据库中删除,除,SQLSQL语句变成:语句变成:v SELECT SELECT * * FROM DATA WHERE id = 1;DROP TABLE users; FROM DATA WHERE id = 1;DROP TABLE users;SQL注入类型(2 2)数据库服务器中的漏洞)数据库服务
6、器中的漏洞v 有时,数据库服务器软件中也存在着漏洞,如有时,数据库服务器软件中也存在着漏洞,如MYSQLMYSQL服务服务器中器中mysql_real_escape_stringmysql_real_escape_string()()v 函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的编码执行一次成功的SQLSQL注入式攻击。在数据库字符集设注入式攻击。在数据库字符集设为为GBKGBK时是可能被绕过的时是可能被绕过的。SQL注入类型(3 3)盲目)盲目SQLSQL注入式攻击注入式攻击v 当一个当一个WebWeb应用程序易于遭
7、受攻击而其结果对攻击者却不应用程序易于遭受攻击而其结果对攻击者却不见时,就会发生所谓的盲目见时,就会发生所谓的盲目SQLSQL注入式攻击。有漏洞的网注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入到合法语句中的逻页可能并不会显示数据,而是根据注入到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节而精心构造一个新的语句。但是必须为每一个获得的字节而精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为一旦漏洞的位置和目标信息的位置被确立以后,一种称为AbsintheAbsinth
8、e的工具就可以使这种攻击自动化。的工具就可以使这种攻击自动化。SQL注入类型(4 4)条件响应)条件响应 有有一种一种SQLSQL注入迫使数据库在一个普通的应用程序屏幕上注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值:计算一个逻辑语句的值:SELECT booktitle FROM booklist SELECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=1WHERE bookId = OOk14cd AND 1=1这会导致一个标准的面面,而语句:这会导致一个标准的面面,而语句:SELECT booktitle SE
9、LECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=2FROM booklist WHERE bookId = OOk14cd AND 1=2。在页。在页面易于受到面易于受到SQLSQL注入式攻击时,它有可能给出一个不同的结注入式攻击时,它有可能给出一个不同的结果。如此这般的一次注入将会证明盲目的果。如此这般的一次注入将会证明盲目的SQLSQL注入是可能的,注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。真伪的语句。SQL注入类型(5 5)条件性差错
10、)条件性差错如果如果WHEREWHERE语句为真,这种类型的盲目语句为真,这种类型的盲目SQLSQL注入会迫使数据库注入会迫使数据库评判一个引起错误的语句,从而导致一个评判一个引起错误的语句,从而导致一个SQLSQL错误。例如:错误。例如:SELECT 1/0 FROM users WHERE username=RalphSELECT 1/0 FROM users WHERE username=Ralph。显然,。显然,如果用户如果用户RalphRalph存在的话,被零除将导致错误。存在的话,被零除将导致错误。(6 6)时间延误)时间延误时间延误是一种盲目的时间延误是一种盲目的SQLSQL注入
11、,根据所注入的逻辑,它可注入,根据所注入的逻辑,它可以导致以导致SQLSQL引擎执行一个长队列或者是一个时间延误语句。引擎执行一个长队列或者是一个时间延误语句。攻击者可以衡量页面加载的时间,从而决定所注入的语句是攻击者可以衡量页面加载的时间,从而决定所注入的语句是否为真。否为真。 SQL注入防范 在设计应用程序时,完全使用参数化查询在设计应用程序时,完全使用参数化查询(Parameterized QueryParameterized Query)来设计数据访问功能。)来设计数据访问功能。 在组合在组合SQLSQL字符串时,针对所传入的参数作字符字符串时,针对所传入的参数作字符取代(将单引号字符取代为连续取代(将单引号字符取代为连续2 2个单引号字符)。个单引号字符)。 如果使用如果使用PHPPHP开发网页程序的话,可以打开开发网页程序的话,可以打开PHPPHP的魔术引号(的魔术引号(Magic quoteMagic quote)功能(自动将所有的)功能(自动将所有的网页传入参数,将单引号字符取代为连续网页传入参数,将单引号字符取代为连续2 2个单引号个单引号字符)。字符)。 SQL注入防
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅小区公共车位使用权竞拍合同
- 跨境贸易财产保全担保合同
- 高校毕业生就业质量保障与评价协议
- 房地产开发项目拆迁安置合同模板
- 电商行业代理记账与财务风险控制协议
- 孕妇预防畸形护理要点
- 2025年美容院转让协议
- 古诗词鉴赏之景物和事物形象(学生版)-2024小升初语文专项复习讲义
- 肿瘤基因检测行业发展分析
- 中医外科术后护理
- 2023-2024广告主KOL营销市场盘点及趋势预测-克劳锐
- 冠心病合并房颤患者PCI术后抗栓治疗策略
- 2024年燕舞集团限公司公开招聘高频考题难、易错点模拟试题(共500题)附带答案详解
- 2024年中考道德与法治时事政治试题库附答案(综合题)
- 江苏省苏州市2023-2024学年五年级下学期期中综合测试数学试卷(苏教版)
- 从自在、自觉到自为:中华民族发展的历史逻辑
- 游戏陪玩-模板参考
- 怀来鼎兴投资开发有限公司审计报告
- 篷布检测报告
- 国开电大 可编程控制器应用实训 形考任务3实训报告
- 水泥搅拌桩试桩成果报告
评论
0/150
提交评论