Web 攻击技术

2022-09-08  本文已影响0人  Sun东辉

在 Web 应用中,从浏览器那接收到的 HTTP 请求的全部内容,都可以在客户端自由地变更、篡改。所以 Web 应用可能会接收到与预期数据不相同的内容。

在 HTTP 请求报文内加载攻击代码,就能发起对 Web 应用的攻击。 通过 URL查询字段或表单、HTTP 首部、Cookie 等途径把攻击代码传入,若这时 Web 应用存在安全漏洞,那内部信息就会遭到窃取,或被攻击者拿到管理权限。

针对 Web 应用的攻击模式有以下两种:

跨站脚本攻击

跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的 Web 网站注册用户的浏览器内运行非法的 HTML 标签或 JavaScript 进行的一种攻击。动态创建的 HTML 部分有可能隐藏着安全漏洞。就这样,攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。

XSS 是攻击者利用预先设置的陷阱触发的被动攻击。可能造成的结果包括:

SQL 注入攻击

SQL 注入(SQL Injection)是指针对 Web 应用使用的数据库,通过运行非法的 SQL 而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露。

Web 应用通常都会用到数据库,当需要对数据库表内的数据进行 检索或添加、删除等操作时,会使用 SQL 语句连接数据库进行特定的操作。如果在调用 SQL 语句的方式上存在疏漏,就有可能执行被恶意注入(Injection)非法 SQL 语句。

SQL 注入攻击有可能会造成以下等影响:

OS 命令注入攻击

OS 命令注入攻击(OS Command Injection)是指通过 Web 应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell 函数的地方就有存在被攻击的风险。OS 命令注入攻击可以向 Shell 发送命令,让 Windows 或 Linux 操作系统的命令行启动程序。也就是说,通过 OS 注入攻击可执行 OS 上安装着的各种程序。

HTTP 首部注入攻击

HTTP 首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。向首部主体内添加内容的攻击称为 HTTP 响应截断攻击(HTTP Response Splitting Attack)。

HTTP 首部注入攻击有可能会造成以下一些影响:

如下所示:

101%0D%0ASet-Cookie:+SID=123456789

邮件首部注入攻击

邮件首部注入(Mail Header Injection)是指 Web 应用中的邮件发送功能,攻击者通过向邮件首部 To 或 Subject 内任意添加非法内容发起的攻击。利用存在安全漏洞的 Web 网站,可对任意邮件地址发送广告邮件或病毒邮件。

目录遍历攻击

目录遍历(Directory Traversal)攻击是指对本无意公开的文件目录, 通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历(Path Traversal)攻击。

通过 Web 应用对文件处理操作时,在由外部指定文件名的处理存在疏漏的情况下,用户可使用 .../ 等相对路径定位到 /etc/passed 等绝对路径上,因此服务器上任意的文件或文件目录皆有可能被访问到。这样一来,就有可能非法浏览、篡改或删除 Web 服务器上的文件。

固然存在输出值转义的问题,但更应该关闭指定对任意文件名的访问权限。

远程文件包含漏洞

远程文件包含漏洞(Remote File Inclusion)是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的 URL 充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。

这主要是 PHP 存在的安全漏洞,对 PHP 的 include 或 require 来说, 这是一种可通过设定,指定外部服务器的 URL 作为文件名的功能。 但是,该功能太危险,PHP5.2.0 之后默认设定此功能无效。

强制浏览安全漏洞

强制浏览(Forced Browsing)安全漏洞是指,从安置在 Web 服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。强制浏览安全漏洞类似于目目录遍历攻击,可能造成的影响包括:

不正确的错误消息处理

不正确的错误消息处理(Error Handling Vulnerability)的安全漏洞是指,Web 应用的错误信息内包含对攻击者有用的信息。与 Web 应用有关的主要错误信息包括:

Web 应用不必在用户的浏览画面上展现详细的错误消息。对攻击者来说,详细的错误消息有可能给他们下一次攻击以提示。

开放重定向

开放重定向(Open Redirect)是一种对指定的任意 URL 作重定向跳转的功能。而于此功能相关联的安全漏洞是指,假如指定的重定向 URL 到某个具有恶意的 Web 网站,那么用户就会被诱导至那个 Web 网站。

如下所示:

http://example.com/?redirect=http://hacker.com

会话劫持

会话劫持(Session Hijack)是指攻击者通过某种手段拿到了用户的会话 ID,并非法使用此会话 ID 伪装成用户,达到攻击的目的。

具备认证功能的 Web 应用,使用会话 ID 的会话管理机制,作为管理认证状态的主流方式。会话 ID 中记录客户端的 Cookie 等信息,服务器端将会话 ID 与认证状态进行一对一匹配管理。获得会话 ID 的途径包括:

会话固定攻击

会话固定攻击(Session Fixation)会强制用户使用攻击者指定的会话 ID,等待用户拿着这个会话 ID 前去认证时,触发陷阱,记录会话 ID 在服务器上的状态,之后再利用这个会话 ID 伪装为此用户进行攻击。会话固定攻击属于被动攻击。

跨站点请求伪造

跨站点请求伪造(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行预期外的个人信息或设定信息等某些状态更新,属于被动攻击。

跨站点请求伪造有可能会造成以下等影响:

密码破解

密码破解攻击(Password Cracking)即算出密码,突破认证。攻击不仅限于 Web 应用,还包括其他的系统(如 FTP 或 SSH 等)。密码破解有以下两种手段:

除去突破认证的攻击手段,还有 SQL注入攻击逃避认证,跨站脚本攻击窃取密码信息等方法。

点击劫持

点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在 Web 页面之上。然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段。这种行为又称为界面伪装(UI Redressing)。

Dos 攻击

DoS 攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。DoS 攻击的对象不仅限于 Web 网站,还包括网络设备及服务器等。

主要有以下两种 DoS 攻击方式:

其中,集中利用访问请求的 DoS 攻击,单纯来讲就是发送大量的合法请求。服务器很难分辨何为正常请求,何为攻击请求,因此很难防 止 DoS 攻击。

多台计算机发起的 DoS 攻击称为 DDoS 攻击(Distributed Denial of Service attack)。DDoS 攻击通常利用那些感染病毒的计算机作为攻击者的攻击跳板。

后门攻击

后门程序(Backdoor)是指开发设置的隐藏入口,可不按正常步骤使用受限功能。利用后门程序就能够使用原本受限制的功能。

通常的后门程序分为以下 3 种类型:

可通过监视进程和通信的状态发现被植入的后门程序。但设定在 Web 应用中的后门程序,由于和正常使用时区别不大,通常很难发现。

上一篇下一篇

猜你喜欢

热点阅读