源码获取非常重要、得到源码就可以进行白盒测试、得不到源码就只能做黑盒测试
#知识点:
1、CMS 指纹识别源码获取方式
2、习惯&配置&特性等获取方式
3、托管资产平台资源搜索监控——GitHub、GitEE:公开代码平台
#详细点:
参考:https://www.secpulse.com/archives/124398.html
源码泄漏原因:
1、从源码本身的特性入口
2、从管理员不好的习惯入口
3、从管理员不好的配置入口
4、从管理员不好的意识入口
5、从管理员资源信息搜集入口
源码泄漏集合:
composer.json 源码泄露(针对PHP源码泄露)
git 源码泄露
svn 源码泄露
hg 源码泄漏
网站备份压缩文件
WEB-INF/web.xml 泄露
DS_Store 文件泄露
SWP 文件泄露
CVS 泄露
Bzr 泄露
GitHub 源码泄漏(针对所有源码泄露)
演示案例: 参考链接:https://codeleading.com/article/54926468941/
直接获取-CMS 识别-云悉指纹识别平台(不是百分百识别)
识别意义:获取源码 获取源码曾经的漏洞
识别不到、平台识别吧到就是网上没有
(yunsee.cn 在线指纹识别平台)
习惯不好-备份文件-某黑阔博客源码泄漏
备份在存放根目录的文件夹会安全
访问目录/7kbscan-WebPathBrute扫描
配置不当-GIT 泄漏-某程序员博客源码泄漏
利用工具:https://github/lijiejie/GitHack
当在一个空目录执行 git init 时,Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了
比如某个网站存在.git文件泄露,可以:
利用方式:
github上的githack可以把整个.git备份的文件下载下来。它能解析 .git/index 文件,并找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夹下下载对应的文件,通过 zlib 解压文件,按原始的目录结构写入源代码
#判断存不存在:
在目录后面加入.git
403存在、GitHack工具获取:
配置不当-SVN 泄漏-某国外小伙子源码泄漏
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。互联网上很多版本控制服务已从 CVS 迁移到 Subversion。
很多网站都使用了 svn 版本控制系统,和使用 git 版本控制器类似,很多开发者网站安全意识不足,代码放到生产坏境中后,没有清理 svn 的一些信息,导致 svn 残留,因此攻击者可以使用工具 dvcs-ripper 下载网站源码。
当可以访问目标加/.svn/entries的时候,就证明存在了。
国外网站: https://trafficbonus.com/
后面加https://trafficbonus.com/.svn/entries 能访问就是存在这个泄露
python SvnHack.py -u http://trafficbonus.com/.svn/entries --download 下载源码文件
配置不当-DS_Store 泄漏-某开发 Mac 源码泄漏
.DS_Store 文件
当访问/.ds_store可以访问的到,就证明存在。例如:
http://www.baidu.com/.ds_store
PHP 特性-composer.json 泄漏-某直接搭建源码泄漏
PHP配置文件、直接在目标后加/composer.json/访问文件分析源码名字
下载配合-WEB-INF 泄露-RoarCTF-2019-EasyJava
控制任意下载文件漏洞:
下载WEB-INF/web.xml记录源码结构文件:
知道源码的结构再下载目标的源码文件——配合下载漏洞才能实现
资源监控-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
相关利用项目:
CMS 识别:https://www.yunsee.cn/
备份:敏感目录文件扫描-7kbscan-WebPathBrute
CVS:https://github.com/kost/dvcs-ripper
GIT:https://github.com/lijiejie/GitHack
SVN:https://github.com/callmefeifei/SvnHack
DS_Store:https://github.com/lijiejie/ds_store_exp