3.源码获取
3.1开源
3.2闭源
3.2.1泄露方案
3.2.2码云资源搜索
3.3黑产行业
4.JS前端架构
4.1前后端语言差异
4.2JS识别
4.3JS安全
4.4获取JS路径&&敏感信息
WEB应用
1.架构
1.1分类
1.程序语言比如 : JS 、 Java 、 Python 、 PHP 、 GO、C等
2.框架源码 : 分为开源和闭源
3.搭建平台 : 分为WEB服务器如 : Apache、Nginx、IIS 和 应用服务器如 : Tomcat、Jboss、weblogic等
4.数据库 : 分为关系型数据库如 : MYSQL等等 和非关系型数据库如 redis等等 , 在开发中的应用场景不同
5.操作系统 : Linux、Unix、Windows等等 , 操作系统也是软件
1.2指纹识别平台
指纹识别 | 在线cms指纹识别 | http://whatweb.bugscaner.com/look/ |
Wappalyzer | https://github.com/AliasIO/wappalyzer | |
TideFinger潮汐 | http://finger.tidesec.net/ | |
工具强大的子域名收集器 | https://github.com/shmilylty/OneForAll | |
云悉指纹 | https://www.yunsee.cn/ | |
WhatWeb | https://github.com/urbanadventurer/WhatWeb | |
数字观星Finger-P | https://fp.shuziguanxing.com/#/ | |
内网 | cmsseek cmsmap |
2.域名
2.1单域名
1、备案信息
2、企业产权
3、注册域名
4、反查解析
2.2子域名
1、DNS数据
2、证书查询
3、网络空间
4、威胁情报
5、枚举解析
2.3平台
3.源码获取
3.1开源
1.利用CMS指纹识别
2.官方或者开源平台下载
3.2闭源
3.2.1泄露方案
git源码泄露
Git是一个开源的分布式版本控制系统,在执行git init
初始化目录的时候,会在当前目录下自动创建一个.git
目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git
这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
漏洞利用工具:GitHack
github项目地址:https://github.com/lijiejie/GitHack
工具用法示例:GitHack.py http://www.openssl.org/.git/
修复建议:删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。
SVN 源码泄露
SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。
漏洞利用工具:Seay SVN漏洞利用工具
修复建议:删除web目录中所有.svn隐藏文件夹,开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。
hg源码泄漏
Mercurial 是一种轻量级分布式版本控制系统,使用 hg init
的时候会生成.hg。
漏洞利用工具:dvcs-ripper
github项目地址:https://github.com/kost/dvcs-ripper
用法示例:rip-hg.pl -v -u http://www.example.com/.hg/
CVS泄露
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。
- http://url/CVS/Root 返回根信息
- http://url/CVS/Entries 返回所有文件的结构
漏洞利用工具:dvcs-ripper
github项目地址:https://github.com/kost/dvcs-ripper.git
运行示例 : rip-cvs.pl -v -u http://www.example.com/CVS/
Bazaar/bzr泄露
bzr也是个版本控制工具, 虽然不是很热门, 但它也是多平台支持, 并且有不错的图形界面。
运行示例:rip-bzr.pl -v -u http://www.example.com/.bzr/
网站备份压缩文件
管理员将网站源代码备份在Web目录下,攻击者通过猜解文件路径,下载备份文件,导致源代码泄露。
常见的备份文件后缀:
-
.rar
-
.zip
-
.7z
-
.tar.gz
-
.bak
-
.txt
-
.old
-
.temp
漏洞利用工具:御剑
WEB-INF/web.xml 泄露
WEB-INF
是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF
主要包含一下文件或目录:
- WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
- WEB-INF/database.properties : 数据库配置文件
- WEB-INF/classes/ : 一般用来存放Java类文件(.class)
- WEB-INF/lib/ : 用来存放打包好的库(.jar)
- WEB-INF/src/ : 用来放源代码(.asp和.php等)
通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,再通过反编译 class 文件,得到网站源码。
DS_Store 文件泄露
.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
漏洞利用工具:ds_store_exp
github项目地址:https://github.com/lijiejie/ds_store_exp
用法示例:ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store
SWP 文件泄露
swp即swap文件,在编辑文件时产生的临时文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp。
漏洞利用:直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件。
GitHub源码泄漏
GitHub是一个面向开源及私有软件项目的托管平台,很多人喜欢把自己的代码上传到平台托管。攻击者通过关键词进行搜索,可以找到关于目标站点的敏感信息,甚至可以下载网站源码。
3.2.2码云资源搜索
1.平台
gitee
github
oschina
2.信息搜索
QQ号
邮箱地址
作者名
注释关键信息
3.特征关键文件
JS文件名
脚本文件名
3.3黑产行业
比如互站网或者其它的通过搜索引擎查找的各类站点(涉及违法犯罪 , 这里不展示资源链接)
4.JS前端架构
4.1前后端语言差异
前端语言如 : JS 和 JS的主流框架 ( Vue、React、Angular) , 我们是可以在浏览器上查看到它们的源代码 , 前端的工作主要就是做页面的展示和炫酷特效
后端语言如 : Java、PHP、Python、C/C++ 、Go等语言 , 我们不能直接通过浏览器获取到源代码 , 需要通过对方的一些信息泄露或漏洞获取 , 后端的工作主要是做数据传输、处理 , 优化性能 , 帮助前端实现数据交互的功能
4.2JS识别
- 使用WEB第三方插件wappalyzer
- 引入多个JS文件
- 一般有/static/js/app.js等顺序的JS文件
- 一般cookie中有connect.sid
4.3JS安全问题
源码泄露
未授权访问 = JS代码里边分析 , 得到更多的URL访问确定接口路径
敏感key泄露 = JS文件中可能配置了接口信息 (云应用、短信、邮件、数据库等)
API接口安全 = (代码中加密提交参数传递 , 更多的URL路径)
4.4获取JS路径和敏感信息
4.4.1手工-浏览器搜索
src=
path=
method:“get”
http.get("
method:“post”
http.post("
$.ajax
http://service.httppost
http://service.httpget
4.4.2半自动Burp分析
自带功能:Target->sitemap->Engagement tools->Find scripts
官方插件:JS Link Finder & JS Miner
第三方插件:HaE & Unexpected_information
插件加载器:jython-standalone-2.7.2
Unexpected_information:https://github.com/ScriptKid-Beta/Unexpected_information
用来标记请求包中的一些敏感信息、JS接口和一些特殊字段,
防止我们疏忽了一些数据包,使用它可能会有意外的收获信息。
HaE:
https://github.com/gh0stkey/HaE
https://raw.githubusercontent.com/gh0stkey/HaE/gh-pages/Config.yml
基于BurpSuite插件JavaAPI开发的请求高亮标记与信息提取的辅助型插件。该插件可以通过自定义正则的方式匹配响应报文或请求报文,可以自行决定符合该自定义正则匹配的相应请求是否需要高亮标记、信息提取。
4.4.3自动化项目分析
Jsfinder-从表现中JS中提取URL或者敏感数据
https://github.com/Threezh1/JSFinder
一款用作快速在网站的js文件中提取URL,子域名的工具
URLFinder-从表现中JS中提取URL或者敏感数据
https://github.com/pingc0y/URLFinder
一款用于快速提取检测页面中JS与URL的工具。
功能类似于JSFinder,但JSFinder好久没更新了。
JSINFO-SCAN-从表现中JS中提取URL或者敏感数据
https://github.com/p1g3/JSINFO-SCAN
递归爬取域名(netloc/domain),以及递归从JS中获取信息的工具
FindSomething-从表现中JS中提取URL或者敏感数据
https://github.com/momosecurity/FindSomething
该工具是用于快速在网页的html源码或js代码中提取一些有趣的信息的浏览器插件,
包括请求的资源、接口的url,请求的ip和域名,泄漏的证件号、手机号、邮箱等信息。
ffuf-FUZZ爆破找到更多的js文件分析更多的信息
https://github.com/ffuf/ffuf
https://wordlists.assetnote.io
功能强大的模糊化工具,用它来FUZZ模糊化js文件。
Packer-Fuzzer-针对JS框架开发打包器Webpack检测
https://github.com/rtcatc/Packer-Fuzzer
一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具