首页 - 技术文章 - 网站漏洞的分类
网站漏洞的分类
2023/1/15

1.SQL 注入
SQL 注入就是通过把 SQL 命令插入到 Web 表单,递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令的目的。

2.XSS(跨站脚本攻击)
跨站脚本攻击(Cross Site Scripting,缩写为 XSS),为了不与层叠样式表(Cascading Style Sheets)的缩写 CSS 混淆,故将跨站脚本攻击缩写为 XSS。XSS 是一种经常出现在 Web 应用中的计算机安全漏洞,其允许恶意 Web 用户将代码植入到提供给其他用户使用的页面中,这些代码包括 HTML 代码和客户端脚本。攻击者利用 XSS 漏洞进行非法访问控制——例如同源策略(Same Origin Policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击,所以广为人知。对于跨站脚本攻击,黑客界的共识是:跨站脚本攻击是新型的“缓冲区溢出攻击”,而 JavaScript是新型的“ShellCode”。

3.文件上传
文件上传漏洞是指用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,有时几乎不具有技术门槛。“文件上传”本身没有问题,有问题的是文件上传之后服务器怎么处理、解释文件。如果服务器的处理逻辑做得不够安全,则会有严重的不安全隐患。

4.文件下载
可以下载网站所有的信息数据,包括源码、网站的配置文件等信息。

5.目录遍历
如果 Web 设计者设计的 Web 内容没有恰当的访问控制,允许 HTTP 遍历,攻击者就可以访问受限的目录,并可以在 Web 根目录以外执行命令。

6.本地文件包含(Local File Include)
这是 PHP 脚本的一大特色,程序员们为了开发方便常常会用到包含。比如把一系列功能函数都写进 fuction.php 中,之后当某个文件需要调用时就直接在文件头中写上一句<?php include("fuction.php");?>,然后调用内部定义的函数。本地包含漏洞是 PHP 中一种典型的高危漏洞。由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件名,当被成功利用时可以使 Web Server将特定文件当成 PHP 脚本执行,从而导致用户获取一定的服务器权限。

7.远程文件包含
服务器通过 PHP 的特性(函数)去包含任意文件时,由于要包含的文件来源过滤不严,可以包含一个恶意文件,而我们可以构造这个恶意文件达到渗透系统的目的。几乎所有的 CGI 程序都有这样的 Bug,只是具体的表现方式不一样罢了。

8.全局变量覆盖
register_globals 是 PHP 中的一个控制选项,可以设置成 Off 或者 On,默认为 Off,决定是否将 EGPCS(EGPCS 是 Environment、GET、POST、Cookie、Server 的缩写)变量注册为全局变量。如果打开 register_globals,客户端提交的数据中含有 GLOBALS 变量名,就会覆盖服务器上的$GLOBALS 变量。

9.代码执行
由于开发人员编写源码时没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并交由服务器端执行。Web 服务器没有过滤类似system()、eval()、exec()等函数是该漏洞攻击成功的最主要原因。

10.信息泄露
由于代码编写不严谨或应用固有的功能,造成网站服务器信息被非法获取,但这只是一个低危漏洞。

11.弱口令
弱口令的危害就犹如你买了一个高级保险箱,什么刀斧工具都破坏不了它,但遗憾的是你把钥匙挂在了门上。常见的弱密码出现在个人邮箱、网游账号、系统口令等环境。

12.跨目录访问
开发人员没有正确地限制能够访问存储系统的网页路径。通常,跨目录攻击的受害者大多是社交网站,或者是全球性的 Web 服务器。因为在同一个 Web 服务器上可能为不同的用户或部门分配不同的目录。例如,每个 MySpace 用户都有一个个人的网络空间。此时,如果使用 Cookie 或者 DOM 存储,就可能产生跨目录攻击。

13.缓冲区溢出
缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击会导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权进而进行各种非法操作。

14.Cookies 欺骗
Cookies 能够让网站服务器把少量数据储存到客户端的硬盘,或从客户端的硬盘读取数据。当你浏览某网站时,由 Web 服务器置于你硬盘上一个非常小的文本文件,它可以记录你的用户 ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取 Cookies 得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入 ID、密码就可以直接登录等。从本质上讲,它可以看作是你的身份证。但 Cookies 不能作为代码执行,也不会传送病毒,为你所专有,且只能由提供它的服务器来读取。保存的信息片断以“名/值对”(Name-Value Pairs)的形式储存,一个“名/值对”仅仅是一条命名的数据。Cookies 欺骗就是修改其中保存的信息,从而实现某些特殊的目的。

15.反序列化
如果服务端程序没有对用户可控的序列化代码进行校验,而是直接进行反序列化使用,并且在程序中运行一些比较危险的逻辑(如登录验证等),那么就会触发一些意想不到的漏洞。比如经典的有 Weblogic 反序列化和 Joomla 反序列化漏洞。

16.CSRF(跨站请求伪造)
攻击者通过用户的浏览器注入额外的网络请求,破坏一个网站会话的完整性。浏览器的安全策略是允许当前页面发送到任何地址,因此也就意味着当用户在浏览其无法控制的资源时,攻击者可以控制页面的内容来控制浏览器,发送其精心构造的请求。

17.命令注入
系统对用户输入的数据没有进行严格过滤就运用,并且使用 bash 或 cmd 执行。


[English]