Southeast University
课外研究性学习 课程论文
论文题目:浅析SQL注入漏洞及防范
学 生 院 系 : 学 生 姓 名 : 学 生 学 号 :
1
Southeast University
浅析SQL注入漏洞及防范
摘 要
SQL注入是一种很常见的利用程序漏洞进行攻击的方法,本文通过分析 SQL注入漏洞的原理即通过客户端提交的不合法的代码,分析返回信息,得到服务器端信息,从而为所欲为,模拟注入过程,包括判断是否存在漏洞,判断数据库类型以及相应的注入方法,得到相应的预防SQL注入的方法。
关键词:SQL ;注入;安全漏洞
The Analysis of SQL Injection And Prevention
Abstract
SQL injection is the common method to attack with the program vulnerability,the passage analyse the vulnerability principle and the injection process,and then get the way to prevent the SQL injection
Key words: SQL; injection; Security vulnerabilities
2
Southeast University
目 录
引 言 ............................................................................................................................................................ 4 1 SQL注入过程 ........................................................................................................................................... 4 1.1判断是否可以攻击 ........................................................................................................................... 4 1.1.1输入为数字时: ....................................................................................................................... 4 1.1.2输入为字符串时: ................................................................................................................... 4 1.2判断数据库类型 ............................................................................................................................... 5 1.2.1对于IIS未关闭的 ................................................................................................................... 5 1.2.2对于IIS不返回错误信息的 ................................................................................................... 5 1.3判断数据类型 ................................................................................................................................... 5 1.4猜测表名 ........................................................................................................................................... 6 1.5猜测列名 ........................................................................................................................................... 6 1.6得到数据 ........................................................................................................................................... 6 1.7直接获得用户名及密码 ................................................................................................................... 7 2.SQL注入防范 ........................................................................................................................................... 7 2.1客户端 ............................................................................................................................................... 7 2.2加密 ................................................................................................................................................... 7 2.3 IIS的限制 ....................................................................................................................................... 7 2.4 IIS权限的分配 ............................................................................................................................... 8 结 语 ............................................................................................................................................................ 8 [参考文献] .................................................................................................................................................. 8
3
Southeast University
引 言
计算机的发展越来越快,可是随之而来的却是一系列安全问题,这些安全问题直接威胁到了用户的私人信息,诸如账号,密码,住址等,他们利用用户的好奇心,欺骗用户或者在用户毫不知情的情况下,入侵PC,盗取资料,对用户构成一定威胁,危害不仅局限于此,譬如在08年时一场大规模的SQL注入席卷了全球,他们堆积选择ip,将目标锁定到不同网站,其中包括一些受信任的网站,用户点击网站之后会受到感之后成为病原体。
现在由于程序员的水平参差不齐,在编写程序的时候有时会很少考虑到安全方面的因素,及缺少用户输入安全性的判断,这样就导致不法分子有机可乘,他们根据不同的输入,分析返回结果,得到数据库服务器的相关信息,最后可以为所欲为。
1 SQL注入过程
1.1判断是否可以攻击
首先我们要将ie浏览器的Internet=>高级=>显示好友http信息去掉,这样我们就可以得到不同的错误,位置后的判断打下基础。
比如说形如一个http://example/mainView/show.asp?ID=123这是一个正常的网站,在这个网站中数据库服务器通常通过select * from tableName where ID=123来将结果集返回给客户端,这本来是没有什么问题的,可是这里却存在极大的安全隐患,比如说我们可以在后面添加一些代码,可以这样测试
1.1.1输入为数字时:
通过经典的1,2测试法,我们可以这样做
不添加任何内容http://example/mainView/show.asp?ID=123;不报错
添加and 1=1这样就变成了http://example/mainView/show.asp?ID=123 and1=1;不报错 添加and 1=2 这样就变成了http://example/mainView/show.asp?ID=123 and 1=2;报错
1.1.2输入为字符串时:
末尾添加一个‘,这样就变成了http://example/mainView/show.asp?ID=123’;报错
添加‘and ’1‘=‘1这样就变成了http://example/mainView/show.asp?ID=123 ’and‘1'='1';不报错
添加‘and ’1‘=‘2这样就变成了http://example/mainView/show.asp?ID=123 ’and‘1'='2';报错
4
相关推荐: