教你快速修复一些常见的框架信息漏洞
前言
信息泄露指的是未经授权或未经意间公开或外泄的信息,这种情况可能发生在开发人员、软件供应商、托管平台或黑客攻击等多种情况下。一旦存在信息泄露,可能导致严重的后果,此漏洞也是各位师傅在挖SRC的过程中会经常遇到的漏洞,本文将对常见的框架信息泄露进行实操,让师傅更生动的理解其漏洞。
webpack信息泄露
漏洞描述
可以获得程序的js代码,那么就可以针对源代码对代码中各种信息如隐蔽接口、API、加密算法、管理员邮箱、内部功能等等,或者接口API可以尝试未授权漏洞,拼接接口越权漏洞,查找源代码中关键字去GitHub查找程序源码进行代码审计。
漏洞复现
查看组件发现使用webpack
通过source detecotor插件发现js.map文件
访问
访问:[https://xxx.xxx.xxx/js/chunk-49ba7197.fafa215a.js.map](https://xxx.xxx.xxx/js/chunk-49ba7197.fafa215a.js.map)
成功下载map文件
利用reverse-sourcemap工具还原源码
成功还原源码
修复意见
在项目路径下修改config/index.js中build对象productionSourceMap: false;
建议删除或禁止访问正式环境中的js.map文件;
SVN泄露
漏洞描述
SVN(subversion)是程序员常用的源代码版本管理软件。一旦网站出现SVN漏洞,其危害远比SQL注入等其它常见网站漏洞更为致命,因为黑客获取到网站源代码后,一方面是掠夺了网站的技术知识资产,另一方面,黑客还可通过源代码分析其它安全漏洞,从而对网站服务器及用户数据造成持续威胁。更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。
漏洞复现
[https://xxx.xxxx/js/chunk-49ba7197.fafa215a.js.ma
访问
访问:
[https://xxx.xxx.xxx/.svn/entries(https://xxx.xxx.xxx/.svn/entries)
访问成功初步证明存在svn泄露
利用SvnExploit工具还原源码
链接:https://github.com/admintony/svnExploit
命令:
python SvnExploit.py -u https://xxx.xxx.xxx/.svn --dump
成功下载
使用Seay源代码审计系统一建审计一下可以看到进一步的利用是非常有希望,这也是其危害所在。
修复建议
1.删除SVN各目录下的.svn目录;删除CVS的CVS目录。或者对URL中进行过滤,过滤相关svn等相关敏感字符:location~ ^(.*)/.svn/ { return 404; }
2.不要使用svn checkout和svn up更新服务器上的代码,使用svn export(导出)功能代替。
3.服务器软件(Nginx、apache、tomcat、IIS等)设置目录权限,禁止访问.svn和.git目录,下面示范为禁止访问点号开头的目录。
laravel信息泄露
漏洞描述
laravel因配置不当会泄露MySQL,Redis,Elastic,Mongodb,neo4j,postgresql,SQLServer,Oracle,Firebird,sqlite,mail账号密码和APP_KEY等敏感信息。黑客可以利用这些信息进行脱库,或者在服务器植入后门,也可以利用数据库服务器进行跳板入侵内网其他重要服务器。
漏洞复现
改为poc请求包
POST / HTTP/1.1
Host: xxx.xxx.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko
/20100101 Firefox/78.0
Content-Length: 0
Accept-Encoding: gzip
放包
成功访问错误页面
泄露数据库账号密码
通过ping命令获取目标ip访问
跳转至首页可知道ip和域名是对应的
使用泄露的密码连接数据库
连接成功
修复建议
1、关闭laravel配置文件中的调试功能,在.env文件中找到APP_DEBUG=true,将true改为false。
2、在根目录下添加.htaccess文件,仅限Apache,可以禁止直接访问127.0.0.1/laravel/.env
Spring Boot存在信息泄露漏洞
漏洞描述
从/actuator/env可以看到大量的环境变量、内网地址、配置中的用户名等信息,同时还有一定概率可以通过 POST 请求 /env 接口设置一些属性,间接触发相关 RCE 漏洞;同时还可以获得*遮掩的密码、密钥等重要隐私信息的明文。(详细信息可见附件env.txt中) 网站可以访问/actuator/heapdump接口,可以使用MAT 查找 spring heapdump 中的获取被*号脱敏的密码的明文。
漏洞复现
访问成功
成功下载heapdump
以下图密码为例
db密码为:xxxxxxxxxxxx
解密成功
修复建议
1、Actuator 默认所有的监控点路径都在/actuator/*,当然如果有需要这个路径也支持定制,通过修改配置文件改变端点名避免被扫描发现。
2、关闭不需要使用的端点并引入security依赖,打开安全限制并进行身份验证。同时设置单独的Actuator管理端口并配置不对外网开放。
关注东方隐侠安全团队 为安全界刮起一股侠客风
东方隐侠安全团队,一支专业的网络安全团队,将持续为您分享红蓝对抗、病毒研究、安全运营、应急响应等网络安全知识,提供一流网络安全服务,敬请关注!
公众号|东方隐侠安全实验室
原文始发于微信公众号(东方隐侠安全实验室):教你快速修复一些常见的框架信息漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论