参考:
https://www.secpulse.com/archives/124398.html
https://mp.weixin.qq.com/s/zhjxW2mUEgq6dFAp3kBcgQ
#源码泄漏原因:
1、从源码本身的特性
2、从管理员不好的习惯入口
3、从管理员习惯的开发入口
4、从管理员不好的配置入口
5、从管理员不好的意识入口
6、从管理员资源信息搜集入口
源码泄漏大概集合:
Webpack打包泄漏
Webpack 是前端模块打包工具,核心作用:把浏览器不直接识别的零散资源(JS、CSS、图片、字体、Vue/React 组件等)统一编译、压缩、合并成浏览器可运行的静态文件
分为两种模式:
1、开发模式:不压缩代码、保留完整注释、不混淆变量、生成 source-map(源码映射文件),方便调试。
2、生产模式:默认代码压缩、变量混淆、删除注释、tree-shaking,一般不对外暴露完整源码映射。
Source-Map 是什么:
浏览器运行压缩混淆后的代码(一行几万字符、变量名 a/b/c),报错时无法定位原始代码行数。 Source Map(<font style="color:#DF2A3F;background-color:rgba(0, 0, 0, 0);">.map</font> 文件)是一份映射表: 压缩代码 ↔ 开发时未压缩、带注释、完整变量名的原始源码。 拿到 <font style="color:#DF2A3F;background-color:rgba(0, 0, 0, 0);">.map</font> 文件,可一键还原完整前端源码(业务逻辑、接口地址、密钥、注释、内部逻辑全部暴露)。
source detector安装配置:https://blog.csdn.net/gitblog_00648/article/details/146995172
核心根源:错误配置导致完整源码映射文件(source-map)被部署到线上服务器,任何人可下载还原完整前端源代码。
composer.json
绝大多数现代PHP项目在搭建过程中都会产生composer.json文件,但它不是PHP语言本身强制生成的,而是使用composer包管理器是自动生成的配置文件。composer包管理器和python的pip几乎一样,它用来帮PHP项目自动下载、安装、管理第三方库(插件/组件)
GitHub源码泄漏
就是开发人员主动把代码上传到了这种代码平台上,但是特别重要的网站一般是不会,不过渗透过程你可以碰碰运气
git源码泄露
git是分布式的代码版本管理工具:通俗解读就是每个开发者电脑上都有完整的代码仓库+所有版本记录,Git是分布式代码管理工具,公司开发网站时,每个开发人员的电脑都必须装Git,大家写代码时,Git会完整记录代码的每一个迭代版本,以及谁改、什么时候改、改了什么的所有修改记录,团队之间靠Git配合同步代码,这是核心逻辑。
在网站URL后加一个.git如果有就存在这个漏洞
python GitHack.py url
GIT:https://github.com/lijiejie/GitHack
svn源码泄露
SVN是集中式的代码版本管理工具:SVN就是唯一的代码仓库+版本记录库,公司搭一台核心服务器装SVN→作为唯一的代码库+版本记录库;开发人员电脑装SVN客户端→仅作操作工具,本地只有写的代码,无任何版本记录;开发完通过客户端联网提交代码到核心服务器→服务器记录所有代码版本、修改信息(和Git记录的内容维度完全一致);网站部署时→从这台SVN核心服务器拉取纯代码上线即可(和Git部署逻辑完全相同,都只拿运行所需代码,不碰管理工具文件)。
在网站URL后加一个.svn如果有就存在这个漏洞
python SvnHack.py -u url python要用2如果当前是3就把目录写全 加–download就下载了
SVN:https://github.com/callmefeifei/SvnHack
网站备份压缩文件
把源码压缩后存放在网站目录下,通过御剑等目录扫描工具进行目录扫描即可
DS_Store文件泄露
.DS_Store是macos系统自动生成的隐藏文件,它是macos用来保存文件夹显示设置的配置文件,只要你用macos打开过一个文件夹,系统就会自动在里面生成一个.DS_Store文件,很多开发者用macos开发,然后直接把整个项目文件夹上传到网站根目录,忘记删除.DS_Store,攻击者访问网站.com/.DS_Store,就能直接看到这个目录下有哪些文件,相当于拿到了网站的目录地图,ds_store_exp工具
DS_Store:https://github.com/lijiejie/ds_store_exp
通用:https://github.com/0xHJK/dumpall这个是git、svn、ds_store通用工具
思路点:
1、使用指纹识别平台获取到目标CMS
通过搜索引擎获取到源码
2、使用指纹识别平台不能获取目标信息
后端:借助svn git composer.json ds_store 备份扫描等配置泄漏安全
前端:webpack打包 谷歌插件获取源码
3、借助资源平台去搜索(github gitee oschina等源码)
-特定文件(就是看访问网站加载的数据包名字有没有特殊含义的,直接去github上搜)
-特征联系方式(看页面有没有什么联系方式,github搜)
-github监控( 除了源码,漏洞更新,工具更新等都有用处)
目标使用的源码是开源还是闭源,是否公开
#源码泄漏实战文章
渗透测试实战—某资金盘信息收集(.idea目录泄露)
https://mp.weixin.qq.com/s/7cSrDZci_drE6wTGvQOOHw
SRC挖掘-js.map泄露到接管云上域控