CONTRIBUTING to VulApps
---
> 很多公司都在做类似的事情,真正开放的并没有几个。我希望的是大家来共同维护着一个开源的靶场。在你从本项目中获取某个有用的环境时,相对的,我希望你能向 VulApps 贡献一个环境。
## 向 VulApps 贡献前需要注意的几个点:
- [接受何种形式的贡献](#cc)
- [目录结构](#dir)
- [漏洞环境文件说明](#files)
- [Commit 规范](#commit)
- [贡献流程](#howto)
- [相关链接](#url)
### 接受何种形式的贡献
* 新增环境及完善资料
* Dockerfile
* 漏洞详细说明
* 漏洞 poc
* 漏洞 exp
* 原有环境 Bug 修复
### VulApps 目录结构
`/组件首字母/组件名/该组件的目录下的维一编号/`
> 一律采取小写
>
> 唯一编号推荐使用 uuid4 `$ python -c "print __import__('uuid').uuid4()"`
```
.
├── README.md
├── base 组件基础镜像
├── 组件首字母
│ ├── README.md(组件列表)
│ └── 组件名
│ ├── README.md(组件漏洞靶场列表)
│ ├── 唯一编号
│ └── 唯一编号
├── b
│ ├── README.md
│ └── bash
│ ├── README.md
│ ├── 7d116603-c066-4821-8a5f-5dc0d39d71c7
│ └── 1d7b5557-e074-4114-ace5-50c110032cb5
└── s
├── README.md
└── struts2
├── README.md
└── 3f9af03f-3800-4f4e-807f-19c05f94e9d1
```
### 漏洞环境文件说明
```
.
├── README.md 靶场说明(需要指明环境中的相关信息)
├── poc.py 检测插件
├── exp.py 漏洞利用程序
├── Dockerfile
└── src 构建所需要的配置文件(超过 10MB 的请使用外链,推荐7牛)
├── ...
└── ...
```
### Commit 规范
Commit 分为标题和主体两部分,标题要求必须要简洁明了。对标题的详细补充在主体中体现,如果标题已经充分表达出提交者的意思,主体可省略。
```
(操作 镜像类型: 影响的组件名) 插件名或组件版本号
<空行>
详细的说明
```
* 操作:
* Add 添加
* Update 更新
* Fix 修补 Bug
* Delete 删除
* 镜像类型
* Base 基础镜像
* Vul 漏洞环境
* Tools 安全工具
**下面给出了一些例子:**
* 新增 WordPress 某个插件的漏洞环境
```
(Add Vul: WordPress) double-opt-in-for-download
添加 double-opt-in-for-download.2.0.9 SQL 注入漏洞环境
该漏洞需要登录触发
```
* 新增了 WordPress 某个基础镜像
```
(Add Base: WordPress) 4.5.3
添加 WordPress 4.5.3 基础镜像
```
* 更新了 Discuz! 基础镜像的某个版本
```
(Update Base: Discuz) 7.2
* 更新了删除源码包的操作
* 在安装完毕后,自动卸载 `curl` 与 `wget`
```
* 修正了 PHPCms 基础镜像中的某个 Bug
```
(Fix Base: PHPCms) #2
修复了 #2 中提到的访问路径错误的 Bug
```
* 删除了某个漏洞镜像
```
(Delete Vul: Wordpress) double-opt-in-for-download 2.0.8
该漏洞环境与现有的 2.0.9 版本环境重复
```
### 贡献流程
* Step1. fork 本仓库到你自己的仓库
* Step2. clone 自己的仓库到本地
* Step3. 本地添加环境或修改文档,然后推至远端自己的仓库
* Step4. 发起 Pull Request
### 相关链接
* [Docker 从入门到实践](http://udn.yyuap.com/doc/docker_practice/)
* [Docker 官网](https://www.docker.com/)
* [Docker 官方文档](https://docs.docker.com/)