文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程ASPASP、Request对象与SQL注入
精品推荐
特别推荐
·如何解密加密的ASP源代码
·PHP+MySQL 购物车程序实例
·ASP网站漏洞及入侵防范方法
·ASP网络安全
·1小时ASP入门
·初学ASP动态网页制作常用错误处理
·ASP实现网页打开任何类型文件都保存
·ASP技巧:使用FSO自动创建多级文件夹的函数
·轻松建站 主流ASP内容管理系统
·ASP教程:透彻掌握ASP分页技术
热点TOP10
·了解MSMQ,控制ASP进程 (一)
·用ASP对网页进行限制性的访问
·实现session登陆时间的验证,验证用户登录页面的一个监听器
·Java基础:常用的匹配正则表达式和实例
·smarty实例教程
·ASP基础教程之ASP程序对Cookie的处理
·实例详细讲解ASP教程之ASP中使用变量的方法
·ASP入门:认识ASP程序所使用的几种脚本语言
·ASP入门知识:简单介绍ASP的基础知识
·ASP技巧:ASP中三个常用语句的使用技巧

ASP、Request对象与SQL注入

日期:2007年10月25日 作者: 查看:[大字体 中字体 小字体]


Request对象探讨

Request是ASP里的一个内部对象,用于获取HTTP请求中传递的任意信息(如头信息、表单数据、cookies等等)。所以这是在ASP里面最常用的内部对象,常用来获得GET方式提交的数据(Request.QueryString)、表单POST提交的数据(Request. Form)和Cookies(Request.Cookies)。

我们用Request对象可以指定获取某个特定方式提交的数据。比如我们用这段代码获得通过POST提交的数据lake2的值:request.Form("lake2");而request.queryString("CSDN")获得GET方式提交的CSDN的值。

对于获取HTTP数据,ASP还给了我们一个更简单的方法:request(key),即直接使用request而不指定数据集合。此时ASP会依次在QueryString、From、Cookies、ServerVariables、ClientCertificate、Browser中检查匹配的数据,若发现则返回数据。

上面6个集合中,ServerVariables、ClientCertificate和Browser的变量是固定了的;而QueryString、From、Cookies的变量可以任意指定。想不到Cookies可以拿来传递任意数据,以前倒没有注意。

OK,test一下先。在本地web目录新建test.asp文件,内容为:<%=request("b")%>

Step 1:直接访问http://127.0.0.1/test.asp?b=la<b>k</b>e2,浏览器显示lake2

Step 2:构造表单提交结果也如step 1

Step 3: 构造表单,GET传递b值为"He",同时POST的b为"She",浏览器显示为"He"。呵呵,按前面的排序有个优先级的

Step 4:Telnet到本地80端口,构造HTTP请求如下(注意Cookies哦):

GET /test.asp HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TencentTraveler ; .NET CLR 1.1.4322)
Host: 127.0.0.1
Connection: Keep-Alive
Cookie: b=lake2 , Success !

在一堆服务器响应数据之后,我们看到了"lake2,Success!"(Q:为什么空格不见了?A:因为未对提交的空格进行URL编码)。

到此,我们已理论和实际相结合的证明了Cookies可以拿来传递数据。

Request对象与SQL注入

现在把话题转一下,我们来说说SQL Injection。

SQL注入攻击是由于Web应用程序没有过滤用户所提交的有害数据而导致危害服务器的一种攻击手法。注意咯,这里涉及到提交数据,自然要跟刚才说了一大堆的request联系上啊。

归根结底,ASP下面的SQL注入都是由于request的参数没有过滤或者过滤不严。当然,程序员不是安全专家,他们可能不知道如何过滤。

于是,网络上就出现了通用的防注入ASP程序——"SQL通用防注入系统"。经过一段时间和几个作者的改进,该程序已经比较完善了,基本上可以拦截SQL注入(但是,个人认为它的过滤方式太严,造成许多不便)。"SQL通用防注入系统"是个asp文件,只需在有参数提交的文件中include它就是了。程序过滤的原理是遍历GET和POST参数的值,发现SQL注入关键字(如and、select)就停止正常文件执行。

嘿嘿,它遍历GET和POST,也就是Request对象的QueryString和From集合,忽略了Cookies。

现在,我们假设有一个SQL Injection漏洞百出的ASP程序,具备网络安全知识的管理员同学在网上下载并使用了传说中的"SQL通用防注入系统",但是很不幸,ASP程序中所有获取参数都是使用的request(key)……(呵呵,眼看着一个个封锁被突破,那是很enjoy的事情^_^)

这里仅仅是假设而已,至于实际中到底有多少ASP程序员喜欢用request(key) 来获取数据就不得而知咯。

(出处:清风网络学院






上一篇:ASP网站程序自动升级实现的方法

下一篇:教你在Vista系统中配置VPN网络

相关文章:
·C #中的几个线程同步对象方法
·分享:XMLHTTPRequest的属性和方法简介
·详解CRLF注入攻击的原理和其防范措施
·另类读写:ACCESS中Field对象的标题属性
·C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
·利用最基本的SQL注入渗透BBSXP官方网站的台后管理
·SQL注入漏洞攻防必杀技[专题]
·防范SQL注入攻击的代码
·SQL注入利用的几大步骤
·实例讲解在JSP开发中的对象和范围属性
相关软件:
·UML面向对象建模技术 csf 视频教程
·深度探索C++对象模型
·内置对象实现超酷日历
·面向对象与传统软件工程
·北大“面向对象程序设计”上机考试题
·用面向对象方法与C++语言描述
·COM 技术内幕——微软组件对象模型
·VB中创建超长时间计时器对象
·精通HibernateJava对象持久化技术详解
·注入Flash管理系统

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot