前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网站漏洞修补网站文件任意查看漏洞详情与利用

网站漏洞修补网站文件任意查看漏洞详情与利用

原创
作者头像
技术分享达人
修改2018-12-13 11:25:24
1.4K0
修改2018-12-13 11:25:24
举报
文章被收录于专栏:网站漏洞修补

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
脆弱性检测服务
脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档