网络攻击说明:web开发
小刀网络 2023-08-21 07:56:16 0

如今,网站不再仅仅是“互联网存在”,也被用于商业交易和转移敏感数据。如此广泛的使用有助于破解漏洞和开发技术的知识。各种各样的安全研究表明,攻击网站以获得名声或金钱的趋势正在上升。本文介绍了各种Web漏洞和利用它们的攻击。我们还将学习一些可以由系统管理员纳入以保护公司的Web基础设施的技术。

在讨论Web服务器如何破解之前,我们先来看看构成完全Web门户的各种组件。 首先,Web服务器是通常在端口80上侦听的服务。客户端软件(通常是浏览器)连接到端口并发送HTTP查询。 Web服务通过提供所要求的内容(如HTML,JavaScript等)进行响应。在某些情况下,可以将服务配置为在缺省的端口上运行,这是迈向安全的一小步。 Web服务器还可以托管诸如FTP或NNTP的服务,这些服务在自己的单独的默许端口上运行。 下图显示了Web服务如何映照到OSI层。 HTTP协议在第7层工作,而HTTPS(安全套接字层)在第6层工作。

Web服务和OSI层

现代Web利用程序通常不单单是以简单网页的情势提供内容。 业务逻辑和数据仓储组件(如数据库服务器,利用程序服务器和中间件软件)也用于生成并向网站用户提供业务特定数据。 这些组件通常安装并运行在一组单独的服务器上,并且可能共享或不共享存储空间。 高级Web利用程序代码可以在内部调用托管在区别服务器上的Web服务,并将结果页面传递给客户端。 Web程序员还使用Cookie来保护会话,并在客户端浏览器中存储特定于会话的信息。

网页劫持

破解一个网站是相当容易的。新手可能会试图从网站盗取数据,而专业人士可能会由于破坏网站或使用网络服务器传播病毒而造成严重破坏。与大多数其他攻击区别,Web攻击所用的技术范围从第2层到第7层,因此Web服务器很容易遭到各种可能的黑客攻击。由于防火墙端口一定要为Web服务打开(默许情况下是端口80),因此它没法禁止第7层的攻击,这使得对Web攻击的检测变得困难。请参考下图,它显示了用于构成Web门户基础设施的典型组件。

Web门户基础设施

从安全的角度来看,这些组件中的每个都有一些弱点,如果被利用,就会致使Web内容的入侵。现在让我们详细讨论一些常见但危险的攻击。

DoS和嗅探

由于该网站的IP地址是开放给互联网的,因此谢绝服务攻击很容易使Web服务器停机。类似地,如果在Web设计进程中没有进行加密或其他安全措施,那末可以很容易地使用包嗅探器来捕获纯文本用户id和密码。几几近所有第2层和第3层攻击(如数据包洪泛,SYN洪泛等)都可能在网站IP和其所在的端口上。

HTTP DoS攻击

与基于网络的谢绝服务攻击区别,HTTP DoS攻击在第7层工作。在这类类型的攻击中,网站以编程的方式爬行获得要访问的页面列表,在此期间攻击者还记录服务器处理每一个页面所需的时间。选择需要更高处理时间的页面,并将多个HTTP要求发送到Web服务器,每一个要求要求其中一个所选页面。

为了满足每一个要求,Web服务器开始消耗资源。 到达资源限制后,终究放弃并停止响应。尽人皆知,攻击者使用简单的脚本创建大量的HTTP GET要求来实现此攻击。如果网站只包括简单的静态HTML页面,那末这类攻击就不会很有效。但是,如果动态页面从后端数据库服务器中提取数据,那末这类攻击就会造成相当大的侵害。

虽然它可能或不会致使数据盗取,但它肯定会关闭网站,造成用户体验不良,并侵害名誉。一定要部署智能技术来检测和停止此类攻击,我们将很快了解这些攻击。

访问控制开发

通常,在Web门户的情况下,用户会得到一个ID和一个密码来登录并履行某些功能。门户管理人员也为保护和数据管理提供了自己的凭证。如果Web服务和利用程序不是从编码的角度设计的,那末就能够利用它们来取得更高的特权。

例如,如果Web服务器未使用最新的安全修补程序进行修补,这可能致使远程代码履行,攻击者可能会编写一个脚本来利用该漏洞,并访问服务器并远程控制它。 在某些情况下,可能会产生这类情况,由于没有遵守最好的编码和安全实践,在安全配置中留下空白,并使Web解决方案容易遭到攻击。

表单输入无效

许多网站使用由网站用户填写的表单,并提交给服务器。 然后,服务器验证输入并将其保存到数据库。 验证进程有时拜托给客户端浏览器或数据库服务器。 如果这些验证不够强大或没有正确编程,他们可能会留下可以被攻击者利用的安全漏洞。

例如,如果一个字段如PAN号码是强迫性的,并且如果重复条目的验证不能正确完成,则攻击者可以用伪PAN号码以编程方式提交表单,从而以假条目填充数据库。 这终究可以帮助攻击者种植谢绝服务(DoS)攻击,只需查询页面,询问不存在的条目。

代码发掘

虽然这与之前的漏洞有点类似,但在破解它的方式上有一些区别。通常,程序员在为各种用户输入设置限制时,会做出假定。典型的例子是用户名不应当超过50个字符,或数字值永久是正数,等等。

从安全的观点来看,这些假定是危险的,由于骇客可以利用它们。例如,通过填充具有100个字符的名称字段,从而对数据集施加压力,或通过在数值字段中提供负整数来创建不正确的计算结果。

上面提到的所有攻击都是新手攻击者使用的,遵守好的编程实践可以帮助他们停止攻击。现在我们来看看技术先进的攻击,这在今天也很常见。

Cookie中毒

如前所述,cookie是驻留在浏览器中的小信息片断(在客户端计算机的硬盘驱动器上),并用于存储用户会话特定的信息。它是一个cookie,它能记住我们的购物车内容、我们的偏好和之前的登录信息,以便提供丰富的Web体验。

虽然篡改cookie其实不是很容易,但是专业攻击者可以控制它并操纵其内容。 中毒是通过木马或病毒实现的,该病毒位于后台,并延续捏造cookies以搜集用户的个人信息并将其发送给攻击者。

另外,病毒还可以改变cookie的内容,致使严重的问题,例如提交购物车内容,以便将租赁的商品交付给黑客可访问的虚拟地址,或让浏览器连接到广告 服务器,这有助于攻击者取得资金等。如果会话信息存储在cookie中,专业攻击者可以访问它并盗取会话,从而致使中间人的攻击。

会话劫持

Web服务器同时与多个浏览器进行对话,以接收要求并交付所要求的内容。当每一个连接被建立时,Web服务器需要有一种方法来保护每一个连接的唯一性。它使用会话令牌来生成动态生成的文本字符串,这些字符串包括IP地址、日期、时间等。

攻击者可以通过在网络上以编程方式或嗅探,或通过对受害者计算机履行客户端脚本攻击来盗取该令牌。 一旦被盗,该令牌可用于创建假Web要求并盗取受害者用户的会话和信息。

URL查询字符串篡改

从数据库服务器中提取数据并将其显示在网页上的网站常常被发现在主URL中使用查询字符串。 例如,如果网站URL是//www.a.com/,它可使用//www.a.com/showdata?field1=10&field2=15作为参数传递field1和field2,并将它们分别 值到数据库,结果输出以网页的情势提供给浏览器。

使这个查询字符串格式容易暴露,用户可以编辑和更改超越预期限制的字段值,或用垃圾字符填充字段值。 它可以进一步致使用户取得他们不应当取得的信息。 在最坏的情况下,如果字段值是用户名和密码,则只能通过HTTP使用暴力字典攻击来获得系统级访问权限。

跨站点脚本

这是Web技术中最多见的弱点,它可以吸引XSS(跨站点脚本)对所有主要站点和著名站点的攻击。人们已发现,即便在今天,大量的网站也很容易遭到这类攻击。这个漏洞是由于不适当的编程实践和在Web基础结构中没法取得适当的安全措施酿成的。

我们知道,客户端浏览器保护自己的安全性,不允许任何人访问网站内容和网站Cookie,用户本身除外。 在这类情况下,Web利用程序中的漏洞让破解者将客户端代码注入用户访问的页面。 这段代码通常使用JavaScript编写。

要了解这一点,请斟酌将用户名作为输入的页面,并在屏幕上显示“欢迎用户名”。 让我们假定输入框用JavaScript替换,以下所示:

<script> alert ('You are in trouble') </script>

这里,Web页面可能会终究履行脚本标签,显示对话框消息“You are in trouble”。 这可以由攻击者进一步利用,只需中断cookie,盗取会话并将该代码注入受害者用户的浏览器。 一旦这样做,JavaScript代码将在受害者的浏览器中运行,并尽量造成侵害。

SQL注入

如前所述,Web门户在后端使用数据库服务器,Web页面连接到数据库,查询数据,并将所获得的数据以Web格式显现给浏览器。如果客户端上的输入在以查询情势发送到数据库之前没有经过适当的过滤,便可能产生SQL注入攻击。这可能致使操作SQL语句的可能性,以便在数据库上履行无效的操作。

这类攻击的一个常见示例是由Web利用程序访问的SQL server,其中SQL语句没有经过中间件或验证代码组件的过滤。这可能致使攻击者能够在后端数据库服务器上创建和履行自己的SQL语句,这多是简单的SELECT语句来获得和盗取数据,或可能像删除全部数据表一样严重。在其他情况下,数据可以通过使用歹意的和虚假的内容填充记录集来破坏。

虽然网络安全意识愈来愈高,但许多网站依然可以进行SQL注入攻击。

虽然在本文中不可能涵盖所有可能的攻击,但让我们来看看一些不太为人所熟知的攻击,这些攻击愈来愈多地被用于攻击网站。

缓慢的HTTP攻击

虽然这一方法与谢绝服务攻击类似,但该技术略有区别。它利用了一个事实,即每一个HTTP要求都一定要由Web服务器侦听。每一个Web要求都以一个名为content-length的字段开头,它告知服务器需要多少字节,并以回车和换行(CRLF)字符组合结束。

HTTP要求由内容长度较大的攻击者发起,而不是发送CRLF来结束要求,因此通过向Web服务器发送非常少许的数据来简单地延迟。 这使得Web服务器等待还没有到来的更多数据来完成要求。 这消耗了Web服务器的资源。

如果要求延迟到一个小于服务器上会话超时设置的点,那末多个这样的慢要求可以完全消耗资源并创建谢绝服务攻击。这可以通过只从一个浏览器创建缓慢和延迟的要求来实现,这从安全的角度来看是很危险的。

加密开发

致使了一种幻觉,认为一切都是安全的,不幸的是,情况并不是如此。许多购物车利用程序忘记进一步加密cookie内容,并将它们放在纯文本中。虽然SSL上的数据遭到SSL的保护,但运行客户端脚本拦截cookie并读取其内容可能会致使数据或会话被盗。

对SSL,现代攻击者使用工具来检测和破坏较弱的密码算法,从而使SSL保护失效,虽然这不是很常见。

保护开源软件系统

Apache运行在centods/red Hat、Ubuntu和Debian上,在严重的FOSS Web基础架构和解决方案中取得了广泛的欢迎。第一步是加强Apache Web服务本身;在Internet上有许多关于这方面的指南和例子--对每一个Linux发行版,和示例。

强烈建议禁用除Web服务端口以外的其他端口,和停止和禁用没必要要的服务。部署一个配置良好的防火墙或入侵检测装备是相当重要的。正如前面提到的,一个简单的防火墙是不够的;因此,需要一个能够检测Web层攻击的内容过滤防火墙。

保护Web门户不但限于Web服务器,还可以扩大到诸如数据库服务器,Web服务等组件。从网络安全的角度来看,只允许从前端Web服务器到数据库的IP连接是一个很好的 理念。 运行rootkit检测器,防病毒工具和日志分析器一定要是常规工作,以避免黑客攻击。

对中间件和Web服务器之间的高级安全性,还应当有一个更强大的身份验证机制。应当对cookie进行加密和SSL部署,并使用更强的密码算法。

从编码的角度来看,如前所述,使用安全编程技术是相当重要的,也是遵守最好的安全措施,如代码审查和渗透测试。 还建议使用其他进程,如输入代码验证,服务器和数据库端验证。

Web开发是攻击网站的常见方式。 由于其易用的可用性和可编程性,FOSS基础架构也容易遭受这类攻击,因此网络管理员一定要了解技术来保护其基础架构免遭信息丢失或被盗。

标签: 服务器攻击者
相关信息推荐