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

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) 来获取数据就不得而知咯。
【声明】本文章系本站编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请与本站联系,我们将在第一时间删除内容!
上一篇 上一篇:ASP网站程序自动升级实现的方法
下一篇 下一篇:ASP实现网页打开任何类型文件都保存的方法
返回维护知识
维护动态 网站维护案例 更多动态 维护动态
积木人展览展示
海德睿工程
创际门窗
天津雷公
利君云商
维护动态 行业动态 更多动态 维护动态
谷歌悄然删去人工智能团队网页中
谷歌Colab推出数据科学助手
天价域名再现:ai.com挂牌
京东云发布八大领先智算产品 五
全球开源大模型榜单揭晓,阿里通
维护动态 网站维护知识 更多动态 维护动态
网站中木马了怎么办,怎么清除?
企业建设网站的好处
网站维护的工作内容有哪些?
制作网站需要关注这些核心要素
网站优化中十分影响排名的是什么
网站维护申请 网站维护申请点此进入 网站维护意见反馈 反馈意见

网站维护电话咨询

返回顶部
关于我们 | 案例分享 | 维护套餐 | 维护申请 | 意见反馈 | 维护知识 | 行业动态 | 联系方式
2025 © 网站维护 www.weihula.com 版权所有