数据库攻击.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库攻击

数据库攻击 例如,某网页上有一文本框,允许你输入用户名称,但是它限制你只能输入4个字符。许多程序都是在客户端限制,然后用msgbox弹出错误提示。如果你攻击时需要突破此限制,只需要在本地做一个一样的主页,只是取消了限制,通常是去掉VBscript或IavaScript的限制程序,就可以成功突破。 如果是javascript做的,干脆临时把浏览器的脚本支持关掉。如果是 有经验的程序员常常在程序后台再做一遍检验,如果有错误就用response.write或类似的语句输出错误。 2。对SQL的突破 例如某网页需要你输入用户名称和口令,这样就有两个文本框等待你的输入,现在我们假设有一用户adam,我们不知道他的口令,却想以他的身份登陆。 正常情况下,我们在第一个文本框输入adam,第二个文本框输入1234之类的密码,如果密码正确就可以进入,否则报错。 程序中的查询语句可能是: sql=select * from user where username=text1.value and passwd= text2.value 执行时候就是 select * from user where username=adam and passwd=1234 好了, 如果我们在text2里输入的不是1234,而是1234or 1=1 我们的sql语句就成了, select * from user where username=adam and passwd=1234 or 1=1 我们就可以进入了。。。 有经验的用户就在程序中增加对单引号等特殊字符的过滤。 但是,一般人习惯上有两种登录认证方式我就用ASP的VBScript做例子了: 一是用select * from ... where username = Request.Form(username) password = Request.Form(password),然后判断结果是否为空来验证。其实还有一种方式: 用select * from ... where username = Request.Form(username), 然后判断结果集中的密码是否和输入相同来验证,这种方式就安全一些了。 3。利用多语句执行漏洞。 根据上面的思路,如果用户根据书名(例如linux入门)查询所有的书,SQL语句为 select ,book.content from book where bookname=linux入门 如果我们输入的不是linux入门而是 linux入门 delete from user where 1 = 1 从而构成对表的删除。 成功的前提条件是对方允许多条语句的执行。 由于程序没有处理边界符“”产生的漏洞的危害程度和结果集的类型及数据库的配置有很大的关系。首先说结果集,如果结果集只支持单条的SQL语句,那么你所能做的只是上面提到的那种在密码框内输入 or 1 = 1来登录,其他的做不了。 我们还可以用这种方法在数据库里增加用户。 4。SQL Server装完后自动创建一个管理用户sa,密码为空。而好多人装完后并不去改密码,这样就留下了一个极大的安全问题,我稍后再细说。 程序中的连接一般用两种,不是用global.asa就是用SSL文件。SSL文件一般人习惯放到到Web的/include或/inc目录下。而且文件名常会是conn.inc、db_conn.inc、dbconninc,等等,反正有时能猜到。 如果这个目录没有禁读,一旦猜到文件名就可以了,因为.inc一般不会去做关联的,直接请求不是下载就是显示源文件。 还有当主要程序放到一个后缀为.inc的文件而没有处理“”,当运行出错时返回的出错信息中常会暴露.inc文件,我遇到过几次这样的情况。其实可以在IIS里设置来不回应脚本出错信息的。 5。数据库的利用。 如果程序中的连接用户权限极小,甚至多数表只能读,你就很难有所作为了。这时所能做的是能猜出表名和字段名来进行删除数据或表的操作。 INSERT语句利用起来讨厌一些,主要是里面有好多列,而且还要处理掉最后的“)”。 我就以我最熟悉的MS SQL Server来说一些吧。它的默认端口号是1433,你用telnet连一下服务器的这个端口,如果能连上去一般是装了MS SQL Server,当然这是可以改掉的。 好了,说一说数据库的利用。 如果对方的数据直接在Web服务器上而且你知道端口号,有帐号就干脆用SQL Analyzer来直接连接数据库。在它里面可以执行SQL语句。常用的是存储过程master.dbo.xp_cmdshell,这是

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档