基于SPXX站的安全性研究与实现
XX:1671-7597(20XX)1210108-02
0 引言
XX络已经影响到社会的政治、经济、文化、军事和社会生活的各个方面。以XX络方式猎取信息和交流已成为现代信息社会的一个重要特征。当今大多数XX站使用的是SP技术,用户在登录及存储个人信息时存在着不少安全隐患,因此,对SPXX 站安全性做出进一步的推断和强化,最大限度的做到保护用户信息的完整性和保密性,成为XX站开发和维护人员的一项重要工作。
1 SP技术简介
1.1 SP技术的定义
SP是ctiveServerPge的缩写,意为“动态服务器页面”。SP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。由于SP比较简单易学,又有微软这个强大后台的支持,所以应用广泛,相对来说发现的缺陷和漏洞也比较多。
表1 某权威XX站统计的各XX站技术平台市场占有率
1.2 SP技术的特点
SP是一种服务器端脚本编写环境,可以用来创建和运行动态XX页或Web应用程序。SPXX页可以包含HTML标记、一般文本、脚本命令以及COM组件等。利用SP可以向XX页中
添加交互式内容(如在线表单),也可以创建使用HTMLXX页作为用户界面的web应用程序。与HTML相比,SPXX页具有以下特点:
1)服务器上的SP解释程序会在服务器端执行SP程序,并将结果以HTML格式传送到客户端扫瞄器上,因此使用各种扫瞄器都可以正常扫瞄SP所产生的XX页。
2)由于服务器是将SP程序执行的结果以HTML格式传回客户端扫瞄器,因此使用者不会看到SP所编写的原始程序代码,可防止SP程序代码被窃取。
3)方便连接CCESS与SQL数据库。
图1 SPXX页特点
2 常见SPXX站的安全缺陷及防范方法
2.1 利用SPXX站治理漏洞下载MDB数据库
SP站点通常都使用Microsoft ccess的MDB数据库文件存储用户信息,而MDB文件是可以直接下载的,所以只要知道MDB文件的路径就可以轻松猎取MDB文件。常见的猎取MDB 存储路径的方法有:
1)源代码分析。现在很多的SPXX站都是利用互联XX 上的的开源代码建站的,只要得到与该XX站相同的开源代码,里面就有数据库文件的配置路径,而很多初涉此道的XX站治理员根本不懂sp或者是没有足够的安全意识,得到XX站源代码后直接安装使用,这就造成了入侵的机会。比如某知名论坛的
MDB路径是bbs/dt.mdb,那么输入XX://XX.省略/bbs/ Dt.mdb就可以下载数据库了。
2)水平稍高的XX站治理员懂得SP文件仅在服务器端运行,是不会被文件直接发送到用户端的。于是他们会利用这一特点,将mdb文件的后缀改成sp,认为这样的文件类型用户是无法下载的。但这种方法缺陷依旧明显,由于MDB文件并不是真正的SP源代码文件,所以里面并没有SP特征代码,服务器并不认为修改了扩展名的MDB文件就是SP文件,还是会将这样的SP 文件直接发送到用户端,用户依旧可以实现下载。
防范方法:修改MDB数据库文件名和存放路径,并在服务器中将数据库文件存放目录的属性设置为禁止下载,另外还可以增加加密解密模块对数据库文件内容进行加解密存取。
2.2 利用SPXX站SQL代码漏洞进行注入式攻击
所谓注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL 命令。假如XX站建设者没有采取相应措施防范,就很容易为攻击者侵入。SP传输数据的方式分为get式提交和post式提交两种,get式是通过将数据添加到URL后提交的方式,pos式则是利用邮寄信息数据字段将数据传送到服务器。因而常见的入侵手段也包括两种,如图2所示:
图2 利用SPXX站SQL代码漏洞进行注入式攻击方式
1)表单控件post式入侵。例如,某个SP Web应用有一
个登录页面,这个登录页面操纵着用户是否有权访问应用,它要求用户输入一个用户名和密码。如果攻击者在用户名文本框内输入:bc,而在密码框内输入:123'or1=1,则SQL语句变成:select*from dmin where usernme='bc’nd
pssword='123'or1=1,由于表达式usernme='bc'nd pssword='123'or1
=1恒成立,于是不管攻击者输入任何用户名与密码,都能轻易骗过系统,猎取合法的攻击身份。
2)地址栏链接get式入侵。例如:某个SP文章系统XX 站的一篇文章的链接地址是XX://XX.省略/rt.sp?p=20XX984634871,攻击者可编辑扫瞄器地址栏增加新的代码形成XX://XX.省略/rt.sp?p=201
1984634871;bckup dtbse to disk='d:\XXroot\sve.mdb',接下来攻击者只需使用链接XX://XX.省略/sve.mdb就可以下载到XX站的数据库文件了。
asp 源代码防范方法:其实防范的方法很简单,我们把特别字符(如nd、or、'、"等等)都禁止提交就可以防止get提交方式注入了。具体代码如下:
dim sql_lech,sql_lech_0,Sql_DT
sql_lech = "',nd,exec,insert,select,delete,updte,count,*,%,chr,mid,mster,truncte,chr,declre"
sql_lech_0 = split(sql_lech,",")
If Request.QueryString"" Then
For Ech SQL_Get In Request.QueryString
For SQL_Dt=0 To Ubound(sql_lech_0)
if instr(Request.QueryString(SQL_Get),sql_lech_0(Sql_DT)
>0 Then
Response.Write "请不要尝试进行SQL注入!"
end if
next
Next
End If
%>
接着我们还需要过滤以post提交方式的注入,我们可以看到,request.form也是以数组形式存在的,只要对它再进行一次循环推断就可以了,限于篇幅,笔者就不再赘言了。
2.3 利用Session入侵SPXX站
什么是Session?当一个访问者来到XX站的时候一个Session就开始了,当他离开的时候Session就结束了。本质上说,Session是服务器上用来存储状态信息的一些资源变量。以下我们以用户登录页面为例说明Session欺骗式入侵的实现方法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论