维护啦:提供专业网站维护服务,以实惠、方便、快捷著称!一次服务,终身朋友! ·付款帐号 ·联系我们
网站维护,网站维护教程,如何维护网站
网站维护热线: 网站维护咨询热线 网站维护:
网站维护
网站建设: 网站建设
首页
维护介绍
维护套餐
案例分享
维护申请
维护反馈
维护知识
行业动态
联系我们
建站服务请点这里>>
网站维护申请
当前位置:网站维护 > 维护知识 > 程序知识

ASP、Request对象与SQL注入

来源:网站维护 作者:www.weihula.com 人气: 2015-7-14
内容提示:Request是ASP里的一个内部对象,用于获取HTTP请求中传递的任意信息(如头信息、表单数据、cookies等等)。
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) 来获取数据就不得而知咯。
【声明】本文章系本站编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!
收藏本页到:

感谢您对维护啦的大力支持!

上一篇 上一篇:ASP实现网页打开任何类型文件都保存的方法
下一篇 下一篇:ASP网站程序自动升级实现的方法
返回文章目录 返回维护知识
icon-008.jpg (3733 bytes) icon-009.jpg (3728 bytes)
维护啦是做什么的,点此了解>>
维护啦的优势是什么,点此了解>>
维护啦服务有哪些,点此了解>>
维护服务申请,点这里>>
维护动态 网站维护套餐介绍 更多动态 维护动态
·入门型网站维护服务 申请>>
·标准型网站维护服务 申请>>
·经济型网站维护服务 申请>>
·商务型网站维护服务 申请>>
·豪华型网站维护服务 申请>>
·专业型网站维护服务 申请>>
·订制型网站维护服务 申请>>
维护动态 网站维护案例 更多动态 维护动态
西箔侯铝箔餐盒
铜川市重德热力运营管理有限公司
青海旅游包车
西安中联传感技术有限公司
莱德种业
维护动态 网站维护知识 更多动态 维护动态
·域名知识 ·空间知识
·网页知识 ·程序知识
·数据库知识 ·邮件知识
·安全知识 ·优化知识
·营销知识 ·其他知识
网站维护 网站维护申请 网站维护申请点此进入 网站维护意见反馈 反馈意见

网站维护电话咨询

网站维护 返回顶部
关于维护啦 | 案例分享 | 维护套餐 | 维护申请 | 意见反馈 | 维护知识 | 行业动态 | 友情链接 | 网站导航 | 联系方式
2023 © 网站维护 www.weihula.com 版权所有 ICP11006297