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. 从管理员不好的配置入口
  4. 从管理员不好的意识入口
  5. 从管理员资源信息搜集入口

后端-方向-资源码云-源码泄漏

解决1:识别出大致信息却无下载资源

解决2:未识别出信息使用码云资源获取

解决3:其他行业开发使用对口资源站获取

涉及:

https://gitee.com/

https://github.com/

https://www.huzhan.com/

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

思维导图

image-20260106233457666

站内搜索

没有找到内容!