解析Web应用服务弱点



Web应用服务弱点:Web服务的溢出

这是最传统的、也是危害最大的一个弱点。最早遭受破坏的、且仍旧普遍的攻击来源于开发人员对最终用户输入的数据的可信任假设。其实这种假设是非常危险的。我们做安全的人员,应该保持一种执业的怀疑态度。即将用户假设为攻击者。只有如此,才能够做好安全工作。但是不少开发人员没有这种安全意识。

举一个简单的例子。如果一个用户了解PowerPoint文件格式的相关内容,他们就可以利用文本编辑器来编写一个PowerPoint的文件。编辑的工作相当简单,只是让内部字段中拥有的数据比系统允许的更多的数据,此时就会导致系统崩溃。然后攻击者就可以执行任何想要执行的程序。这种攻击手段就叫做溢出攻击。其适用于大部分Web服务器

简单地说,溢出性攻击是由于将太多的数据放入原始程序设计人员认为足够的空间中导致。额外的数据溢出将包存储到附近的内存中,并且覆盖与这个区域的原始用途无关的数据。当执行其他应用程序时,程序就会使用新的数据。这也就是说,如果攻击者能够使用错误的数据填充足够的空间,并在数据中添加一些恶意的代码,那么应用程序就可能会执行恶意代码,从而实现其攻击的目的。如删除数据、更新网站主页等等。如果受到攻击的应用程序是有系统管理员启动的,此时恶意代码就可能作为原始程序的一部分执行,从而给攻击者管理员特权。当攻击者获取管理员特权时,那么后果就可想而知了。

对于Web 服务来说,需要特别注意缓冲区溢出攻击。在缓冲区溢出攻击实例中,程序的内部值将会被溢出,从而改变程序的运行方式。在应用程序的正常操作过程中,当调用一个函数时,被调用函数的所有参数以及返回位置的指针就会被存储在内存中。

当完成这个函数规定的作业之后,使用返回指针将会回到原来到位置并继续执行其他的程序。利用缓冲区溢出进行攻击就可以改变这个过程。即让函数执行攻击者所希望执行的程序或者代码。通过输入足够多的数据来覆盖原有的参数,以及输入到不同函数的新返回指针就可以实现。

可见,溢出这个弱点,对于Web服务来说是非常致命的。不过要弥补这个漏洞难度也不是很大。一般来说,开发人员只需要在开发过程中做好相关的检查工作,就可以弥补。如在文本框中,在用户保存数据之前进行必要的检查。包括数据类型、数据中是否包含着不允许的特殊字符等等。这也就是说,在开发Web应用程序的时候,应该对用户保持必要的怀疑态度。只有如此,才会去思考如何来检验用户的数据。这么操作完成之后,就可以在很大程度上避免溢出攻击,提高应用服务器的安全。

Web应用服务弱点:SQL注入式攻击

SQL注入式攻击漏洞是与缓冲区溢出攻击,可以称兄道弟。除了溢出弱点,SQL注入是另一类依赖于开发人员没有测试输入数据而导致的攻击。如大多数人拥有字符数字或者秘密,或者有安全意识的人,拥有附带其他键盘符号的字符数字式密码,这可以提高密码的安全程度。出于这种安全的考虑,开发人员可能会允许用户输入任何字符作为密码。但是如果在开发过程中,没有做好严格的检查,那么就可能会造成Web服务器的SQL注入式攻击。

SQL注入式攻击的原理非常的简单。在网络上关于其的资料也有一大把。为此笔者不在这里过多的阐述。笔者只是强调一下,在开发Web应用程序时,SQL注入式攻击应该引起开发人员的重视。采取积极的措施来消除这个弱点。

根据以前的攻击案例,可以知道这个弱点是针对Web应用程序最有效的攻击手段之一。而且随着大家对Web应用程序信任的增加(如网上转帐等业务的应用),其危害性也就越来越大。其实要防止这个攻击也比较简单。主要就是应用程序在开发时,要加强对用户输入数据的检测。如对于用户输入字符的长度、字符的格式等等内容进行比较严格的限制,并在用户输入数据后、保存数据之前进行严格的检查。只要做好输入检查这一段,基本上就可以消除这个弱点所带来的安全威胁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值