Web安全性测试——SQL注入

 
   | |

导读:本文介绍Web安全性测试——SQL注入。

关键词:Web 安全性 测试 SQL注入 网站 scrip

 
正在加载数据...

    因为要对网站安全性进行测试,所以,学习了一些sql注入的知识。

    在网上看一些sql注入的东东,于是想到了对网站的输入框进行一些测试,本来是想在输入框中输入<SCRIPT>;alter("abc");</SCRIPT> ,但是输入框有字符限制,只好输入 <SCRIPT>结果网站出大问题了,呵呵,终于又出现了个bug。

  另一个就是在URL最后随意输入一些字符或数字,结果,新闻模块那出现了问题,暴露了网站的一些信息,又一个bug,高兴下……

  下面把今天看到的有关SQL注入方面的知识整理如下:

  SQL注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到SQL Server的实例以进行分析和执行。任何构成SQL语句的过程都应进行注入漏洞检查,因为SQL Server将执行其接收到的所有语法有效的查询。一个有经验的、坚定的攻击者甚至可以操作参数化数据。

  SQL注入的主要形式包括直接将代码插入到与SQL命令串联在一起并使其得以执行的用户输入变量。一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串。在存储的字符串随后串连到一个动态SQL命令中时,将执行该恶意代码。

  注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。由于插入的命令可能在执行前追加其他字符串,因此攻击者将用注释标记“--”来终止注入的字符串。执行时,此后的文本将被忽略。

  以下脚本显示了一个简单的SQL注入。此脚本通过串联硬编码字符串和用户输入的字符串而生成一个SQL查询:

  var Shipcity;
  ShipCity = Request.form. ("ShipCity");
       var sql = "select * from OrdersTable where ShipCity = '" + ShipCity + "'";

  用户将被提示输入一个市县名称。如果用户输入Redmond,则查询将由与下面内容相似的脚本组成:

  SELECT * FROM OrdersTable WHERE ShipCity = 'Redmond'
  但是,假定用户输入以下内容:

  Redmond'; drop table OrdersTable--
   此时,脚本将组成以下查询:
  SELECT * FROM OrdersTable WHERE ShipCity = 'Redmond';drop table OrdersTable--'

  分号(;)表示一个查询的结束和另一个查询的开始。双连字符(--)指示当前行余下的部分是一个注释,应该忽略。如果修改后的代码语法正确,则服务器将执行该代码。SQL Server处理该语句时,SQL Server将首先选择OrdersTable中的所有记录(其中ShipCity为Redmond)。然后,SQL Server将删除OrdersTable。

    只要注入的SQL代码语法正确,便无法采用编程方式来检测篡改。因此,必须验证所有用户输入,并仔细检查在您所用的服务器中执行构造SQL命令的代码。本主题中的以下各部分说明了编写代码的最佳做法。
  验证所有输入:

   始终通过测试类型、长度、格式和范围来验证用户输入。实现对恶意输入的预防时,请注意应用程序的体系结构和部署方案。请注意,设计为在安全环境中运行的程序可能会被复制到不安全的环境中。以下建议应被视为最佳做法:

  如果一个用户在需要邮政编码的位置无意中或恶意地输入了一个10 MB的MPEG文件,应用程序会做出什么反应?

  如果在文本字段中嵌入了一个DROP TABLE语句,应用程序会做出什么反应?

  测试输入的大小和数据类型,强制执行适当的限制。这有助于防止有意造成的缓冲区溢出</SCRIPT>

 

原文出处:http://tech.it168.com/a2009/0609/586/000000586048.shtml
 
来源:IT168    
 
 
 
 
 

数据库安全

 
在你认为已经很好地控制了SQL Server安全性时,往往问题正在悄悄出现。有人会在网络中的某个区域悄然进入你已经遗忘或根本不知道的SQL Server系统。
 
Web开发者经常使用自定义代码来实现动态网站功能,但这种代码存在风险,会使服务器带有大量漏洞,尤其是把Web应用程序作为后台数据库交互接口时这一问题将……
 
尽管DAM被大肆炒作,但它仅能对数据安全起到微弱的影响,最终工作需要交由数据库供应商来完成,DAM市场的炒作程度远远超过实际客户的需求及对该市场的预估……
 
本文对几款好用的SQL Server密码破解工具进行了详细的介绍,其中包括了SQLPing3,Cain&Abel,NGSSQLCrack,AppDetective Pro和Advanced SQL Password Recovery。
 
对于数据库补丁管理工作来说,什么样的流程才最佳呢?在本次的Techtarget专家答疑中,我们请到了Michael Cobb专家为我们解答数据库补丁更新的最佳实践方式。

热门技术手册排行

 

虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。

 

“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。

 

虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用最大化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的最大优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。

 

黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。

 

假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录