收藏 分享(赏)

网络攻击与防护论文7.doc

上传人:dreamzhangning 文档编号:2330861 上传时间:2018-09-10 格式:DOC 页数:16 大小:577.15KB
下载 相关 举报
网络攻击与防护论文7.doc_第1页
第1页 / 共16页
网络攻击与防护论文7.doc_第2页
第2页 / 共16页
网络攻击与防护论文7.doc_第3页
第3页 / 共16页
网络攻击与防护论文7.doc_第4页
第4页 / 共16页
网络攻击与防护论文7.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、江西理工大学应用科学学院网络攻击与防御课程作业论文题 目: 利用 SQL 注入漏洞入侵网站 系 别:_ 信息工程系_班 级: 网络工程 091 姓 名: 刘小彪 成 绩:_二一二年四月利用 SQL 注入漏洞入侵网站一、选题的目的和意义由于现今信息技术发展迅速,网络安全越来越成为虚拟网络中不可或缺的一部分。然而,因为各种 Web 服务器的漏洞与程序的非严密性,导致针对服务器的脚本攻击时间日益增多,其大多数是通过 ASP 或者 PHP 等脚本主图作为主要攻击手段,加之 Web 站点迅速膨胀的今天,基于两者的 SQL 注入也慢慢成为目前攻击的主流方式。其应用方式主要集在利用服务端口接收用户输入的功能

2、,将构造的语句传给数据库服务器,让其执行者开发者规定外的任务。本次针对 SQL 注入技术进行专题研究,进行工具注入的实战详解。简单介绍本次专题研究背景、来源以及研究意义;阐述 SQL 注入技术的背景与网络环境;详细介绍本次专题研究 SQL 注入攻击的实验过程和结果分析。二、目前该选题的研究现状目前至少 70%以上的 Web 站点存在着 SQL 注入的缺陷,恶意用户便可以利用服务器、数据库配置的疏漏和精心构造的非法语句通过程序或脚本侵入服务器获得网站管理员的权限和数据库的相关内容,严重的还可以获得整个服务器所在内网的系统信息,它们的存在不仅对数据库信息造成威胁,甚至还可以威胁到系统和用户本身。所

3、以当今的网络基本处于人人自危大家却不知道的状况,网络安全已经日益严重,许多的黑客能轻易的入侵一些中小型企业的网站,造成的财产损失还是很大的,对此我们有必要研究探索这方面的问题。三、设计思路分析手工猜解四部曲:数据库名:shop_admin 字段名: admin password 用户名:admin密码:7a57a5a743894a01(admin 的 MD5) SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到程序执行的 SQL 语句中构成攻击者想执行的任意 SQL 语句,分析服务器返回的信息获得有关网站或服务器的敏感信息,进一步获得非法的信息和权限。

4、 利用 WEB 应用对用户输入验证设计上的疏忽,或验证的不严格,从而使用户输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让 WEB 应用用户有机会直接对后台数据库系统下达指令,实施入侵行为。SQL 注入的产生主要是由动态字符串构建和不安全的数据库配置产生,其中动态字符串构建主要是由不正确的处理转义字符、不正确的处理类型、不正确的处理联合查询、不正确的处理错误和不正确的处理多次提交构成。不安全的数据库配置产生主要是由默认预先安装的用户、以 root,SYSTEM 或者Administrator 权限系统用户来运行和默认允许很多系统函数(如xp_cmdshell,OPENROWSET 等

5、)构成。如果一个恶意用户提供的字段并非一个强制类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个 SQL 语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型) 就会发生这种攻击。例如:Statement:=“SELECT*FROM data WHERE id=“+a_variable+“;“从这个语句可以看出,作者希望 a_variable 是一个与“id“字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。Web 应用程序开发时没有对用户的输入进行转义字符过滤时 ,就会发生这种形式的注入式攻击,它会被传递给一个 SQL 语句.这样就会

6、导致恶意用户对数据库上的语句实施操纵。例如,下面的这行代码就会演示这种漏洞:Statement:=“SELECT*FROM users WHERE name=“+userName+“;“此段代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是应用程序开发者所期望的那样例如,将用户名变量(即 username)设置为:aor 1=1 ,此时原始语句发生了变化 :SELECT*FROM users WHERE name=aOR1=1;如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为

7、赋值1=1 永远是真。在一些特定的 SQL 服务器上,如在 SQL Server 中,任何一个 SQL 命令都可以通过这种方法被注入,包括执行多个语句。Union 查询动机是绕过验证或者提取数据。攻击者在查询语句中注入 Union SELECT 语句,并且因为用户控制“SELECT 语句“ 的内容,攻击者可以得到想要的信息。Union 查询 SQL 注入测试。假设我们有如下的查询:SELEC Name,Psw,Tel FROM Users WHERE Id=$id 然后我们设置 id 的值为:$id=1UNION ALL SELECT bank CardNumber,1,1 FROM Bank

8、CardTable那么整体的查询就变为:SELECT Name,Psw,Tel FROM Users WHERE Id=1 UNION ALL SELECT bankCardNumber,1,FROM BankCarTable显然这样就能得到所有银行卡用户的信息。使用注释通常可以使攻击者绕过验证。SQL 在查询中支持注释,如,-、#等。通过注入注释符,恶意用户或者攻击者可以毫不费力的截断 SQL 查询语句。例如,对于查询语句SELECT*FROM users WHERE usermame=uname and Password=psw,如果恶意用户输入参数uname 的值为 admin-,Pas

9、sword 的值为空,那么查询语句变为 SELECT*FROM users WHERE usermame=admin and Password=,也就 SELECT*FROM users WHERE usermame=admin。这就使得恶意用户不用提供密码就可以通过验证。4、设计过程描述 SQL 注入攻击可以手工进行,也可以通过 SQL 注入攻击辅助软件如HDSI、Domain、NBSI 等,其实现过程可以归纳为以下几个阶段:(1)寻找 SQL 注入点;寻找 SQL 注入点的经典查找方法是在有参数传入的地方添加诸如“and 1=1” 、 “and 1=2”以及“ ”等一些特殊字符,通过浏览器

10、所返回的错误信息来判断是否存在 SQL 注入,如果返回错误,则表明程序未对输入的数据进行处理,绝大部分情况下都能进行注入。(2)获取和验证 SQL 注入点;找到 SQL 注入点以后,需要进行 SQL 注入点的判断,常常采用2.1中的语句来进行验证。(3)获取信息;获取信息是 SQL 注入中一个关键的部分,SQL 注入中首先需要判断存在注入点的数据库是否支持多句查询、子查询、数据库用户账号、数据库用户权限。如果用户权限为 sa,且数据库中存在 xp_cmdshell 存储过程,则可以直接转(4)。(4)实施直接控制;以 SQL Server 2000为例,如果实施注入攻击的数据库是 SQL Se

11、rver 2000,且数据库用户为 sa,则可以直接添加管理员账号、开放3389远程终端服务、生成文件等命令。(5)间接进行控制。间接控制主要是指通过 SQL 注入点不能执行 DOS 等命令,只能进行数据字段内容的猜测。在 Web 应用程序中,为了方便用户的维护,一般都提供了后台管理功能,其后台管理验证用户和口令都会保存在数据库中,通过猜测可以获取这些内容,如果获取的是明文的口令,则可以通过后台中的上传等功能上传网页木马实施控制,如果口令是明文的,则可以通过暴力破解其密码。利用 WEB 应用对用户输入验证设计上的疏忽,或验证的不严格,从而使用户输入的数据中包含对某些数据库系统有特殊意义的符号或

12、命令,让 WEB 应用用户有机会直接对后台数据库系统下达指令,实施入侵行为。SQL 注入的产生主要是由动态字符串构建和不安全的数据库配置产生,其中动态字符串构建主要是由不正确的处理转义字符、不正确的处理类型、不正确的处理联合查询、不正确的处理错误和不正确的处理多次提交构成。不安全的数据库配置产生主要是由默认预先安装的用户、以 root,SYSTEM 或者Administrator 权限系统用户来运行和默认允许很多系统函数(如xp_cmdshell,OPENROWSET 等)构成。如果一个恶意用户提供的字段并非一个强制类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个 SQL 语句中使

13、用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型) 就会发生这种攻击。例如:Statement:=“SELECT*FROM data WHERE id=“+a_variable+“;“从这个语句可以看出,作者希望 a_variable 是一个与“id“字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。Web 应用程序开发时没有对用户的输入进行转义字符过滤时 ,就会发生这种形式的注入式攻击,它会被传递给一个 SQL 语句.这样就会导致恶意用户对数据库上的语句实施操纵。五、设计成果展示本次入侵用到的软件:Domain 入侵工具。下面是这个软件的界面:这个

14、是由黑客动画吧开发的黑客软件接下来我们要找一个入侵的站点:这个就是我们要入侵的站点,一个书店网站。以下是入侵操作:首先我们把网站的地址复制到当前路径连接之后它自动扫描到了该网站的漏洞,如上面红色显示我们选择其中一个漏洞进行猜解,发现 shop_admin 数据库可用同样我们猜解出了该表的列名,admin passdord 是我们要用的用户名和密码我们猜解出了 16 位的密码,说明它是用 MD5 加密的我们扫描到网站后台管理地址我们通过 MD5 在线破解网站和扫描到的乱码成功破解了后台的密码最后我们用猜解到的用户名和密码成功登陆到该网站的后台管理系统。至此我们成功入侵了该网站。课设总结本次课程设

15、计我们成功的入侵了一个中小企业网站的后台操作系统,对网站 SQL 注入攻击及网站安全技术进行了比较详细地分析,其中主要的介绍了破解管理员权限的方法以及 MD5 加密的破解算法分析。通过本次课程设计使我掌握了对 SQL 注入攻击漏洞的检测技术和预防 SQL 注入的手段。也让我感觉到了目前网络安全正处于十分严峻的状态,很多的企业网站看起来很不错,其实就在我们轻而易举的运用黑客软件的扫描下漏洞百出,也许就因为一个很普通的漏洞而损失了数据。解到信息系统网站中存在的普遍安全漏洞。网站的安全稳定运行,应侧重于预防,不断增强安全意识,采取各种预防措施,才能及时有效地排除安全隐患。网络安全知识需要普及,有人说在这个时代谁掌握了信息谁就主宰了整个世界,而当今时代信息安全越来越面临很大的挑战,外国正处于计算机飞速发展的时期,大多数的人都学会了应用计算机,但是计算机安全技术一直都是一个很敏感的词汇,曾一度都遭到很多学者的排挤,到底要不要普及安全知识,我想说那是必然的。我们要很好的防黑就一定要学会当黑客,只有这样 防御结合 才能让我们的计算机更安全。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报