ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:68.45KB ,
资源ID:2897434      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2897434.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件系统安全性测试.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件系统安全性测试.docx

1、软件系统安全性测试系统安全性测试1.1Web程序安全测试Web程序安全测试中的SQL注入式攻击测试和拒绝服务攻击的防范。1.1.1SQL注入式攻击及测试1什么是SQL注入式攻击所谓SQL注入式攻击,就是指攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击的过程如下。(1)某个ASP.NET Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码。(2)“

2、登录”页面中输入的内容将直接用来构造动态的SQL命令,或者直接用作存储过程的参数。下面是ASP.NET应用构造查询的一个例子。System.Text.StringBuilder query = new System.Text.StringBuilder(SELECT * from Users WHERE login = ).Append(txtLogin.Text).Append( AND password=).Append(txtPassword.Text).Append();(3)攻击者在用户名和密码输入框中输入 or 1=1之类的内容。(4)将用户输入内容提交给服务器之后,服务器运行上面

3、的ASP.NET代码构造出查询用户的SQL命令,但由于攻击者输入的内容非常特殊,所以最后得到的SQL命令变成SELECT * from Users WHERE login= or 1=1 AND password= or 1=1。(5)服务器执行查询或存储过程,将用户输入的身份信息和服务器中保存的身份信息进行对比。(6)由于SQL命令实际上已被注入式攻击修改,已经不能真正验证用户身份,所以系统会错误地授权给攻击者。如果攻击者知道应用会将表单中输入的内容直接用于验证身份查询,他就会尝试输入某些特殊的SQL字符串篡改查询,改变其原来的功能,欺骗系统授予其访问权限。系统环境不同,攻击者可能造成的损害

4、也不同,这主要由应用访问数据库的安全权限决定。如果用户账户具有管理员或其他比较高级的权限,攻击者就可能对数据库的表执行各种他想要做的操作,包括添加、删除或更新数据,甚至可能直接删除表。SQL注入式攻击的总体思路如下。(1)发现SQL的注入位置。(2)判断后台的数据库类型。(3)确定XP_CMDSHELL可执行的情况。(4)发现Web虚拟目录。(5)上传ASP木马。(6)得到管理员权限。2SQL注入式攻击的种类1)没有正确过滤转义字符在用户的输入没有被转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,上面那段

5、代码就会演示这种漏洞。这种代码的设计目的是将一个特定用户从其用户表中取出,但是如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的编写者所期望的那样了。如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为1=1永远是正确的。在一些SQL服务器上,如在SQL Server中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。例如:statement:=SELECT * FROM users WHERE name= +userName+ ;通过给userName赋如下的值,将会导致删除“users”表,同时又可以从“dat

6、a”表中选择所有的数据(实际上就是透露了每一个用户的信息)。a;DROP TABLE users; SELECT * FROM data WHERE name LIKE %这就将最终SQL语句变成下面这个样子。SELECT * FROM users WHERE name=a;DROP TABLE users; SELECT * FROM data WHERE name LIKE %;2)非法类型处理如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型),就会发生这种攻击。例如

7、:statement := SELECT * FROM data WHERE id=+a_variable+:从这个语句可以看出,作者希望a_variable是一个与“id”字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需求。例如,将a_variable设置为:1;DROP TABLE users,它会将“users”表从数据库中删除,SQL语句变成:SELECT * FROM DATA WHERE id=1;DROP TABLE users;3)数据库服务器中的漏洞有时,数据库服务器软件中也存在着漏洞,如mysql服务器中mysql_real_escape_strin

8、g()函数的漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的SQL注入式攻击。4)盲目的SQL注入式攻击当一个Web应用程序易于遭受攻击而其结果攻击者却不见时,就会发生所谓的盲目的SQL注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为Absinthe的工具就可以使这种攻击自动化。5)条件响应注意,有一种SQL注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值,如:SELECT booktitle F

9、ROM booklist WHERE bookId=OOk14cdAND 1=1;这会导致一个标准页面,而语句SELECT booktitle FROM booklist WHERE bookId =OOk14cd AND 1=2在页面易于受到SQL注入式攻击时,它有可能给出一个不同的结果。这样的一次注入将会证明盲目的SQL注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。6)条件性差错如果WHERE语句为真,这种类型的盲目SQL注入会迫使数据库评判一个引起错误的语句,从而导致一个SQL错误。例如,SELECT 1/0 FROM users WHERE userna

10、me= Ralph。显然,如果用户Ralph存在的话,被零除将导致错误。7)时间延误时间延误是一种盲目的SQL注入,根据所注入的逻辑,它可以导致SQL引擎执行一个长队列或者是一个时间延误语句。攻击者可以衡量页面加载的时间,从而决定所注入的语句是否为真。以上仅是对SQL攻击的粗略分类。从技术上讲,如今的SQL注入式攻击者们在如何找出有漏洞的网站方面更加聪明,也更加全面,现在已出现了一些新型的SQL攻击手段。黑客们可以使用各种工具来加速漏洞的利用过程。我们不妨看看the Asprox Trojan这种木马,它主要是通过一个发布邮件的僵尸网络来传播,其整个工作过程可以这样描述:首先,通过受到控制的主

11、机发送的垃圾邮件将此木马安装到电脑上,然后,受到此木马感染的电脑会下载一段二进制代码,在其启动时,它会使用搜索引擎搜索用微软的ASP技术建立表单的、有漏洞的网站。搜索的结果就成为SQL注入攻击的靶子清单。接着,这个木马会向这些站点发动SQL注入式攻击,使有些网站受到控制、破坏。访问这些受到控制和破坏的网站的用户将会受到欺骗,从另外一个站点下载一段恶意的JavaScript代码。最后,这段代码将用户指引到第三个站点,这里有更多的恶意软件,如窃取口令的木马。3检查和防御SQL注入式攻击的方法1)使用参数化的过滤性语句要防御SQL注入式攻击,用户的输入就绝对不能直接被嵌入到SQL语句中。恰恰相反,用

12、户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,这样的SQL语句可以被修正。下面是一个使用Java和JDBC API的例子。PreparedStatement prep = conn.prepareStatement(SELECT * FROM USERS WHEREPASSWORD=?);prep.setString(1, pwd);总体上讲,有两种方法可以保证应用程序不易受到SQL注入式攻击:一是使用代码复查,二是强迫使用参数化语句。强迫使用参数化语句意味着嵌入用户输入的SQL语句在运行时将被拒绝。2)避免使用解释程序因为这正是黑

13、客们借以执行非法命令的手段。3)避免出现一些详细的错误消息因为黑客们可以利用这些消息,要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。4)使用专业的漏洞扫描工具攻击者们目前正在自动搜索攻击目标并实施攻击。其技术甚至可以轻易地被应用于其他Web架构中的漏洞。企业应当投资一些专业的漏洞扫描工具,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。5)在Web应用程序开发过程的所有阶段实施代码的安全检查首先,要在部署Web应用之前实施安全测试,这种措

14、施的意义比以前更大、更深远。其次,还应当在部署之后用漏洞扫描工具和站点监视工具对网站进行测试。1.1.2拒绝服务攻击及检测1什么是拒绝服务攻击拒绝服务,英文为“Denial of Service”,也就是我们常说的DoS。那么什么是拒绝服务攻击呢?大家可以这样理解,凡是能导致合法用户不能进行正常网络服务的行为都算是拒绝服务攻击。拒绝服务攻击的目的非常明确,就是用超出被攻击目标处理能力的海量数据包消耗可用系统、带宽资源,致使网络服务瘫痪,从而阻止合法用户对正常网络资源的访问,达到攻击者不可告人的目的。常见的DoS攻击有针对硬件(网络设备、路由器、交换机)的DoS、针对网络层(IP协议)核心实现的

15、DoS和针对应用层(浏览器、Web服务器、Mail)的DoS。2从DoS到DDoSDDoS(Distributed Denial of Service,分布式拒绝服务)的攻击方式虽然与DoS一样,也是向被攻击目标连续发送大量的IP包,以导致服务器不能为合法用户提供正常服务,但是它区别于DoS的绝妙之处在于动员了大量“无辜”的计算机向目标共同发起进攻,采用分布式拒绝服务攻击手段。DDoS与DoS的最大区别就是人多力量大。原来的DoS是一台机器攻击目标,现在的DDoS是很多台机器利用它们的高带宽攻击目标,更容易将目标网站攻克。除此之外,DDoS攻击方式较为自动化,攻击者可以把他的程序安装到网络中的多台机器上,所采用的攻击工具使被攻击对象难以察觉,只要攻击者发出攻击命令,这些机器便发起进攻。DDoS的表现形式主要有两种:一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而无法提供网络服务。3DoS/DDoS的防范对付DoS/DDoS是一个系统工程,想仅仅依靠某种系统或产品防住DDoS是不现实的,可以肯定的是,完全杜绝DDoS是不可能的,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1