2006-11-29

SQL概述及在网络安全中的应用(下)

来源: 本站收集整理 作者:佚名 评论 0 条
 

我们来获得第三行的值,构造语句如下:' UNION ALL SELECT FieldOne, FieldTwo, FieldThree FROM TableOne WHERE FieldOne NOT IN ('Alpha', 'AlphaAlpha') AND FieldTwo NOT IN ('Beta', 'BetaBeta') AND FieldThree NOT IN ('Delta', 'DeltaDelta') AND ''='

这样就避免了得到第一次和第二次我们已经得到的值,我们就这样试下去会得到数据库中所有的值。这看起来似乎确实比较麻烦,但在这里却是最有效的,不是么?

3.3 插入

3.3.1 插入基础

要害字INSERT 被用于向数据库添加信息,通常使用INSERT主要在包括用户注册,论坛,添加商品到购物车,等等。检查INSERT使用的弱点和检查WHERE一样。你可能不想使用INSERT,如何避免被利用弱点是一个重要的考虑问题。INSERT注入尝试经常会让数据库以行形式返回结果导致泛滥的单独的引用和SQL关健字的意义可能改变.取决于治理员的注重和信息对数据库的操作,这个是要引起注重的,刚刚说过的那些,INSERT注入和SELECT注入的不同。我们在一个答应用户进行各种注册,这就提供了一个你输入你的名字,地址,电话等等的表单。在你提交了这个表单之后,为了得到进一步的INSERT的弱点,你必须能够看到你提交的信息。它在那里不要紧。可能当你登陆根据在数据库里存储的名字的给予你权利的时候,可能在发送你的spam邮件的。。,谁知道,寻找一个途径至少可以看到你输入的信息。

一个插入的请求看起来象这样:INSERT INTO TableName VALUES ('Vaule One','Value Two','Value Three') 你想可能利用一个在参数VALUES中的子句来看到其他的数据。我们可以使用这种办法,sql的代码象这样:SQLString ="INSERT INTO TableName VALUES ('" & strValueOne & "', '" & strValueTwo & "', '" & strValueThree & "')"我们象这样填写表单:Name: ' (SELECT TOP 1 FieldName FROM TableName) ' Email: blah@blah.com Phone: 333-333-3333 使SQL的声明象这样 : INSERT INTO TableName VALUES ('' (SELECT TOP 1 FieldName FROM TableName) '', 'blah@blah.com', '333-333-3333')当你到了个人设置页面查看你的使用信息,你将看到的第一个字段这个通常是用户名r假如你使不在你的subselect中使用TOP 1,你将得到一个错误信息说你的subselect返回了太多记录,你能查看表中所有的行,使用NOT IN()同样的方法你可以得到单独的记录。

3.4. SQL服务器存储过程利用

3.4.1 存储过程基础

4. 一个完整安装的MSSQL服务器有上千的存储过程。假如你能在一个后台使用mssql的网页应用程序得到SQL注入,你能使用这些存储过程完成一些非凡的成果。我将讨论很少的非凡的过程。取决于网页程序使用数据库的用户,只有一些可以工作,并不是所有的用户都可以利用。第一件事你应该知道存储过程注入不能通过存储过程的返回值来确定你的注入是否成功.取决于你想完成什么,你可能不需要得到数据。你可以找到返回给你的数据的其他意义。存储过程注入比一般的查询注入要轻易些,存储过程的注入的弱点利用看起来象这样。

simplequoted.asp?city=seattle';EXEC master.dbo.xp_cmdshell 'cmd.exe dir c:'

注重,

Notice how a valid argument is supplied at the beginning and followed by a quote and the final argument to the stored procedure has no closing quote. This will satisfy the syntax requirements inherent in most quoted vulnerabilities. You may also have to deal with parentheses, additional WHERE statements, etc.但是在这以后将不需要担心列和数据的类型的匹配。这个可能弱点的输出象程序无法返回错误信息一样。我最喜欢存储过程。
共6页: 上一页 [1] [2] [3] 4 [5] [6] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:正则表达式的基本语法  
下一篇:回顾:Visual Basic 十年风云
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号