网络攻击与防护论文7.docx
- 文档编号:4390993
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:9
- 大小:504.05KB
网络攻击与防护论文7.docx
《网络攻击与防护论文7.docx》由会员分享,可在线阅读,更多相关《网络攻击与防护论文7.docx(9页珍藏版)》请在冰豆网上搜索。
网络攻击与防护论文7
江西理工大学使用科学学院
《网络攻击和防御》课程作业论文
题目:
利用SQL注入漏洞入侵网站
系别:
______信息工程系_______________
班级:
网络工程091
姓名:
刘小彪
成绩:
_____________________
二〇一二年四月
利用SQL注入漏洞入侵网站
一、选题的目的和意义
由于现今信息技术发展迅速,网络安全越来越成为虚拟网络中不可或缺的一部分。
然而,因为各种Web服务器的漏洞和程序的非严密性,导致针对服务器的脚本攻击时间日益增多,其大多数是通过ASP或者PHP等脚本主图作为主要攻击手段,加之Web站点迅速膨胀的今天,基于两者的SQL注入也慢慢成为目前攻击的主流方式。
其使用方式主要集在利用服务端口接收用户输入的功能,将构造的语句传给数据库服务器,让其执行者开发者规定外的任务。
本次针对SQL注入技术进行专题研究,进行工具注入的实战详解。
简单介绍本次专题研究背景、来源以及研究意义;阐述SQL注入技术的背景和网络环境;详细介绍本次专题研究SQL注入攻击的实验过程和结果分析。
二、目前该选题的研究现状
目前至少70%以上的Web站点存在着SQL注入的缺陷,恶意用户便可以利用服务器、数据库配置的疏漏和精心构造的非法语句通过程序或脚本侵入服务器获得网站管理员的权限和数据库的相关内容,严重的还可以获得整个服务器所在内网的系统信息,它们的存在不仅对数据库信息造成威胁,甚至还可以威胁到系统和用户本身。
所以当今的网络基本处于人人自危大家却不知道的状况,网络安全已经日益严重,许多的黑客能轻易的入侵一些中小型企业的网站,造成的财产损失还是很大的,对此我们有必要研究探索这方面的问题。
三、设计思路分析
手工猜解四部曲:
数据库名:
shop_admin字段名:
adminpassword用户名:
admin
密码:
7a57a5a743894a01(admin的MD5)
SQL注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到程序执行的SQL语句中构成攻击者想执行的任意SQL语句,分析服务器返回的信息获得有关网站或服务器的敏感信息,进一步获得非法的信息和权限。
利用WEB使用对用户输入验证设计上的疏忽,或验证的不严格,从而使用户输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让WEB使用用户有机会直接对后台数据库系统下达指令,实施入侵行为。
SQL注入的产生主要是由动态字符串构建和不安全的数据库配置产生,其中动态字符串构建主要是由不正确的处理转义字符、不正确的处理类型、不正确的处理联合查询、不正确的处理错误和不正确的处理多次提交构成。
不安全的数据库配置产生主要是由默认预先安装的用户、以root,SYSTEM或者Administrator权限系统用户来运行和默认允许很多系统函数(如xp_cmdshell,OPENROWSET等)构成。
如果一个恶意用户提供的字段并非一个强制类型,或者没有实施类型强制,就会发生这种形式的攻击。
当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。
例如:
Statement:
="SELECT*FROMdataWHEREid="+a_variable+";"
从这个语句可以看出,作者希望a_variable是一个和"id"字段有关的数字。
不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。
Web使用程序开发时没有对用户的输入进行转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句.这样就会导致恶意用户对数据库上的语句实施操纵。
例如,下面的这行代码就会演示这种漏洞:
Statement:
="SELECT*FROMusersWHEREname='"+userName+"';"
此段代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是使用程序开发者所期望的那样例如,将用户名变量(即username)设置为:
a′or′1′=1′,此时原始语句发生了变化:
SELECT*FROMusersWHEREname=′a′OR′1′=′1′;
如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值
′1′=′1永远是真。
在一些特定的SQL服务器上,如在SQLServer中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。
Union查询动机是绕过验证或者提取数据。
攻击者在查询语句中注入UnionSELECT语句,并且因为用户控制"SELECT语句"的内容,攻击者可以得到想要的信息。
Union查询SQL注入测试。
假设我们有如下的查询:
SELECName,Psw,TelFROMUsersWHEREId=$id然后我们设置id的值为:
$id=1UNIONALLSELECTbankCardNumber,1,1FROMBankCardTable
那么整体的查询就变为:
SELECTName,Psw,TelFROMUsersWHEREId=1UNIONALLSELECTbankCardNumber,1,FROMBankCarTable
显然这样就能得到所有银行卡用户的信息。
使用注释通常可以使攻击者绕过验证。
SQL在查询中支持注释,如,--、#等。
通过注入注释符,恶意用户或者攻击者可以毫不费力的截断SQL查询语句。
例如,对于查询语句SELECT*FROMusersWHEREusermame=unameandPassword=psw,如果恶意用户输入参数uname的值为admin--,Password的值为空,那么查询语句变为SELECT*FROMusersWHEREusermame=adminandPassword=,也就SELECT*FROMusersWHEREusermame=admin。
这就使得恶意用户不用提供密码就可以通过验证。
4、设计过程描述
SQL注入攻击可以手工进行,也可以通过SQL注入攻击辅助软件如HDSI、Domain、NBSI等,其实现过程可以归纳为以下几个阶段:
(1)寻找SQL注入点;寻找SQL注入点的经典查找方法是在有参数传入的地方添加诸如“and1=1”、“and1=2”以及“’”等一些特殊字符,通过浏览器所返回的错误信息来判断是否存在SQL注入,如果返回错误,则表明程序未对输入的数据进行处理,绝大部分情况下都能进行注入。
(2)获取和验证SQL注入点;找到SQL注入点以后,需要进行SQL注入点的判断,常常采用2.1中的语句来进行验证。
(3)获取信息;获取信息是SQL注入中一个关键的部分,SQL注入中首先需要判断存在注入点的数据库是否支持多句查询、子查询、数据库用户账号、数据库用户权限。
如果用户权限为sa,且数据库中存在xp_cmdshell存储过程,则可以直接转(4)。
(4)实施直接控制;以SQLServer2000为例,如果实施注入攻击的数据库是SQLServer2000,且数据库用户为sa,则可以直接添加管理员账号、开放3389远程终端服务、生成文件等命令。
(5)间接进行控制。
间接控制主要是指通过SQL注入点不能执行DOS等命令,只能进行数据字段内容的猜测。
在Web使用程序中,为了方便用户的维护,一般都提供了后台管理功能,其后台管理验证用户和口令都会保存在数据库中,通过猜测可以获取这些内容,如果获取的是明文的口令,则可以通过后台中的上传等功能上传网页木马实施控制,如果口令是明文的,则可以通过暴力破解其密码。
利用WEB使用对用户输入验证设计上的疏忽,或验证的不严格,从而使用户输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让WEB使用用户有机会直接对后台数据库系统下达指令,实施入侵行为。
SQL注入的产生主要是由动态字符串构建和不安全的数据库配置产生,其中动态字符串构建主要是由不正确的处理转义字符、不正确的处理类型、不正确的处理联合查询、不正确的处理错误和不正确的处理多次提交构成。
不安全的数据库配置产生主要是由默认预先安装的用户、以root,SYSTEM或者Administrator权限系统用户来运行和默认允许很多系统函数(如xp_cmdshell,OPENROWSET等)构成。
如果一个恶意用户提供的字段并非一个强制类型,或者没有实施类型强制,就会发生这种形式的攻击。
当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。
例如:
Statement:
="SELECT*FROMdataWHEREid="+a_variable+";"
从这个语句可以看出,作者希望a_variable是一个和"id"字段有关的数字。
不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。
Web使用程序开发时没有对用户的输入进行转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句.这样就会导致恶意用户对数据库上的语句实施操纵。
五、设计成果展示
本次入侵用到的软件:
Domain入侵工具。
下面是这个软件的界面:
这个是由黑客动画吧开发的黑客软件
接下来我们要找一个入侵的站点:
这个就是我们要入侵的站点,一个书店网站。
以下是入侵操作:
首先我们把网站的地址复制到当前路径
连接之后它自动扫描到了该网站的漏洞,如上面红色显示
我们选择其中一个漏洞进行猜解,发现shop_admin数据库可用
同样我们猜解出了该表的列名,adminpassdord是我们要用的用户名和密码
我们猜解出了16位的密码,说明它是用MD5加密的
我们扫描到网站后台管理地址
我们通过MD5在线破解网站和扫描到的乱码成功破解了后台的密码
最后我们用猜解到的用户名和密码成功登陆到该网站的后台管理系统。
至此我们成功入侵了该网站。
课设总结
本次课程设计我们成功的入侵了一个中小企业网站的后台操作系统,对网站SQL注入攻击及网站安全技术进行了比较详细地分析,其中主要的介绍了破解管理员权限的方法以及MD5加密的破解算法分析。
通过本次课程设计使我掌握了对SQL注入攻击漏洞的检测技术和预防SQL注入的手段。
也让我感觉到了目前网络安全正处于十分严峻的状态,很多的企业网站看起来很不错,其实就在我们轻而易举的运用黑客软件的扫描下漏洞百出,也许就因为一个很普通的漏洞而损失了数据。
解到信息系统网站中存在的普遍安全漏洞。
网站的安全稳定运行,应侧重于预防,不断增强安全意识,采取各种预防措施,才能及时有效地排除安全隐患。
网络安全知识需要普及,有人说在这个时代谁掌握了信息谁就主宰了整个世界,而当今时代信息安全越来越面临很大的挑战,外国正处于计算机飞速发展的时期,大多数的人都学会了使用计算机,但是计算机安全技术一直都是一个很敏感的词汇,曾一度都遭到很多学者的排挤,到底要不要普及安全知识,我想说那是必然的。
我们要很好的防黑就一定要学会当黑客,只有这样防御结合才能让我们的计算机更安全。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 攻击 防护 论文