基于SQL的Web系统安全防范SQL注入漏洞

基于SQL的Web系统安全防范SQL注入漏洞

ID:37257872

大小:88.00 KB

页数:9页

时间:2019-05-20

基于SQL的Web系统安全防范SQL注入漏洞_第1页
基于SQL的Web系统安全防范SQL注入漏洞_第2页
基于SQL的Web系统安全防范SQL注入漏洞_第3页
基于SQL的Web系统安全防范SQL注入漏洞_第4页
基于SQL的Web系统安全防范SQL注入漏洞_第5页
资源描述:

《基于SQL的Web系统安全防范SQL注入漏洞》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于SQL的Web系统安全防范——SQL注入漏洞攻击研究及防范措施SQL-BasedWebSystemSecurity——StructuredQueryLanguageInjectionLeakAttackStudyAndDefenseMeasure作者:辽宁省经济和信息化委员会姜志坤摘要:在当今的数字世界中,人们发现在维持公开的Internet连接的同时,保护网络和计算机系统的安全变得越来越困难。病毒、木马、后门、蠕虫等攻击层出不穷,虚假网站的钓鱼行为也让警惕性不高的公众深受其害。据有关部门统计,2008年一季度,我国有15万台主机被植

2、入木马,网站篡改数量迅速增加,预计已达5835个,其中政府网站达484个,每月564次的安全事件报告。为了减轻信息泄露及系统攻击带来的风险,企业和机构开始对自己的系统进行渗透性测试,找出其中存在的漏洞和安全隐患。本文通过对目前最流行的SQL注入漏洞攻击的过程做了逐一的分析,并提出了检测方法和防范措施。关键字:SQL注入漏洞攻击 脚本攻击SQL注入点检测防范模型有害代码SQL注入(SQLInjection)漏洞攻击是目前网上最流行最热门的黑客脚本攻击方法之一,那什么是SQL注入漏洞攻击呢?它是指黑客利用一些Web应用程序(如:网站、论坛、留

3、言本、文章发布系统等)中某些存在不安全代码或SQL语句不缜密的页面,精心构造SQL语句,把非法的SQL语句指令转译到系统实际SQL语句中并执行它,以获取用户名、口令等敏感信息,从而达到控制主机服务器的攻击方法。1.SQL注入漏洞攻击原理1.1SQL注入漏洞攻击实现原理SQL(StructuredQueryLanguage)是一种用来和数据库交互的语言文本。SQL注入的攻击原理就是攻击者通过Web应用程序利用SQL语句或字符串将非法的数据插入到服务器端数据库中,获取数据库的管理用户权限,然后将数据库管理用户权限提升至操作系统管理用户权限,控

4、制服务器操作系统,获取重要信息及机密文件。SQL注入漏洞攻击主要是通过借助于HDSI、NBSI和Domain等SQL注入漏洞-9-扫描工具扫描出Web页面中存在的SQL注入漏洞,从而定位SQL注入点,通过执行非法的SQL语句或字符串达到入侵者想要的操作。下面以一段身份验证的.NET代码为例,说明一下SQL注入攻击的实现方法。SqlConnectionnwConn=newSqlConnection((string)ConfigurationSettings.AppSettings["DBconnStrings"]);stringqueryS

5、tr="SELECTuserid,userpwd,username,typeFROMuserswhereuserid='"+Txtusername.Text+"'";DataSetuserSet=newDataSet();SqlDataAdapteruserAdapter=newSqlDataAdapter(queryStr,nwConn);userAdapter.Fill(userSet,"Users");Session["UserID"]=Txtusername.Text.ToString();Session["type"]=type

6、.Text.ToString();Response.Redirect("/Myweb/admin/login.aspx");从上面的代码中可以看出,程序在与数据库建立连接得到用户数据之后,直接将username的值通过session传给login.aspx,没有进行任何的过滤和处理措施,直接用来构造SQL语句,其危险系数是非常高的,攻击者只要根据SQL语句的编写规则就可以绕过身份验证,从而达到入侵的目的。1.2SQL注入漏洞攻击分析SQL注入可以说是一种漏洞,也可以说是一种攻击。当程序中的变量处理不当,没有对用户提交的数据类型进行校验,编

7、写不安全的代码,构造非法的SQL语句或字符串,都可能产生这个漏洞。例如Web系统有一个login页面,这个login页面控制着用户是否有权访问,要求用户输入一个用户名和口令,连接数据库的语句为:“select*fromuserswhereusername='username'andpassword='password'”攻击者输入用户名为aaor1=1口令为1234or1=1之类的内容。我们可以看出实际上攻击者并不知道真正的用户名、口令,该内容提交给服务器之后,服务器执行攻击者构造出的SQL命令,但由于攻击者输入的内容非常特殊,所以最后得

8、到的SQL命令变成:“select*fromuserswhereusername='aa'or1=1andpassword='1234'or1=1”;-9-服务器执行查询或存储过程,将用户输入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。