如何查找网站漏洞文件任意查看漏洞详情与利用

简介: 在对网站程序代码的安全检测当中,网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站较多一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一个文件,甚至可以查看到网站的配置文件config.php conn.php等等。

在对网站程序代码的安全检测当中,网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站较多一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一个文件,甚至可以查看到网站的配置文件config.php conn.php等等。

我们SINE安全公司在对gitea开源程序代码进行网站安全检测的时候发现存在网站文件任意查看漏洞,没有授权的任意一个用户的账号都可以越权创建gitea的lfs对象,这个对象通俗来讲就是可以利用gitea代码里写好的第三方api借口,进行访问,可以实现如下功能:读取文件,上传文件,列目录等等的一些读写分离操作。其中API李的oid是gitea对象的一个值,这个值是用的哈希,在前端输入的过程中并没有对其进行ID值的判断与安全过滤,导致可以插入任意的字符传入到服务器的后端中去,导致可以执行查看文件的漏洞。我们来现场还原下网站漏洞的利用:

首先POST数据过去,POST到的地址为 /vulhub文件夹下的repo.git目录/info/lfs/objects文件。

如下图:

我们POST数据过去的时候就可以在OID这个值里插入一些可以查看网站文件的代码,但是这个漏洞是需要有前提条件的,就是gitea默认开启公开访问,然后在创建gitea对象的时候,才会产生绕过权限查看文件的漏洞,为什么说要公开访问,是因为公开以后,之前创建的gitea对象才会生效,紧接着检查当前用户是否有权限访问LFS对象。我们看到我们POST发送数据过去以后,返回来的数据包是200状态,也就是发送成功,gitea对象已经成功创建了,我们POST数据里写的oid=值是....../../../etc/passwd,这个代码的意思就是查看系统根目录下的etc文件夹下的linux 用户密码文件。

接下来我们就要查看这个/etc/passwd文件里的内容了,该如何查看这个密码文件呢? 我们

用get的方式进行提交,我们编辑一下网址:

/vulhub/repo.git/info/lfs/objects/ [....../../../etc/passwd]/sth,然后打开chinaz的url编码工具进行编码一下,就可以了,我们get提交访问的时候就查看到了/etc/passwd文件的内容。

那么该网站漏洞是如何产生的呢?

我们来看下gitea的程序源代码,发现代码里的meta.oid值是调用的transformKey函数,这个函数的作用就是将oid的值转换成了其他的编码方式,导致字符里内容可以随意写入,没有长度限制,文字限制,当我们POST把oid值改为....../../../etc/passwd的时候就可以直接调取了这个文件并读取出来。

网站漏洞修复建议:

尽快升级gitea的版本,并做好网站安全加固,POST数据包进行安全过滤,有条件的话请部署get post防火墙,对get post方式提交的数据进行安全过滤,当发现查看系统文件的时候,比如:/etc/passwd请直接过滤拦截,并返回301状态。

专注于安全领域 解决网站安全 解决网站被黑 网站被挂马 网站被篡改 网站安全、服务器安全提供商-www.sinesafe.com --专门解决其他人解决不了的网站安全问题.
相关文章
|
自然语言处理 安全 C++
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
8843 4
|
安全 小程序 PHP
PHP代码审计(六)Seay源代码审计系统使用教程
www.cnseay.com/ 当然,这个已经不能访问了。 软件的版本比较早,需要.NET framework3.5框架,我这里是软件启动的时候自动提醒安装,如果没有自动提醒,那么你需要手动安装.NET frameWork3.5框架,否则,程序应该是没有办法运行。
1554 0
|
弹性计算 数据可视化 关系型数据库
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
6655 0
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
|
Ubuntu Linux 时序数据库
|
9月前
|
JSON API 开发者
速卖通获得AliExpress商品详情API接口文章
速卖通(AliExpress)是阿里巴巴旗下的全球跨境电商平台,提供便捷的在线购物渠道。为帮助开发者和商家高效管理商品信息,速卖通提供了商品详情API接口。本文介绍如何使用aliexpress.item_get API获取商品详情,包括获取API密钥、调用API接口及处理响应数据,帮助用户提升商品管理和营销效率。注意API调用限制和合法合规使用。
|
11月前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
320 10
|
Oracle NoSQL 安全
阿里云Linux服务器安装JDK运行环境教程
今天先跟大家聊聊最基本的jdk运行环境部署安装,后续再跟大家分享一些更加复杂的项目环境部署,比如oracle数据库安装、redis非关系型数据库安装、以及项目的部署等等,闲话也不说,接下来我们来看要怎样操作吧!
7145 3
|
11月前
|
资源调度 前端开发 JavaScript
Python学习二:Python包管理器pip
这篇文章介绍了Python包管理器pip的基本概念、基本操作、如何更改下载源为国内镜像以加速下载,以及如何指定安装包的位置。
421 0
Python学习二:Python包管理器pip
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
592 2
|
存储 Prometheus 监控
Prometheus 的报警机制:Alertmanager 的配置与使用
【8月更文第29天】Prometheus 是一个非常强大的监控系统,它不仅能够收集和存储时间序列数据,还能通过 Alertmanager 提供灵活的报警机制。Alertmanager 负责接收 Prometheus 发送的警报,并根据配置的规则执行相应的通知动作。本文将详细介绍如何配置 Alertmanager 以及如何使用它来实现基于 Prometheus 指标的报警通知。
3434 1