Web安全漏洞和攻击防范

Web安全漏洞和攻击防范

前言

网站是一种应用程序,你可以通过浏览器在设备上访问和浏览。 它有两个主要组件在后台运行:Web服务器和数据库。 Web服务器是一种在用户要求时存储,处理和交付网页的机器。 数据库是存储在Web服务器上并由Web应用程序使用的数据的结构化集合。 Web服务器已连接到Internet,并具有一个IP地址,攻击者可以访问该IP地址以利用任何漏洞。 本文将探讨攻击Web应用程序的方式,以及如何防止这种情况。

攻击网站

攻击网站的主要方法有两种,它们是

服务器端攻击客户端攻击服务器端攻击不需要用户干预,可以直接在目标计算机上启动。一旦选择了目标网站,攻击者就将网络服务器作为目标并收集必要的信息。此信息可能包括目标网站使用的操作系统,服务器计算机上安装了哪些程序,服务器正在运行的服务以及与这些服务关联的端口。

远程服务器上运行的大多数服务旨在提供远程访问,但是如果未以最佳方式配置它们,则攻击者可以利用这种情况并获得对这些服务器的访问权限。此外,服务(如果未更新)可能具有一些漏洞,例如代码执行,远程缓冲区等。换句话说,攻击者可以扫描IP地址并获取服务器上运行的所有服务的列表。然后,仅通过Internet搜索每个服务,攻击者就可以收集有关与那些服务相关的任何漏洞的信息。然后使用这些漏洞启动服务器端攻击。

客户端攻击需要人机交互,这意味着这些攻击需要用户下载文件/打开链接或安装将在其计算机上运行代码的更新。文件/链接打开了防病毒应用程序无法检测到的后门,从而在攻击者仍然无法检测到的情况下提供了对计算机的完全访问权限。这些攻击需要用户启动,因此收集有关受害者的信息非常重要。攻击者寻求的信息类型的例子包括知道他们的朋友是谁,他们使用的网络和网站,他们信任的网站和应用程序等等。与服务器端攻击不同,客户端攻击的重点是受害者而不是应用程序或操作系统。

信息收集

攻击者要做的第一件事是收集有关目标的尽可能多的信息。这可以是IP地址,域名信息和使用的技术(例如,该服务器上使用的编程语言,安装的服务,数据库或其他网站)。这可以通过使用Maltego,ZenMap,Nexpose,Knock等工具来完成。

有些网站还可以帮助收集有关网站的信息:

Whois查找-用于查找联系信息,IP地址,服务器的位置,服务器类型,操作系统等。

Netcraft网站报告-用于查找目标计算机上使用的技术,域信息,服务器信息(这对于查找目标计算机上的漏洞和漏洞利用非常有帮助),第三方信息,服务器端使用的技术(Apache,使用PHP,SSL等)和客户端技术(例如Javascript或JQuery),使用博客软件(WordPress)以及OS。

使用这些网站收集的信息使攻击者无需侵入即可访问计算机。这就是所谓的“社会工程学”(这是操纵人以使他们放弃机密信息的艺术)。

漏洞的类型以及如何预防

Web安全漏洞和攻击防范

文件上传漏洞

任何允许其用户上传任何类型文件的Web应用程序都为攻击者提供了利用的机会,因为它允许他们将恶意文件上传到服务器上。根据收集到的信息,攻击者将知道服务器上使用了哪种编程语言。然后他们可以用该语言上载文件,该文件可以在服务器上执行。

在上传恶意文件之前,攻击者将创建具有密码保护的有效负载(这意味着该有效负载仅可由他们访问)。然后将此有效负载上传并在服务器上执行,从而打开后门。一旦攻击者获得访问权限,他们便可以在受害者的计算机上运行任何命令。

预防

为防止此类攻击,应仅授权用户上载特定类型的文件,并应禁止用户上载任何可执行文件。此外,Web应用程序必须使用过滤器来检查文件类型,而不仅是文件扩展名(因为可以轻松地绕过单独检查扩展名)。

代码执行漏洞

利用此漏洞,攻击者可以使用输入框在Web服务器上执行任何命令。攻击者将侦听从Web服务器(也称为目标)到其计算机的反向连接。建立连接后,攻击者将能够在目标计算机上运行任何命令。

预防

确保Web应用程序是安全的,并且用户不能在服务器上执行任何命令。筛选所有可以帮助攻击者在服务器上执行代码的功能(例如Eval)。如果由于任何原因必须允许用户执行某些命令,请确保在执行输入之前先对其进行分析。

本地和远程文件包含漏洞

本地文件包含是指网站中的漏洞允许攻击者通过URL执行命令。这使攻击者可以从目标计算机读取任何文件。远程文件包含是指网站中的漏洞允许攻击者将任何文件注入目标计算机上。这意味着攻击者随后可以执行有效载荷,建立反向连接并运行命令。

预防

在服务器上的php.ini文件中,关闭“ allow_url_fopen”和“ allow_url_inclde”设置。另外,使用静态类型文件包含而不是动态类型文件包含。

SQL注入漏洞

此漏洞使攻击者可以干扰应用程序对其数据库的查询。然后,攻击者可以从数据库中检索和操作任何数据,以及在服务器上读写文件。

这种类型的攻击比其他任何攻击都更加危险,因为攻击者不会对文件进行任何更改(很难检测到这种攻击)。使用此漏洞,攻击者可以轻松绕过登录屏幕并获得对网站上管理员权限的访问权限。

预防

通过使用过滤器很难阻止这些类型的攻击,因为攻击者可以使它看起来像没有漏洞利用,但是可以使用编码,代理等来绕过过滤器。通常,Web应用程序具有阻止这些攻击的命令黑名单和白名单,但也可以绕过它们。

避免此类攻击的最佳方法是对Web应用程序进行编程,以使其不允许注入和执行代码。这只能通过使用参数化语句来完成。实施最低特权原则(POLP),将用户的访问权限限制为执行工作所需的最低权限。

跨站点脚本(XSS)漏洞

如果网站使用未经过滤的用户输入作为生成的输出,则该网站很容易受到XSS的攻击。使用此漏洞,攻击者将可以访问网页有权访问的所有对象。

这些攻击可以分为两种类型:

1.)存储的XSS —在这种情况下,注入的代码将存储在页面/数据库中。用户访问页面时执行该代码。

2.)反映的XSS-在这种情况下,代码不会存储在任何地方,仅在目标用户运行由攻击者操纵的特定URL时才执行。

预防

有三种防止XSS的常用方法:

逃避用户输入-这需要确保用户输入是安全且受信任的;也就是说,将以下每个字符从用户输入转换为HTML表示的方式:

& to &amp;< to &lt;> to &gt;“ to &quot;‘ to '/ to /

清理输入-清理用户输入,以确保接收到的数据不会对用户或数据库造成伤害。通过仅接受可接受格式的用户输入来完成此操作。

验证输入-包括确保应用程序在验证输入后呈现数据,以防止恶意数据损害用户或应用程序。

结论

所有的Web应用程序都提供了便利,并且是公开的,这使得愿意进行一些研究的人可以随时使用数据。这些应用程序容易受到攻击者发现和利用的漏洞的攻击。因此,至关重要的是要采用安全的手段来处理敏感信息并避免漏洞。本文旨在向你介绍攻击者可能用来破坏系统的各种类型的网络攻击。我希望你发现这对保护Web应用程序有帮助!请保持安全,并随时在评论部分中留下任何反馈或问题。

举报/反馈

原文链接:https://baijiahao.baidu.com/s?id=1681328517864141605&wfr=spider&for=pc

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18342

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml