013-信息打点-Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
知识点
本节主要是细化上一节最后的第四点——Web架构资产:平台指纹识别部分,学习掌握搭建平台的源码,相当于代码审计(详见后面章节)的前置准备工作。本节主要是讲获取后端源码的方法,不涉及前端源码
1、开源-CMS指纹识别源码获取方式
2、闭源-习惯&配置&特性等获取方式
3、闭源-托管资产平台资源搜索监控
演示案例
后端-开源-指纹识别-源码下载
CMS识别见上述项目,如果为开源框架,可以直接在网上下载源码,如Z-Blog等
后端-闭源-配置不当-源码泄漏
源码泄露简介
什么是源码泄露,可以参考文章:https://www.secpulse.com/archives/124398.html
源码泄露包括如下类型:
- composer.json
- git源码泄露
- svn源码泄露
- hg源码泄漏
- 网站备份压缩文件
- WEB-INF/web.xml 泄露
- DS_Store 文件泄露
- SWP 文件泄露
- CVS泄露
- Bzr泄露
- GitHub源码泄漏
下面列出几个将常见源码泄露类型
网站备份
网站备份:敏感目录文件扫描,即管理员将网站源代码备份在Web目录下如www.rar,攻击者通过猜解文件路径,下载备份文件,导致源代码泄露。
CVS泄露
CVS泄露:CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。对应有漏洞利用工具:https://github.com/kost/dvcs-ripper
Git泄露
Git泄露:Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
判断有无此漏洞可在扫描路径添加.git进行测试,若返回404说明不存在,返回403则说明存在。
漏洞利用工具:https://github.com/lijiejie/GitHack
SVN泄露
SVN泄露:SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。
漏洞利用工具:https://github.com/callmefeifei/SvnHack (Python2运行)
DS_Store泄露
DS_Store:.DS_Store是MacOS下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
漏洞利用工具:https://github.com/lijiejie/ds_store_exp
源码泄漏原因
- 从源码本身的特性入口
- 从管理员不好的习惯入口
- 从管理员不好的配置入口
- 从管理员不好的意识入口
- 从管理员资源信息搜集入口
后端-方向-资源码云-源码泄漏
解决1:识别出大致信息却无下载资源
解决2:未识别出信息使用码云资源获取
解决3:其他行业开发使用对口资源站获取
涉及:
GITHUB资源搜索:
in:name test #仓库标题搜索含有关键字
in:descripton test #仓库描述搜索含有关键字
in:readme test #Readme文件搜素含有关键字
stars:>3000 test #stars数量大于3000的搜索关键字
stars:1000..3000 test #stars数量大于1000小于3000的搜索关键字 forks:>1000 test #forks数量大于1000的搜索关键字
forks:1000..3000 test #forks数量大于1000小于3000的搜索关键字 size:>=5000 test #指定仓库大于5000k(5M)的搜索关键字
pushed:>2019-02-12 test #发布时间大于2019-02-12的搜索关键字 created:>2019-02-12 test #创建时间大于2019-02-12的搜索关键字
user:test #用户名搜素
license:apache-2.0 test #明确仓库的 LICENSE 搜索关键字 language:java test #在java语言的代码中搜索关键字
user:test in:name test #组合搜索,用户名test的标题含有test的
关键字配合谷歌搜索:
site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @126.com
site:Github.com smtp @163.com
site:Github.com smtp @sina.com.cn
site:Github.com smtp password
site:Github.com String password smtp
思维导图
