SQL注入式攻击原理及防范.doc

SQL注入式攻击原理及防范.doc

ID:54965659

大小:16.00 KB

页数:5页

时间:2020-04-25

SQL注入式攻击原理及防范.doc_第1页
SQL注入式攻击原理及防范.doc_第2页
SQL注入式攻击原理及防范.doc_第3页
SQL注入式攻击原理及防范.doc_第4页
SQL注入式攻击原理及防范.doc_第5页
资源描述:

《SQL注入式攻击原理及防范.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SQL注入式攻击原理及防范  【摘要】本文介绍了SQL注入式攻击的原理,结合实例阐述了SQL注入式攻击的方法,并从代码层和平台层探讨了SQL注入式攻击的防范。  【关键词】SQL;注入式;攻击  1.SQL注入式攻击的原理  进行SQL注入时一般会用到两种方式:第一是手工注入,第二是工具注入。对于猜解管理员的密码方面一般用Pangolin或者NBSI,其总体思路是[1]:(1)扫描目标网络信息(判断是否存在SQL注入漏洞);(2)判断后台数据库类型;(3)发现WEB虚拟目录;(4)上传ASP木马;(5)得到管理员权限。详细介绍如下:

2、  (1)SQL注入一般存在于形如:http://xxx.xxx.xxx/abc.asp?p=YY的网站中。  (2)在http://xxx.xxx.xxx/abc.asp?p=YY后面追加“and1=1”,并访问该网址即http://xxx.xxx.xxx/abc.asp?p=YYand1=1应该与访问原地址得到的结果相同。  (3)在http://xxx.xxx.xxx/abc.asp?p=YY后面追加“and1=2”,并访问该网址即http://xxx.xxx.xxx/abc.asp?p=YYand1=2应该与访问原地址得到的

3、结果不同,并提示数据库错误。(2,3同时满足则此网站必定存在SQL漏洞,可以进行sql注入攻击)  (4)访问http://xxx.xxx.xxx/abc.asp?p=YYandexists(select*from网站数据库常用表段名)网站数据库常用表段名:adminusersadministrator等,如果进入的网页像步骤二一样,是正常网页,证明存在该表段名。找寻该SQL数据库使用的表名,进而寻找网站的管理员名、密码等信息。  (5)访问http://xxx.xxx.xxx/abc.asp?p=YYandexists(selec

4、t[网站数据库常用字段名]from第4步找到的可入侵表名)网站数据库常用字段名:adminpasswordusername等,如果进入的网页像步骤2一样,是正常网页,证明存在该字段名。找寻该SQL数据库使用的字段名,进而寻找网站的管理员名、密码等信息。  (6)访问http://xxx.xxx.xxx/abc.asp?p=YYandexists(select*from第4步找到的可入侵表名where第5步找到的可入侵字段名like'_‘)。  (7)访问http://xxx.xxx.xxx/可入侵后门字段名,找到网站后门。  (8)

5、利用从数据库中查到的敏感数据进入网站后门。  2.SQL注入式攻击的简单实例  这里我们举一个比较常见的例子来简要说明一下sql注入的原理。假如我们有一个users表,里面有两个字段username和password。在我们的java代码中我们初学者都习惯用sql拼接的方式进行用户验证。比如:"selectidfromuserswhereusername='"+username+"'andpassword='"+password+"'"这里的username和password都是我们存取从web表单获得的数据。下面我们来看一下一种简

6、单的注入,如果我??在表单中username的输入框中输入'or1=1--,password的表单中随便输入一些东西,假如这里输入123.此时我们所要执行的sql语句就变成了selectidfromuserswhereusername=''or1=1--andpassword='123',我们来看一下这个sql,因为1=1是true,后面andpassword='123'被注释掉了。所以这里完全跳过了sql验证。  3.SQL注入式攻击的防范  从存在的实际情况来看,包括Web服务器管理员、数据库服务器管理员、数据库设计员、代码程序

7、员在内的所有工作人员都是防御体系的关键。从Web应用程序的开发、部署、管理、维护多个方面进行审查,使程序SQL注入了漏洞最小化。我们从代码层和平台层两个方面来阐述SQL注入攻击的防御。  3.1代码层防御  从Web数据库管设计员和编写代码的角度来研究SQL注入攻击防御的。  (1)使用参数化语句。前面讲过动态字符串构造是引发SQL注入漏洞的原因之一。作为一种更加安全的动态字符串构造方法,大多数现代编程语言和数据库访问API可以使用占位符或绑定变量来向SQL查询提供参数(而非直接对用户输入进行操作)[2],这些通常称为参数化语句内容

8、是更安全的方法,可以使用它们来避免或解决很多在应用中经常见到的SQL注入问题,并可以在大多数常见的情形中使用它们来替代现有的动态查询。不过,值得注意的是,参数化语句是与一种向数据库提供潜在的非安全参数(通常作为查询或存储过程调用)的方

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。