ASP网站入侵

ASP可运行的服务器端平台包括:WinNT、Win2k、WinXP和Win2003,在Win98系统里装上PWS4.0也可运行。

现在很流行的注入攻击,就是利用提交特殊地址将ASP中引用的正常SQL语句和入侵者所需要的SQL语句一并执行,使入侵者达到入侵的目的。随着有一些脚本注入工具发布,使菜鸟也可以轻松完成对ASP的注入攻击。那么我们来了解一下这些工具是怎样注入的。
首先,入侵者会对一个网站确定可不可以进行注入,假设一篇新闻(文章)的地址为:http://www.xxxx.com/news.asp?id=1 一般会以提交两个地址来测试,如:
http://www.xxxx.com/news.asp?id=1 and 1=1
http://www.xxxx.com/news.asp?id=1 and 1=2
第一个地址后面加了and 1=1,构成的SQL语句也就变为了:Select * from 表单名 where id=1 and 1=1这句话要成立必须and前后语句都成立。那么前面的文章地址是可以访问的,后面的1=1也是客观成立的,那么第一个地址就可以正常显示;相反1=2是显然不成立的,关键就看这步了,如果提交and 1=2页面还是正常显示说明他并没有将and 1=2写入SQL语句,此站也就不存在注入漏洞;但如果提交and 1=2之后返回了错误页面则说明此站点将后面的语句带入了SQL语句并执行了,也就说明他可以进行SQL注入。(注:如果地址后面跟的是news.asp?id='1'就得变为news.asp?id=1' and '1'='1来补全引号了)
现在知道了可以注入后,入侵者可以做什么呢?如果提交这样的地址:
http://www.xxxx.com/news.asp?id=1 and exists (select * from 表名 where 列名=数据)根据返回的正确或错误页面来判断猜的表名和列名是否正确,具体实现时是先猜表名再猜列名。当猜出表名和列名之后还可以用ASC和MID函数来猜出各列的数据。MID函数的格式为:mid(变量名,第几个字符开始读取,读取几个字符),比如:mid(pwd,1,2)就可以从变量pwd中的第一位开始读取两位的字符。ASC函数的格式为:ASC("字符串"),如:asc("a")就可以读出字母a的ASCII码了。那么实际应用的时候就可以写为:asc(mid(pwd,1,1))这样读取的就是pwd列的第一个字符的ASCII码,提交: asc(mid(pwd,1,1))>97以返回的页面是否为正确页面来判断pwd列的第一个字符的ASCII码是否大于97(a的ASCII码),如果正确就再试是否小于122(z的ASCII码)……这样慢慢缩小字符的ASCII码的范围,直到猜到真实的ASCII码。这样一位一位的猜就可以得到数据库中的用户名和密码。还有一种ASP验证缺陷——就是用户名和密码都输'or '1'='1,构造SQL语句Select * form 表单名 where username='' or '1'='1' and pwd='' or '1'='1'就可以达到绕过密码验证的目的。


说了那么多,其实防范的方法很简单,我们把特殊字符(如and、or、'、")都禁止提交就可以防止注入了。ASP传输数据分为get和post两种, get是通过将数据添加到URL后提交的方式,post则是利用邮寄信息数据字段将数据传送到服务器。
那么,我们先来看看如何将get方式提交数据中的特殊字符过滤。首先要知道,IIS是以字符串的形式将get请求传给asp.dll的,在将数据传递给Request.QueryString之后,asp解析器会解析出Request.QueryString的信息,然后跟据"&"来分出各个数组内的数据。现在我们要让get方式不能提交以下字符:

'、and、exec、insert、select、delete、update、count、*、%、chr、mid、master、truncate、char、declare

SQL通用防注入程序是由火狐的枫知秋编写的,功能相当完善的防注入代码。它能对定义的过滤字符实现get提交的过滤,并能记录攻击者的IP提交的数据信息。使用时只须在要防注入的文件头中加入代码可以实现对变量的过滤。如果在数据库连接文件(如conn.asp)后加入程序代码,则可以实现整站的变量过滤,从而达到防注入的效果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%
dim sql_leach,sql_leach_0,Sql_DATA,SQL_Get,Sql_Post
sql_leach = "',and,exec,insert,select,delete,update,count,*,%,chr,mid,master,truncate,char,declare"
sql_leach_0 = split(sql_leach,",")

If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(sql_leach_0)
if instr(Request.QueryString(SQL_Get),sql_leach_0(Sql_DATA))>0 Then
Response.Write "请不要尝试进行SQL注入!"
Response.end
end if
next
Next
End If


If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(sql_leach_0)
if instr(Request.Form(Sql_Post),sql_leach_0(Sql_DATA))>0 Then
Response.Write "请不要尝试进行SQL注入!"
Response.end
end if
next
next
end if
%>
防止暴库的办法,在数据库文件前面加上On Error Resume Next

1
2
3
4
5
<%
On Error Resume Next
dim conn,connstr,db

%>.
一、 整体介绍     本身代码经过变量转换和替换字符加密,可完美过安全狗,护卫神,D盾,safe3 Waf,KOasp木马查杀等IIS防火墙和查杀工具。  程序结合海洋顶端asp木马、老兵asp木马、Drakblade暗黑之剑1.3版本、05年到13年主流asp木马的优点进行开发完善制作。  程序在目录检测功能、隐藏功能、数据库操作和提权处做了较大改进,具体请看下列介绍 二、 提交代码经过ascii 2次转码post提交过IIS安全狗,护卫神,D盾,safe3 Waf等IIS防火墙拦截代码。 三、 登陆成功后显示"欢迎界面","欢迎界面"显示服务器安全指数,等级分为 高、中、低三等级,根据wscript.shell磁盘根目录是否可读取等功能判断。  第一项显示:服务器iis版本、服务器超时时间、以及session信息、服务器CPU数量、主机名、默认管理员信息、Terminal Service终端端口(需要wscript.shell组件支持)支持脚本探测(aspx,php,pl)功能,支持bing查询同服务器所有支持aspx脚本站点。 第二项显示:系统当前路径变量。   第三项显示:磁盘根目录的读取权限问题(判断是否可跨站)。 第四项显示:常用组件信息,左侧11个为危险组件,右侧11个为安全组件。   第五项显示:读取c:\windows\system32\sethc.exe 和 c:\windows\system32\magnify.exe 文件的属性、时间、文件体积,从而判断是否被入侵。 四、 右上角的ZONE-H图标为一键提交被黑网页到被黑站点统计www.zone-h.com.cn,个人信息请编辑程序修改,或用生成器生成。 五、 WEB根目录和本程序目录都可以转入文件操作页。  文件操作一:左侧为磁盘和快捷不安全目录查看(目录为智能判断,不存在则不显示)  文件操作二:右侧为文件操作模块和文件夹操作模块。 文件操作支持浏览器模式打开、编辑(支持UTF-8模式编辑)、复制、移动、删除(支持强制删除只读属性文件)、修改属性为隐藏or正常、数据库模式编辑。 文件夹操作支持修改文件夹属性、删除、复制、移动 数据库模式编辑支持查看内容、修改内容、删除内容、拖库。 六、 功能一分为三项功能 目录检测功能,补丁检测功能以及端口扫描功能。这三项功能不需要服务器过多脚本支持,故而放到一起。 ***目录扫描: 支持单文件检测,目录检测,是否循环所有磁盘,是否选择深度目录扫描和子目录扫描(目录扫描结尾必须加入“\”)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值