ASP漏洞全接触-入门篇

seo优化 2025-04-16 11:18www.168986.cn长沙seo优化

随着B/S模式应用开发的发展,越来越多的程序员投身于这种模式的编程工作中。由于入门门槛较低,程序员的水平及经验差异较大,这导致很大一部分程序员在编写代码时忽略了用户输入数据的合法性判断,使得应用程序存在潜在的安全隐患。

一种被称为SQL注入的攻击方法正悄然兴起。所谓SQL注入,即攻击者通过提交一段数据库查询代码,从而获取其想要的数据。这种攻击方式从正常的WWW端口访问,表面看起来与一般的Web页面访问无异,因此市面上的防火墙通常不会对此发出警报。如果管理员没有查看IIS日志的习惯,可能长时间都无法发现被入侵的迹象。

SQL注入的手法相当灵活,能否根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,这是高手与“菜鸟”的根本区别。

在网站开发领域,ASP+Aess或SQLServer的应用占据了市场的70%以上,而PHP+MySQ占到了约20%,其余则包括其他数据库系统。本文将带领大家从入门到进阶,逐步掌握ASP注入的方法和技巧。关于PHP注入的内容,将由另一位朋友zwell撰写。希望这篇文章能对安全工作者和程序员都有所帮助。

入门篇

如果你之前没有接触过SQL注入,那么首先请确保你的IE菜单中的“显示友好HTTP错误信息”选项已关闭。否则,无论服务器返回什么错误,IE都只显示HTTP 500服务器错误,无法获取更多信息。

第一节:SQL注入原理

以某个网站为例(注:本文发表前已征得该站站长同意,数据均为真实)。在网站首页上有一个链接,地址为

1. 网站使用的是Aess数据库,通过JET引擎连接数据库。

2. 程序没有判断客户端提交的数据是否符合程序要求。

3. 该SQL语句所查询的表中有一个名为ID的字段。

从上面的例子可以看出,SQL注入的原理是从客户端提交特殊的代码,从而收集程序及服务器的信息,进而获取你想要的数据。

第二节:判断能否进行SQL注入

有些人可能会用单引号测试能否注入,但这并不是最好的方法。因为不是每台服务器的IIS都会返回具体的错误提示给客户端。如果程序中加了某些语句如cint(参数),SQL注入就不会成功,但服务器同样会报错。那么,如何准确地测试能否进行SQL注入呢?以下是经典的方法:

通过对比以下三个的返回结果来判断:

1.

2. 1=1

3. 1=2

如果可以注入,那么第一种链接正常显示;第二种和第三种链接的显示结果会有差异。如果无法注入,那么第一种链接正常显示,而第二和第三种链接通常会显示程序定义的错误提示或类型转换出错提示。这只是针对数字型参数的判断方法,实际应用中还有字符型和搜索型参数,将在中级篇中详细。

第三节:判断数据库类型及注入方法

不同的数据库拥有不同的函数和注入方法。在注入之前判断数据库的类型是十分必要的。在这个过程中需要灵活运用各种技巧和方法进行试探和判断。对于数据库类型的判断及相应的注入方法,将在后续的高级篇中详细讲解。希望这篇文章能对大家有所帮助,让我们一起走进SQL注入的世界吧!ASP和数据库:解读背后的秘密与鉴别数据库类型的小技巧

在Web开发中,ASP(Active Server Pages)是最常用的动态网页技术之一,它常与数据库搭配使用以提升网站的功能性和互动性。而在众多的数据库中,Aess和SQLServer尤为受欢迎,网上超过99%的网站都在使用其中之一。那么,如何知道你的网站正在使用哪种数据库呢?下面就来介绍一些小技巧。

SQLServer有一些系统变量,如果服务器IIS提示未关闭且SQLServer返回错误提示的话,我们可以直接从出错信息中获取数据库的信息。比如一个简单的语句:“ ;;and user>0”,看似简单却蕴含着SQLServer特有的注入方法的精髓。这里的user是SQLServer的一个内置变量,它的值是当前连接的用户名。通过这个语句,我们可以尝试获取数据库的用户名,因为在转换数据类型的过程中出错,系统会返回相关的错误信息。值得注意的是,如果服务器使用的是sa登录(一个等同于Adminstrators权限的角色),提示的错误信息会有所不同。掌握这一技巧,对于测试数据库权限以及后续的渗透测试有着重要作用。

当IIS不允许返回错误提示时,我们又该如何判断数据库类型呢?这就需要从Aess和SQLServer的区别入手。两种数据库都有自己的系统表,比如存放数据库中所有对象的表。在Web环境下,我们可以尝试读取这些表来判断数据库的类型。比如使用如下语句:“ ;;and (select count() from sysobjects)>0” 或 “ ;;and (select count() from msysobjects)>0”。如果数据库是SQLServer,第一个的页面会与原页面大致相同;而第二个则会因为找不到表msysobjects而提示出错。反之,如果数据库是Aess,这两个的页面都会与原页面有所不同。大多数时候,只需使用第一个就可以得知系统所用的数据库类型。

通过这些技巧,我们可以轻松地了解到网站正在使用的数据库类型及其相关信息。在信息时代的浪潮中,了解这些技巧不仅有助于我们在开发过程中更加深入地理解网站的工作原理,还有助于我们在遇到问题时迅速定位并解决困难。无论是开发者还是网络安全专家,掌握这些技巧都是十分必要的。而对于普通用户来说,了解这些也能帮助你更好地理解网站的工作原理并提升你的网络安全意识。这些信息能帮助我们更好地理解、运用并保护我们的网络世界。

上一篇:vue组件横向树实现代码 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by