前言
#知识点:
- CMS指纹识别源码获取方式
- 习惯&配置&特性等获取方式
3、托管资产平台资源搜索监控
#详细点:
参考:https://www.secpulse.com/archives/124398.html
源码泄漏原因:
1、从源码本身的特性入口
2、从管理员不好的习惯入口
3、从管理员不好的配置入口
4、从管理员不好的意识入口
5、从管理员资源信息搜集入口
源码泄漏集合:
composer.json
git源码泄露
svn源码泄露
hg源码泄漏
网站备份压缩文件
WEB-INF/web.xml 泄露
DS_Store 文件泄露
SWP 文件泄露
CVS泄露
Bzr泄露
GitHub源码泄漏
案例
直接获取-CMS识别-云悉指纹识别平台
通过网上一些CMS识别平台,直接识别到目标的CMS。
习惯不好-备份文件-某黑客博客源码泄露
网站搭建者再搭建完网站后,可能会将源码进行压缩备份,假如存储到网站根目录下,则有可能会被扫描出来。如果存储到网站根目录同级目录,则需要有任意文件读取漏洞才能获取源码。
配置不当-GIT漏洞-某程序员博客源码泄露
Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
漏洞利用工具:GitHack
github项目地址:https://github.com/lijiejie/GitHack
用法示例:
GitHack.py http://www.openssl.org/.git/
修复建议:删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。(注意,这里的运行环境是python2)
这里显示403 属于文件存在。
配置不当-SVN泄露-某国外小伙子源码泄露
SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。
漏洞利用工具:Seay SVN漏洞利用工具
修复建议:删除web目录中所有.svn隐藏文件夹,开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。
python2 SvnHack.py -u http://trafficbonus.com/.svn/entries --download
配置不当-DS_Store泄露-某开发Mac源码泄露
.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
漏洞利用工具:
github项目地址:https://github.com/lijiejie/ds_store_exp
用法示例:
ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store
PHP特性-composer.json泄露-某直接搭建源码泄露
我们在做项目的时候,总是要安装一些依赖。composer给我们提供了很多方便。直接运行composer install。
当我们运行composer install 将会读取composer.lock文件,进行更新依赖。如果composer.lock不存在或者里面没内容,会执行composer.json,会将最新版本的文件下载到vendor目录里,然后再去更新composer.lock文件。简单点来讲就是版本管理器。
这样会造成CMS泄露源码泄露
下载配合-WEB-INF泄露-RoarCTF-2019-EasyJava
资源监控-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