Web系统常见的几种漏洞及防护方案

利用漏洞对计算机进行攻击渗透,前提是服务器能正常通信。服务器提供各种服务给客户端进行使用的。它是依靠端口来进行通信,黑客也是根据端口来进行入侵的。那么也不排除一些物理攻击的方式,例如社会工程学①等。

在这里插入图片描述

一、越权访问

 不同权限账户之间的存在越权访问。

不同权限用户之间连接访问造成的功能、数据越权。
不同权限用户之间替换用户cookie造成的越权。
不同权限用户之间修改id造成的越权。

检测方法:

使用工具抓取A用户功能链接,然后登录B用户对此链接进行访问。
使用抓包工具抓取A用户ID并将此ID改成B用户的ID,查看是否可以操作B用户的功能或查看B的用户数据
使用抓包工具替换不同用户cookie的方法进行测试。
防护方案:在后台服务做严格的用户权限验证。

在这里插入图片描述

二、SQL注入

攻击者利用SQL注入漏洞,可以获取数据库中的多种信息(例如:管理员后台密码),从而脱取数据库中内容(脱库)。在特别情况下还可以修改数据库内容或者插入内容到数据库,如果数据库权限分配存在问题,或者数据库本身存在缺陷,那么攻击者可以通过SQL注入漏洞直接获取web shell或者服务器系统权限。

检测方法:

识别用户输入。SQL注入漏洞可能在系统输入参数中,这些参数执行数据库操作。
GET、POST参数中。
COOKIE参数中。
http请求头。主机头、引用站点(referer)、User-Agent和X-Forwarded-For等。
检测SQL注入。使用SQL注入测试语句对输入参数进行测试。
特殊符号:单引号,分号,web服务器响应报错。
条件响应:and 1=1、and 1=2、’ or ‘1’=‘1、’ or ‘1’='2,两次web服务器响应不同。
时间延时:sleep(5)、waitfor delay ‘0:0:5’,系统服务器延迟响应。
参数相加:对数字类型进行加减运算,字符类型使用数据库连接符号进行连接。系统服务器响应与原来的响应相同。
利用SQL注入。对以上测试进一步利用,手工构造SQL注入语句或者使用SQLMAP检测脚本构造注入语句。
防护方案:对输入参数进行过滤、校验或者采用参数预处理的方式。

在这里插入图片描述

三、XSS跨站脚本漏洞

攻击者的输入没有经过严格的控制,最终显示给来访的用户,攻击者通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java, VBScript, ActiveX, Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、个人网页内容、会话和cookie等各种内容。XSS漏洞包括但不仅限于:存储型XSS、反射型XSS、链接注入、框架钓鱼等。

检测方法:

查找可能出现XSS跨站的位置,网站搜索框、信息存储等。

对可能出现XSS跨站的位置进行输入,常用测试语句为:
查看网站网页源代码,测试语句是否在系统响应HTML代码中输出。没有输出则不能进行XSS跨站利用。
对有测试语句输出的响应HTML代码,进行构造使XSS测试代码能当做JavaScript代码执行。
防护方案:对用户的输入参数进行过滤、校验;输出的参数进行html实体编码。过滤、校验或者实体编码要覆盖的系统内所有参数;过滤规则强大可以有效的防止注入;系统前后端都要进行过滤。

在这里插入图片描述

四、任意文件上传漏洞

在应用系统的运营过程中,不可避免地要对网站的某些页面或者内容进行更新,这时便需要使用到网站的文件上传的功能。如果不对被上传的文件进行限制或者限制被绕过,该功能便有可能会被利用于上传可执行文件、脚本到服务器上,进而进一步导致服务器沦陷。

检测方法:

找到系统中可以上传文件的地方。
上传系统要求的合法文件,确定上传点可用。
上传Web Shell。
访问上传Web Shell文件的链接地址。
防护方案:

对文件格式限制,只允许某些格式上传。
对文件格式进行校验,前端和服务器都要进行校验(前端校验扩展名,服务器校验扩展名、Content Type等)。
将上传目录防止到项目工程目录之外,当作静态资源文件路径,并且对文件的权限进行设定,禁止文件下的执行权限。

在这里插入图片描述

五、目录遍历攻击漏洞

攻击人员通过目录便利攻击可以获取系统文件及服务器的配置文件等等。一般来说,他们利用服务器API、文件标准权限进行攻击。严格来说,目录遍历攻击并不是一种web漏洞,而是网站设计人员的设计“漏洞”。如果web设计者设计的web内容没有恰当的访问控制,允许http遍历,攻击者就可以访问受限的目录,并可以在web根目录以外执行命令。

检测方法:

爬行或者暴力破解系统目录结构。
在浏览器地址栏输入网站目录,http://www.test.com/test/,查看test文件夹内的文件能否被列出来。
防护方案:

净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
web应用程序可以使用chrooted环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。www目录就是一个chroot②应用。

六、关键会话重放攻击

不断恶意或欺诈性地重复一个有效的数据包,重放攻击者可以拦截并重复发该数据到服务端,服务器端未对用户提交的数据包重放进行有效限制。如:可以抓取HTTP包中固定账号破解密码、固定密码破解账号、破解用户名和重放提交投票数据包。

检测方法:

使用抓包工具去抓取系统登录请求,获得用户和密码参数。
使用用户或密码字典替代登录请求会话中对应的用户或密码参数。
开始尝试暴力破解。
防护方案:添加token验证、时间戳或者图片验证码。token、时间戳和图片验证码在服务器后端刷新,数据包提交一次数据刷新一次;对固定账号破解密码、固定密码破解账号会话重放都要进行限制;对系统关键操作进行防护,如登录操作。

在这里插入图片描述

关键会话重放攻击漏洞防护token生成代码示例

在这里插入图片描述
关键会话重放攻击漏洞防护token验证代码示例

在这里插入图片描述
关键会话重放攻击漏洞防护代码示例

网络安全学习资源分享:

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 (qq.com)

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 (qq.com)

因篇幅有限,仅展示部分资料,需要点击上方链接即可获取