欢迎来到天天文库
浏览记录
ID:43984635
大小:39.00 KB
页数:5页
时间:2019-10-17
《SQL注入攻击与防范》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、题目:SQL注入攻击与防范一、漏洞的产生SQLInjection既不是数据库本身的漏洞,也不是操作系统和Web服务器的漏洞。它是网页程序设计者忽略了对用户输入内容的检查,使得攻击者有可能夹带恶意的SQL查询指令,从客户端提交特殊的代码,收集程序及服务器返回的信息,然后根据所收集的佶息,构造下一步应该提交的特殊代码。通过这种重复,达到获取想得到的资料或权限的目的。二、漏洞何时出现SQL注入是防火墙、防毒软件、入侵检测系统等防护不了的安全漏洞,它发生在与用户产生交互的地方,用户的输入直接关系到系统的安全。三、漏洞表现在什么地方存在SQL注入漏洞的地方都是程序中需要根据客
2、户端提交的数据來构造SQL语句的地方,也就是说只要程序中存在“客户端数据替换服务端预定义变量”的地方就有可能被注入。四、入侵的特点1、SQL注入攻击特点SQL注入是从正常的Web端口进行访问,表面上看跟一般的Web页面访问没有什么区别,它可以绕过普通防火墙的防范,因此一旦网络应用程序有注入漏洞,攻击者就可以直接访问数据库进而甚至能够获得数据库所在的服务器的访问权。2、注入的隐蔽性:SQL注入是从正常的WWW端口访问,而口表面看起来跟一般的Web页面访问没什么区别,所以日前防火墙都不会对SQL注入发出警报,如果管理员没查看IISH志的习惯,可能被入侵很长时间都不会发觉
3、。五、入侵如何发生入侵方法简介1、SQL注入漏洞的判断,寻找注入点常用判别语句:整形参数判断1>宜接加'2、and1=13、and1=2如果1、3运行异常2正常就存在注入字符型判断1、直接加'2、andT='T3、andV2‘搜索型:关键字%’and1=1and‘%—%关键字%’and1=2and‘%—%如果1、3运行异常2正常就存在注入2、分析数据库服务器类型不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我们还耍判断一下数据库的类型。一般ASP最常搭配的数据库是Access和SQLServer,网上超过99%的网站都是其屮之一。常用判别语句:获取数据库
4、版木and(select@@version)>0获取当前数据库名anddb_name()>0获取当前数据库用户名anduser>0anduser_name()=*dbo'猜解所有数据库名称and(selectcount(*)frommaster.dbo.sysdatabaseswherename>1anddbid=6)<>03、确定XP_CMDSHELL可执行情况若当前连接数据的帐号具有SA权限,JDLmaster.dbo.xp_cmdshell扩展存储过程(调用此存储过程可以直接使用操作系统的shell)能够正确执行,则整个计算机口J以达到完全控制。4、发现WEB
5、虚拟目录只有找到WEB虚拟冃录,才能确定放置ASP木马的位置,进而得到USER权限。5、上传ASP木马ASP木马,就是一段有特殊功能的ASP代码,并放入WEB虚拟目录的ScriptsT,远程客户通过叵就可执行它,进而得到系统的USER权限,实现对系统的初步控制。上传ASP木马一般冇两种比较冇效的方法:(1)利用WEB的远程管理功能(2)利用表内容导成文件功能6、得到系统的管理员权限上传木马,修改开机自动运行的.ini文件;复制CMD.exe到scripts,人为制造UNICODE漏洞;下载SAM文件,破解并获取OS的所有用户名密码;等等,视系统的具体情况而定,可以采
6、取不同的方法。六、入侵防范应抱着对用户的一切输入都怀疑的态度,加强验证审查,采取合理措施,防患于未然。同时也要根据新情况,不断调整WEB应用中的检测措施,堵塞•切可能的SQL注入漏洞。对客户端提交的变量参数进行仔细地检测。对数值型的参数,一般用isNumcric()函数来判断一下其是否包含非数字字符;对字符型参数,需要对单引号、双引号、“一一分号等等进行过滤,最好还要对用户提交参数的长度进行判断,凡属非法者由程序给岀错误提示。发现客户端提交的参数中有"exec、insert>select>delete、from>update>count、and、*、%、user>
7、xpcmdshell、add>nct>chr、mid、master、truncatc>char>declare^Asc〃等用于SQL注入的常用字符时,立即停止执行ASP并给出警告信息或转向出错页面。在服务端止式处理之前对提交数据的合法性进行检查,这是比较好的解决方法。在没有确认客户端的输入是否合法之前,服务器拒绝进行关键性的操作和处理。一旦检测到敏感字符或字符串,针对数据库的操作立即中止。摒弃动态SQL语句,而改用用户存储过程来访问和操作数据库。这需要在建立数据库后,仔细考虑Web程序需要对数据库进行的各种操作,并为之建立存储过程,然后让Web程序调用存储过程來
此文档下载收益归作者所有