没有合适的资源?快使用搜索试试~ 我知道了~
首页SQL注入攻击的分析和应对方法.pdf
SQL注入攻击的分析和应对方法.pdf
4星 · 超过85%的资源 需积分: 11 21 下载量 148 浏览量
更新于2023-03-03
评论 1
收藏 595KB PDF 举报
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
资源详情
资源评论
资源推荐
SQL 注入攻击的分析
和应对方法
Sql 注入技术白皮书
SQL 注入攻击是黑客对数据库进行攻击的常用手段之一,相当大一部分程序
员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程
序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结
果,获得某些他想得知的数据,这就是所谓的 SQLInjection,即 SQL 注入。
2009
整理:计算机水平考试网
http://www.200818.com
2009‐8‐7
SQL 注入攻击的分析和应对方法 http://www.200818.com 计算机水平考试网
1
目录
SQL 注入漏洞全接触………………………………………………………………………………3
SQL 注入法攻击一日通…………………………………………………………………………9
编写通用的 ASP 防 SQL 注入攻击程序……………………………………………………………18
SQL Server 应用程序中的高级 SQL 注入………………………………………………………20
利用 instr()函数防止 SQL 注入攻击……………………………………………………………23
SQL 注入攻击的原理及其防范措施……………………………………………………………25
跨站式 SQL 注入技巧……………………………………………………………………………28
防范 Sql 注入式攻击……………………………………………………………………………30
Dreamweaver 中 sql 注入式攻击的防范………………………………………………………32
PHP 与 SQL 注入攻击……………………………………………………………………………33
SQL 注入攻击零距离……………………………………………………………………………35
SQL 注入技术和跨站脚本攻击的检测………………………………………………………39
三步堵死 SQL 注入漏洞………………………………………………………………………45
SQL 注入实战---利用“dbo”获得 SQL 管理权限和系统权限………………………………46
两个防 SQL 注入过滤代码………………………………………………………………………48
蓝雨设计整站 SQL 注入漏洞……………………………………………………………………50
SQL 注入渗透某网络安全公司的网站全过程…………………………………………………53
sql 注入防御…………………………………………………………………………………57
终极防范 SQL 注入漏洞………………………………………………………………………57
SQL 注入与 ASP 木马上传………………………………………………………………………58
如何在 SQL 注入时保护数据库………………………………………………………………… 62
浅谈 sql 注入式(SQL injection)攻击与防范…………………………………………………63
SQL 注入攻击的分析和应对方法 http://www.200818.com 计算机水平考试网
2
C# 检查字符串,防 SQL 注入攻击……………………………………………………………72
用 vbs 来写 sql 注入等 80 端口的攻击脚本……………………………………………………72
关于对 SQL 注入 80004005 及其它错误消息分析…………………………………………… 77
SQL 注入入侵动网 SQL 版论坛……………………………………………………………………84
利用 SQL 注入 2 分钟入侵网站全程实录………………………………………………………85
三步堵死 SQL 注入漏洞…………………………………………………………………………88
SQL 注入攻击的分析和应对方法 http://www.200818.com 计算机水平考试网
3
SQL 注入漏洞全接触
引 言
随着 B/S 模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是
由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编
写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可
以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓
的 SQL Injection,即SQL注入。
SQL注入是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区
别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看 IIS 日志的习
惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据
具体情况进行分析,构造巧妙的 SQL 语句,从而成功获取想要的数据,是高手与“菜鸟”的
根本区别。
根据国情,国内的网站用 ASP+Access 或 SQLServer 的占 70%以上,PHP+MySQ 占 L20%,
其他的不足 10%。在本文,我们从分入门、进阶至高级讲解一下 ASP 注入的方法及技巧,PHP
注入的文章由 NB 联盟的另一位朋友 zwell 撰写,希望对安全工作者和程序员都有用处。了
解 ASP 注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。
大家准备好了吗?Lets Go...
SQL 注入漏洞全接触入门篇
如果你以前没试过SQL注入的话,那么第一步先把 IE 菜单=>工具=>Internet 选项=>
高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE 都只
显示为 HTTP 500 服务器错误,不能获得更多的提示信息。
第一节、SQL注入原理
以下我们从一个网站 www.mytest.com 开始(注:本文发表前已征得该站站长同意,大
部分都是真实数据)。
在网站首页上,有名为“IE不能打开新窗口的多种解决方法”的链接,地址
为:http://www.mytest.com/showdetail.asp?id=49
,我们在这个地址后面加上单引号’,
服务器会返回下面的错误提示:Microsoft JET Database Engine 错误 80040e14 字符串的
语法错误。在查询表达式 ID=49 中。/showdetail.asp,行 8,从这个错误提示我们能看出
下面几点:
1. 网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。
2. 程序没有判断客户端提交的数据是否符合程序要求。
3. 该SQL语句所查询的表中有一名为ID的字段。
SQL 注入攻击的分析和应对方法 http://www.200818.com 计算机水平考试网
4
从上面的例子我们可以知道,SQL注入的原理,就是从客户端提交特殊的代码,从而
收集程序及服务器的信息,从而获取你想到得到的资料。
第二节、判断能否进行SQL注入
看完第一节,有一些人会觉得:我也是经常这样测试能否注入的,这不是很简单吗?其
实,这并不是最好的方法,为什么呢?
首先,不一定每台服务器的 IIS 都返回具体错误提示给客户端,如果程序中加了 cint(参
数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为处理
URL 时服务器上出错。请和系统管理员联络。
其次,部分对SQL注入有一点了解的程序员,认为只要把单引号过滤掉就安全了,这
种情况不为少数,如果你用单引号测试,是测不到注入点的
那么,什么样的测试方法才是比较准确呢?答案如下:
① http://www.mytest.com/showdetail.asp?id=49
② http://www.mytest.com/showdetail.asp?id=49
;and 1=1
③ http://www.mytest.com/showdetail.asp?id=49
;and 1=2
这就是经典的 1=1、1=2 测试法了,怎么判断呢?看看上面三个网址返回的结果就知道
了:
可以注入的表现:
① 正常显示(这是必然的,不然就是程序有错误了)
② 正常显示,内容基本与①相同
③ 提示BOF或EOF(程序没做任何判断时)、或提示找不到记录(判断了rs.eof时)、
或显示内容为空(程序加了on error resume next)
不可以注入就比较容易判断了,①同样正常显示,②和③一般都会有程序定义的错误提
示,或提示类型转换时出错。
当然,这只是传入参数是数字型的时候用的判断方法,实际应用的时候会有字符型和搜
索型参数,我将在中级篇的“SQL注入一般步骤”再做分析。
第三节、判断数据库类型及注入方法
不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我们还要判断一下数
据库的类型。一般ASP最常搭配的数据库是Access和SQLServer,网上超过 99%的网站都是其
中之一。
怎么让程序告诉你它使用的什么数据库呢?来看看:
SQLServer有一些系统变量,如果服务器IIS提示没关闭,并且SQLServer返回错误提示
的话,那可以直接从出错信息获取,方法如下:
http://www.mytest.com/showdetail.asp?id=491
;and user>0
这句语句很简单,但却包含了 SQLServer 特有注入方法的精髓,我自己也是在一次无意
的测试中发现这种效率极高的猜解方法。让我看来看看它的含义:首先,前面的语句是正常
的,重点在 and user>0,我们知道,user 是 SQLServer 的一个内置变量,它的值是当前连
接的用户名,类型为 nvarchar。拿一个 nvarchar 的值跟 int 的数 0 比较,系统会先试图将
剩余88页未读,继续阅读
andyguo
- 粉丝: 1387
- 资源: 101
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2