常见漏洞危害和修复建议
Posted 小心灵呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见漏洞危害和修复建议相关的知识,希望对你有一定的参考价值。
参考链接:
https://vulwiki.readthedocs.io/zh_CN/latest/web/svn/
接口未授权访问
漏洞描述
接口未授权访问,顾名思义在不进行请求授权的情况下,能够直接对相应的业务逻辑功能进行访问、操作等。通常是由于认证页面存在缺陷或者无认证、安全配置不当等导致的。
常见应用场景
最常见的应用场景为后台某些API接口在不登录系统的情况,直接请求对应的URI即可访问、操作该接口。
攻击者最常见的攻击途径主要有如下:
通过目录扫描工具加载目录字典探测
通过模糊测试URI中的参数进行探测
通过前端静态文件,比如JS、webpack等查找
漏洞危害
攻击者可在没有认证的情况下直接操作对应的API接口,可直接被非法增删改次数据。
因为攻击是在未认证下进行的,所以后续无法通过定位用户进行异常排查。
修复建议
对于后台接口,确保所有API接口先经过登录控制器。
在验证用户身份权限前不进行任何数据的交互。
svn信息泄露
漏洞描述
在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的entries文件,获取站点信息。
漏洞危害
攻击者可以利用.svn/entries文件,获取到应用程序源代码、svn服务器账号密码等信息。同时,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。
攻击者利用该漏洞可下载网站源代码,获得数据库的连接账号密码等敏感信息;
攻击者可通过获取的源代码进一步分析出新的系统漏洞,从而进一步入侵系统;
修复建议
查找服务器上所有.svn隐藏文件夹,删除。
开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。
越权
漏洞描述
越权漏洞是指应用程序未对当前用户操作的身份权限进行严格校验,导致用户可以操作超出自己管理权限范围的功能,从而操作一些非该用户可以操作的行为。
常见应用场景
越权漏洞一般可以分为:垂直越权,水平越权两种
水平越权
攻击者可以访问与他拥有相同权限的用户的资源,资源权限ID不变,资源归属ID改变;
垂直越权
低级别攻击者可以访问高级别权限用户的资源,资源权限ID不变,资源归属ID改变;
低级别攻击者可以访问高级别权限用户的资源,资源权限ID改变,资源归属ID不变;
漏洞危害
垂直越权漏洞会导致低权限用户用来执行高权限用户的功能,获取高权限用户的账号信息,执行高权限用户的操作功能。
水平越权会导致同一层级间的用户可以互相访问到对方的敏感信息,如姓名、手机号、联系地址、个人资料、订单记录等。同时还可能会以其他平级权限用户的身份来执行某行功能,如删除,添加,修改等。
修复建议
设计表时对用户ID、订单ID等根据ID进行操作的ID字段进行随机化、比如加入时间戳的md5值md5(
d
a
t
e
t
i
m
e
.
datetime.
datetime.id)。
严格校验当前用户操作与当前登录用户身份权限是否匹配。
Thinkphp 5.x
thinkphp 报错信息中泄露数据地址,账号,密码信息
漏洞原理:ThinkPHP 5.X存在设计缺陷,在开启debug模式下,如果数据库抛出错误,ThinkPHP就会一起报错,并输出数据库配置信息。
排查方式:检查使用的版本是否为 Thinkphp 5.X且是否开启debug模式。
修复建议:关闭debug模式: APP_DEBUG 参数设置为 false
任意文件读取/下载
在读取文件内容文件或文件下载处,未严格限制读取/下载文件的路径及文件后缀,导致可利用…/,#等目录操作字符进行目录穿越、截断等手段,从而读取/下载服务器上任意文件,比如配置文件等。
1.2 文件包含
在通过PHP的incluede、require等函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入,主要包括本地文件包含和远程文件包含两种形式。
1.3 文件删除
应用程序在删除文件前,未对所要删除的文件内容、类型、文件名、文件目录做合法性校验,导致可删除服务器上任意文件,比如删除安装目录中锁文件,直接进行重装应用系统。
常见应用场景
2.1 文件读取/下载
读取/下载图片、文件内容;下载附件;预览文档;导出文档;修改、保存文档等
2.2 文件包含
比如包含了某个图片、附件、远程URL、从远程获取资源文件等
2.3 文件删除
删除文件、附件、图片、替换、配置等
漏洞危害
文件读取/下载:如果系统未对读取/下载文件的文件目录做限制,攻击者利用此漏洞可直接读取web目录下任意文件,比如配置文件、数据库文件等,甚至直接获取服务器上任意文件内容。
文件包含:攻击者利用此漏洞通过包含含有任意恶意代码的任意格式文件,比如图片文件、log文件等,可直接获取应用系统权限,如果开启了allow_url_fopen/allow_url_include等配置,可直接包含远程任意格式文件。
文件删除:攻击者利用此漏洞可直接删除web目录甚至服务器上任意格式文件,直接导致业务系统中断、崩溃。
修复建议
配置文件:在配置文件中限制访问的文件目录,比如PHP中php.ini配置open_basedir
特殊字符过滤:检查用户输入,过滤或转义含有“…/”、“…\\”、“%00”,“…”,“./”,“#”等跳转目录或字符终止符、截断字符的输入
合法性判断:严格过滤用户输入字符的合法性,比如文件类型、文件地址、文件内容等
白名单:白名单限定访问文件的路径、名称及后缀名
Log4j漏洞
公开日期:2021.12.09漏洞细节被公开
漏洞危害:高危、远程代码执行
漏洞分析
Apache Log4j 的远程代码执行漏洞细节被公开,该漏洞一旦被攻击者利用会造成严重危害。经过快速分析和确认,该漏洞影响范围极其广泛,危害极其严重,我们建议企业第一时间启动应急响应进行修复。此外,经过我们复现和验证,TDP 基于其自研的通用漏洞检测引擎,已于数月前支持对此次最新漏洞的检测,无需任何更新:
可能的受影响应用包括但不限于如下:
Spring-Boot-strater-log4j2
Apache Struts2
Apache Solr
Apache Flink
Apache Druid
ElasticSearch
flume
dubbo
Redis
logstash
kafka
检测及修复方案
1、紧急缓解措施:
(1) 修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
(2) 修改配置log4j2.formatMsgNoLookups=True
(3) 将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
2、检测方案:
(1)由于攻击者在攻击过程中可能使用 DNSLog 进行漏洞探测,建议企业可以通过流量监测设备监控是否有相关 DNSLog 域名的请求,微步在线的 OneDNS 也已经识别主流 DNSLog 域名并支持拦截。
(2)根据目前微步在线对于此类漏洞的研究积累,我们建议企业可以通过监测相关流量或者日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。
3、修复方案:
检查所有使用了 Log4j 组件的系统,官方修复链接如下:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1
以上是关于常见漏洞危害和修复建议的主要内容,如果未能解决你的问题,请参考以下文章