网络安全第六讲数据库安全实例-sql注入精编版

上传人:ahu****ng1 文档编号:145188680 上传时间:2020-09-17 格式:PPTX 页数:43 大小:1.49MB
返回 下载 相关 举报
网络安全第六讲数据库安全实例-sql注入精编版_第1页
第1页 / 共43页
网络安全第六讲数据库安全实例-sql注入精编版_第2页
第2页 / 共43页
网络安全第六讲数据库安全实例-sql注入精编版_第3页
第3页 / 共43页
网络安全第六讲数据库安全实例-sql注入精编版_第4页
第4页 / 共43页
网络安全第六讲数据库安全实例-sql注入精编版_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《网络安全第六讲数据库安全实例-sql注入精编版》由会员分享,可在线阅读,更多相关《网络安全第六讲数据库安全实例-sql注入精编版(43页珍藏版)》请在金锄头文库上搜索。

1、数据库安全实例: SQL注射,本讲目标,了解网站的组成结构 理解SQL注射的基本原理 掌握工具及手工注射的方法 如何防范SQL注射攻击,一 网站是如何构成的,一般说来,网站基本构成方式为以下三部分: 1、前台页面 (供用户浏览) 2、后台管理控制台 (供管理员管理此站点) 3、后台数据库 (记录用户密码及其他数据) 网站结构随页面类型和数据库类型不同而呈现多种组合.,了解网页的类型,准备工作,网页的类型,静态网页 *.html *.htm HyperText Markup Language 超文件标记语言 动态网页*.asp *.aspx *.php *.cgi *.jsp,思考: 动态网站后

2、台支持的数据库有哪些?,动态网页的组合,On Windows: IIS + asp + acess IIS + asp + ms-sql On Unix/Linux: Apache + php + mysql Apache + jsp + oracle,70%,30%,思 考:,网站前台脚本语言与后台数据库之间是如何连接的? 如 asp 与 access 是如何连接的? 如 asp 与 ms-sql 是如何连接的?,数据库连接文件,Asp+access,Asp+mssql,二 SQL注射的基本原理,SQL注射的历史 SQL注射的概念 SQL注射的原理 SQL注射的优点,SQL注射的历史,早在1

3、999年SQL注射攻击已经在国外出现了,那时国内技术不成熟,直到2002年我国才逐步兴起SQL注射,2004年SQL注射技术达到顶峰,2005年和2006年WEB攻击技术却未出现大的进步。尽管SQL防御方法早已出现,但是注射攻击的灵活性和复杂性使得注射攻击仍然为当前WEB攻击方式的先锋军。,什么是SQL注射及其原理,我们可以通俗的理解为攻击者利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的数据库查询代码,使数据库泄露敏感信息,如:网站后台管理员密码,甚至直接利用数据库高权限间接攻击服务器,从而达到入侵目的。 这就是所谓的SQL Injection,即SQL注入。,

4、SQL注射的优点,SQL注射是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注射发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注射的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,是SQL注射成功的关键。,三 实施SQL注射攻击,准备工作 理清攻击思路 利用SQL注射工具攻击 手工注射攻击 上传木马 提权,准备工作概 念,什么是webshell? webshell是web入侵的脚本攻击工具。简单的说来,webshell就是一个asp或php木马后

5、门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。,Webshell 的优点 webshell 最大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。,什么是“木马”? “木马”全称是“特洛伊木马(Tro

6、jan Horse)”,原指古希腊士兵藏在木马内进入敌方城市从而占领敌方城市的故事。 在Internet上,“特洛伊木马”指一些程序设计人员在其可从网络上下载(Download)的应用程序或游戏中,包含了可以控制用户的计算机系统的程序,可能造成用户的系统被破坏甚至瘫痪。,附: 什么是特洛伊木马?,“特洛伊木马”(trojan horse)简称“木马”,据说这个名称来源于希腊神话木马屠城记。古希腊有大军围攻特洛伊城,久久无法攻下。于是有人献计制造一只高二丈的大木马,假装作战马神,让士兵藏匿于巨大的木马中,大部队假装撤退而将木马摈弃于特洛伊城下。城中得知解围的消息后,遂将“木马”作为奇异的战利品拖

7、入城内,全城饮酒狂欢。到午夜时分,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,部队里应外合,焚屠特洛伊城。后世称这只大木马为“特洛伊木马”。如今黑客程序借用其名,有“一经潜入,后患无穷”之意。,什么是后门? 大家都知道,一台计算机上有65535个端口,那么如果把计算机看作是一间屋子,那么这65535个端口就可以它看做是计算机为了与外界连接所开的65535扇门。每个门的背后都是一个服务。有的门是主人特地打开迎接客人的(提供服务),有的门是主人为了出去访问客人而开设的(访问远程服务)理论上,剩下的其他门都该是关闭着的,但偏偏由于各种原因,很多门都是开启的。于

8、是就有好事者进入,主人的隐私被刺探,生活被打扰,甚至屋里的东西也被搞得一片狼迹。这扇悄然被开启的门就是“后门”。,友情提示:,为了全面了解动态网页回答的信息,首选请调整IE的配置。 把IE菜单-工具-Internet选项高级显示友好HTTP错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。,Web攻击思路,踩点 (尽可能分析一切信息) 找上传漏洞 (有,上传木马) 暴库 (下载成功-6) SQL注射 (先工具后手工) 获取Web管理员密码 (否-另寻他法) 登陆后台 (否-万能密码;再否-另寻.) 上传木马 (有过滤-找备份或

9、另寻.) 提权 (略),仅供参考,根据实际情况不同,应有所改变,SQL注射思路,判断url是否可以注射 判断数据库类型 确定XP_CMDSHELL可执行情况 猜测或直接得出表名和字段名 构造语句得出字段的值 如果第3步中XP_CMDSHELL可执行,那 么就可以直接获得服务器最高权限。,仅供参考,根据实际情况不同,应有所改变,利用工具注射,针对Access数据库和Mssql数据库类型操作差不多。 工具有很多:明小子啊NBSI. 目的:获得后台管理员密码。 Demo,SQL注入的位置,SQL注入一般存在于形如:等带有参数的ASP动态网页中。 “id=YY”即为页面查询条件。,注:有时一个动态网页

10、中可能只有一个参数,有时可能有N个参数,有时是整型参数,有时是字符串型参数,不能一概而论。总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入。如果ASP程序员没有安全意识,不进行必要的字符过滤,存在SQL注入的可能性就非常大。,手工注射-注射点类型,在页面执行中的含义: 当YY为整型参数时 当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:select * from 表名 where id=YY 当YY为字符串型参数时 当输入的参数YY为字符串时,通常abc.asp中SQL语句原貌大致如下:select * from 表名 where id=YY,

11、注意:不做特殊说明时所有参数均为整型参数,所有字符均在英文输入法状态下输入,并且站点结构为IIS+asp,判断当前url是否为注射点,参数为字符串型参数时如何判断(YY为字符串型参数) (单引号) abc.asp运行异常; and 1=1 abc.asp运行正常,而且与运行结果相同 and 1=2 abc.asp运行异常; 如果以上三步满足,abc.asp中一定存在SQL注入漏洞。那么就是一个注射点,判断数据库类型,利用单引号判断Access ,我们在这个地址后面加上单引号,服务器会返回下面的错误提示:Microsoft JET Database Engine 错误 80040e14字符串的语

12、法错误 在查询表达式 ID=49 中。/showdetail.asp,行8 我们可以得出网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC (mssql所用).,判断数据库类型cont.,利用单引号判断Mssql ,我们在这个地址后面加上单引号服务器会返回下面的错误提示: Microsoft OLE DB Provider for ODBC Drivers 错误 80040e21 ODBC 驱动程序不支持所需的属性。 /zrxx.asp,行 97 这就是使用Mssql数据库的站点了,判断数据库类型cont.,利用系统表 ACCESS的系统表是msysobjects,且

13、在WEB环境下没有访问权限,而MS-SQL的系统表是sysobjects,在WEB环境下有访问权限。对于以下两条语句:1、 and (select count(*) from sysobjects)02、 and (select count(*) from msysobjects)0,注:若数据库是MS-SQL,则第一条一定运行正常, 第二条则异常; 若是ACCESS则两条都会异常。,确定XP_CMDSHELL执行情况,and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = X AND name = xp_cmdshell

14、) 判断XP_CMDSHELL是否存在,返回正常则存在. exec master.xp_cmdshellnet user 123 123/add;- 增加一个用户123,密码也为123,此处可使用任何NET命令。 注:此处注射必须要在Mssql下有SA权限,所以一旦成功可以直取服务器最高权限,不过成功率很低.,猜解表名和字段名,针对Access数据库 .abc.asp?id=YY and 0(select count(*) from admin) -判断是否存在admin这张表 .abc.asp?id=YY and 0(select count(username) from admin) -判

15、断是否存在username这个字段 .abc.asp?id=YY and 0(select count(password) from admin) -判断是否存在password这个字段 注意:如果上面两条注入语句返回正常就说明存在表名和字段名,否则根 据常用表名和字段名多次更改和判断,这里只能凭借猜解运气. 常用表名和字段名在明小子SQL注入设置检测区中可以找到,实验:,IIS+ASP+ACCESS 某站点SQL注射 DEMO,本讲总结,网站的组成 IIS + asp + acess IIS + asp + ms-sql SQL注射的基本原理 攻击者从客户端提交特殊的数据库查询代码,使数据库

16、泄露敏感信息. 工具及手工注射的方法 判断注射点判断数据库类型猜解表名和列名得出字段值找后台 手工注射工具:明小子的使用方法,实验,IIS+ASP+ACCESS(某站点),IIS+ASP+ACCESS,CLIENT,WEB SERVER,1、有时候读书是一种巧妙地避开思考的方法。20.9.1720.9.17Thursday, September 17, 2020 2、阅读一切好书如同和过去最杰出的人谈话。09:35:2509:35:2509:359/17/2020 9:35:25 AM 3、越是没有本领的就越加自命不凡。20.9.1709:35:2509:35Sep-2017-Sep-20 4、越是无能的人,越喜欢挑剔别人的错儿。09:35:2509:35:2509:35Thursday, September 17, 2020 5、知人者智,自知者明。胜人者有力,自胜者强。20.9.1720.9.1709:35:2509:35:25September 17, 2020 6、意志

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号