SQL4B注入及XSS攻击防御技术白皮书启明星辰81BBeijing82BVenustechCybervisionCo.,©2001-2010北京启明星辰信息安全技术有限公司,保留一切权利。未经北京启明星辰信息技术有限公司(以下简称启明星辰)书面同意不得擅自传播、复105B制、泄露或复写本文档的全部或部分内容。本文档中的信息归启明星辰所有并受中国知识产权法和国际公约的保护。信息更新78B本文档及与之相关的计算机软件程序(以下称为文档)用于为最终用户提供信息,并且106B随时可由启明星辰更改或撤回。文档版本::108B2010年5月信息反馈79B如有任何意见或建议,请按如下联系方式反馈给启明星辰:109B地址:北京市海淀区东北旺西路10B8号中关村软件园21号楼启明星辰大厦1层邮编:1B100193电话:12B86-10-82779088传真:13B86-10-82779000免责条款80B根据适用法律的许可范围,启明星辰按14B“原样”提供本文档而不承担任何形式的担保,包括(但不限于)任何隐含的适销性、特殊目的适用性或无侵害性。在任何情况下,启明星辰都不会对最终用户或任何第三方因使用本文档造成的任何直接或间接损失或损坏负责,即使启明星辰明确得知这些损失或损坏,这些损失或损坏包括(但不限于)利润损失、业务中断、信誉或数据丢失。本文档中所有引用产品的使用及本文档均受最终用户可适用的特许协议约束。15B北京启明星辰信息安全技术有限公司第2页QL注入及XSS攻击防御技术白皮书SQL注入防御背景知识什么是SQL注入SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。随着B/S模式被广泛的应用,用这种模式编写应用程序的程序员也越来越多,但由于开发人员的水平和经验参差不齐,相当一部分的开发人员在编写代码的时候,没有对用户的输入数据或者是页面中所携带的信息(如Cookie)进行必要的合法性判断,导致了攻击者可以提交一段数据库查询代码,根据程序返回的结果,获得一些他想得到的数据。SQL注入利用的是正常的HTTP服务端口,表面上看来和正常的web访问没有区别,隐蔽性极强,不易被发现。SQL注入的危害和现状SQL注入的主要危害包括:未经授权状况下操作数据库中的数据恶意篡改网页内容私自添加系统帐号或者是数据库使用者帐号网页挂木马……据赛门铁克2006年3月的互联网安全威胁报告(第九期)显示:北京启明星辰信息安全技术有限公司第3页QL注入及XSS攻击防御技术白皮书目前有近70%的攻击行为是基于WEB应用,而据CVE的2006年度统计数据显示,SQL注入攻击漏洞呈逐年上升的状态,2006年更是达到了惊人的1078个,而这些还仅限于通用应用程序的漏洞,不包括更为庞大的专业web应用程序所存在的漏洞。而针对SQL注入漏洞的各种攻击工具和攻击教程更是层出不穷,掌握1~2种攻击工具的scriptguy(脚本小子)就可以轻易的攻破网络数据库的防线:篡改数据、获得权限……北京启明星辰信息安全技术有限公司第4页QL注入及XSS攻击防御技术白皮书SQL注入防御SQL注入的学术界研究成果基于正常行为模型的AMNESIA该算法的核心思想是通过事前找到源码中所有动态SQL语句的构造点,并为这些SQL语句建立自动机模型(Profiler)。在程序运行时监控提交的SQL语句是否满足Profiler,如果满足则是正常的操作,否则,就认为发生了SQL注入攻击。这种分析方法需要能够获得应用程序的源代码,并且需要修改源代码,是一种侵入性的模型(源代码补丁方式)其实现过程如下图所示:基于数字签名技术的SQLRand该算法的主要思想是:对源代码中包含动态SQL语句的模版中的关键字进行随机化编码处理,这些编码规则黑客无法预知。运行时,对随机化编码之后的SQL命令进行解码,如果解码失败则表示遭受到了SQL注入攻击。北京启明星辰信息安全技术有限公司第5页QL注入及XSS攻击防御技术白皮书如一个正常的SQL语句:select*fromuserswherename=%name其中的select/from/where都是我们所说的关键字,所有SQL语句在提交webserver时,都将进行随机化的编码,一个可能的SQL注入语句经过随机化编码后可能是:select123*from123userswhere123name=‘Mike’OR1=1,(标红的部分是攻击者提交的构造代码),由于OR1=1是攻击者构造的数据,不会经过系统自身随机化的编码,所以待提交数据库的前置proxy进行解析时,对OR这个关键字将得不到正常结果,由此可
sql注入及xss攻击防御技术白皮书 来自淘豆网m.daumloan.com转载请标明出处.