一.知识点和总览

知识点:

CMS指纹识别源码获取方式

习惯&配置&特性等获取方式

托管资产平台资源搜索监控

源码泄漏原因:

1、从源码本身的特性入口

2、从管理员不好的习惯入口

3、从管理员不好的配置入口

4、从管理员不好的意识入口

5、从管理员资源信息搜集入口

源码泄漏集合:

git 源码泄露

svn 源码泄露

hg 源码泄漏

网站备份压缩文件

WEB-INF/web.xml 泄露

DS_Store 文件泄露

SWP 文件泄露

CVS 泄露

Bzr 泄露

GitHub 源码泄漏

二.直接获取-CMS 识别-云悉指纹识别平台

CMS 识别:https://www.yunsee.cn/

注意:下面的三四五六七是识别不到CMS用的

三.习惯不好-备份文件

备份服务器文件的时候备份到服务器文件夹内会导致泄露,如果备份到上一级目录就可以避免

四.配置不当-GIT 泄漏

Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。

  • 判断有无该安全问题,在网址后面加地址.git/看看返回代码

使用读取脚本命令GitHack,在githack目录打开cmd,然后格式为:

1
python GitHack.py .git目标网址

五.配置不当-SVN 泄漏

SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。

  • 判断:网址后面加.svn/entries访问该目录看结果

使用SvnHack脚本,用法:

1
SvnHack.py [options]
  • Options:

    -h, –help show this help message and exit

    -u Url, –url=Url add a svn url.

    -d Dic, –dic=Dic list a directory.

    -r READFILE, –read=READFILE read a file.

    –download download the entire station.

例子:

列取目录:

1
2
3
- 根目录       python SvnHack.py -u http://x.x.x.x/.svn/entries  

- 指定目录 python SvnHack.py -u http://x.x.x.x/.svn/entries -d scripts

读源码:

1
-  指定文件    python SvnHack.py -u http://x.x.x.x/.svn/entries  -d scripts -r  upd.js

下载整站:

1
python SvnHack.py -u http://x.x.x.x/.svn/entries  —download

六.配置不当-DS_Store 泄漏

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

使用方法:

1
python ds_store_exp.py http://www.example.com/.DS_Store

七.PHP 特性-composer.json 泄漏

很多程序都会有这个文件,判断有没有网址目录访问composer.json即可,查到这个文件就可以获得网站的一些信息

八.下载配合-WEB-INF 泄露

WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

WEB-INF 主要包含以下文件或目录:

九.资源监控-GITHUB 泄漏-语法搜索&关键字搜索&社工

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