Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gha-lab-b9842b12c0 — 授权安全研究实验室复现 CVE-2021-21423(GHSA-gg2g-m5wc-vccq):通过 issue_comment 对 projen rebuild-bot 的 pwn 请求 | Kitploit
工具/GitHubGitHub/pvharmo2/gha-lab-b9842b12c0
漏洞分析漏洞利用学习与教育精选资源
GitHubpvharmo2/gha-lab-b9842b12c0

gha-lab-b9842b12c0

授权安全研究实验室复现 CVE-2021-21423(GHSA-gg2g-m5wc-vccq):通过 issue_comment 对 projen rebuild-bot 的 pwn 请求

查看仓库
118小时35分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

自动化研究产物 — 非上游项目。

本仓库是由自动化工具链构建的一次性实验环境,用于拉瓦尔大学(Université Laval)硕士论文中复现已公开的 GitHub Actions 工作流漏洞。它是 projen/projen 在提交 284d9162b9903c1828aa13ab56420c1183c49d40(2021-03-09)时的逐字快照,依据该项目自身的许可证重新分发,该许可证文件已原样包含在本快照中。

上游项目未参与其中,也从未成为攻击目标,此处研究的漏洞已公开。本仓库中的每个密钥和变量均为随机生成的虚拟值——不包含任何真实凭据。操作引用和运行器镜像均固定为 2021-03-09 时解析到的版本;有关对快照所做的每项更改,请参阅工具链输出中的 pinning.md。

如有疑问或异议:[email protected]


License

All Contributors

Gitpod ready-to-code Build Release

projen

projen logo

通过代码定义和维护复杂的项目配置。

加入 #TemplatesAreEvil 运动!

projen 可根据用 JavaScript 编写的强类型定义,合成项目配置文件,如 package.json、tsconfig.json、.gitignore、GitHub Workflows、eslint、jest 等。

请观看这个演讲了解 projen。

与现有的模板/脚手架工具不同,projen 不是一次性的生成器。合成后的文件绝不应手动编辑(事实上,projen 会强制这一点)。要修改项目设置,用户可与丰富的强类型类交互,并执行 projen 来更新项目配置文件。

快速开始

要创建新项目,请运行以下命令并按照说明操作:```console $ mkdir my-project $ cd my-project $ git init $ npx projen new PROJECT-TYPE 🤖 Synthesizing project... ...

root@kitploit:~
目前支持的项目类型(使用 `npx projen new` 且不带类型参数可查看列表):

<!-- <macro exec="node ./scripts/readme-projects.js"> -->
* [awscdk-app-ts](https://github.com/projen/projen/blob/master/API.md#projen-awscdktypescriptapp) - 使用 TypeScript 编写的 AWS CDK 应用。
* [awscdk-construct](https://github.com/projen/projen/blob/master/API.md#projen-awscdkconstructlibrary) - AWS CDK 构造库项目。
* [cdk8s-construct](https://github.com/projen/projen/blob/master/API.md#projen-constructlibrarycdk8s) - CDK8s 构造库项目。
* [java](https://github.com/projen/projen/blob/master/API.md#projen-java.javaproject) - Java 项目。
* [jsii](https://github.com/projen/projen/blob/master/API.md#projen-jsiiproject) - 多语言 jsii 库项目。
* [nextjs](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjsproject) - 不使用 TypeScript 的 Next.js 项目。
* [nextjs-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjstypescriptproject) - 使用 TypeScript 的 Next.js 项目。
* [node](https://github.com/projen/projen/blob/master/API.md#projen-nodeproject) - Node.js 项目。
* [project](https://github.com/projen/projen/blob/master/API.md#projen-project) - 基础项目。
* [python](https://github.com/projen/projen/blob/master/API.md#projen-python.pythonproject) - Python 项目。
* [react](https://github.com/projen/projen/blob/master/API.md#projen-web.reactproject) - 不使用 TypeScript 的 React 项目。
* [react-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.reacttypescriptproject) - 使用 TypeScript 的 React 项目。
* [typescript](https://github.com/projen/projen/blob/master/API.md#projen-typescriptproject) - TypeScript 项目。
* [typescript-app](https://github.com/projen/projen/blob/master/API.md#projen-typescriptappproject) - TypeScript 应用。
<!-- </macro> -->

> 使用 `npx projen new PROJECT-TYPE --help` 可查看命令行开关列表,这些开关允许你在引导初始化期间指定大多数项目选项。
> 例如:`npx projen new jsii --author-name "Jerry Berry"`。

`new` 命令会创建一个 `.projenrc.js` 文件,对于 `jsii` 项目,该文件内容如下:```js
const { JsiiProject } = require('projen');

const project = new JsiiProject({
  authorAddress: "[email protected]",
  authorName: "Elad Ben-Israel",
  name: "foobar",
  repository: "https://github.com/eladn/foobar.git",
});

project.synth();

此程序以最小化配置实例化项目类型,然后调用 synth() 来合成项目文件。默认情况下,new 命令也会 执行此程序,从而生成一个功能完整的项目。

项目创建完成后,您可以通过编辑 .projenrc.js 并重新运行 npx projen 来再次合成,从而配置您的项目。

projen 生成的文件被视为“实现细节”, projen 会保护它们不被手动编辑(大多数文件被标记为 只读,并且在 CI 构建工作流中配置了“防篡改”检查, 以确保文件在构建期间不会被更新)。

例如,要在 jsii 项目中设置 PyPI 发布,您可以使用 python option:```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } });

root@kitploit:~
运行:

```bash
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade git+https://github.com/hak5/bashbunny-payloads.git
python3 -m pip install --upgrade git+https://github.com/hak5/usbrubberducky-payloads.git
``````shell
npx projen

你会注意到,你的 package.json 文件现在在其 jsii 配置中包含了一个 python 部分,并且 GitHub 的 release.yml 工作流包含了一个 PyPI 发布步骤。

我们建议将此内容放入你的 shell 配置文件中,这样每次更新 .projenrc.js 时,只需运行 pj 即可:```bash alias pj='npx projen'

root@kitploit:~
大多数项目支持一个 `start` 命令,该命令会显示一个工作流活动菜单:```shell
$ yarn start
? Scripts: (Use arrow keys)

  BUILD
❯ compile          Only compile
  watch            Watch & compile in the background
  build            Full release build (test+compile)

  TEST
  test             Run tests
  test:watch       Run jest in watch mode
  eslint           Runs eslint against the codebase

  ...

build 命令与 CI 构建中执行的命令相同。它通常编译、检查、测试并打包你的模块以供分发。

功能特性

以下是一些内置到项目类型中的功能示例:

  • 完全合成 package.json
  • 标准 npm 脚本,如 compile、build、test、package
  • eslint
  • Jest
  • jsii:编译、打包、API 兼容性检查、API.md
  • 基于 Conventional Commits 生成 CHANGELOG 的版本提升与发布脚本
  • 自动化 PR 构建
  • 自动发布到 npm、maven、NuGet 和 PyPI
  • Mergify 配置
  • LICENSE 文件生成
  • gitignore + npmignore 管理
  • Node "engines" 支持,并与 CI 构建环境和 @types/node 耦合
  • 防篡改:如果手动修改了合成的文件,CI 构建将失败

API 参考

有关 API 详情,请参阅 API 参考。

此外,多个 projen 组件和项目类型在 /docs 中附有示例说明(目前仍在完善中!)。

生态系统

projen 采用"开箱即用"的方法,旨在提供数十种不同的项目类型(我们才刚刚起步)。想想 projen new react、projen new angular、projen new java-maven、projen new awscdk-typescript、projen new cdk8s-python(projen 中的任何内容都不与 javascript 或 npm 绑定)……

添加新的项目类型只需向此仓库提交拉取请求,并导出一个继承自 projen.Project(或其派生类)的类即可。Projen 会自动发现项目类型,因此你的类型将立即可用于 projen new。

外部模块中的项目

projen 内置了许多项目类型,但它也可以与外部 jsii 模块中定义的项目类型和组件配合使用(我们需要 jsii 的原因是 projen 使用 jsii 元数据在 projen new 中发现项目类型和选项)。

假设我们在 npm 中有一个名为 projen-vuejs 的模块,其中包含一个用于 vue.js 的单一项目类型:```bash $ npx projen new --from projen-vuejs

root@kitploit:~
如果引用的模块包含多个项目类型,则必须指定类型。
开关也可用于根据项目类型 API 指定初始值。您还可以使用 [yarn add](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) 支持的任何包语法,例如 `[email protected]`、`file:/path/to/local/folder`、`[email protected]/awesome/projen-vuejs#1.2.3` 等。```bash
$ npx projen new --from projen-vuejs@^2 vuejs-ts --description "my awesome vue project"

在底层,projen new 会从 npm 安装 projen-vuejs 模块(版本 2.0.0 及以上),发现其中的项目类型,并引导 vuejs-ts 项目类型。它会将值 "my awesome vue project" 赋给 description 字段。如果你检查 .projenrc.js 文件,你会看到 projen-vuejs 被定义为开发依赖:```javascript const { VueJsProject } = require('projen-vuejs');

const project = new VueJsProject({ name: 'my-vuejs-sample', description: "my awesome vue project", // ... devDeps: [ 'projen-vuejs' ] });

project.synth();

root@kitploit:~
## 路线图

参见[愿景](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/HEAD/VISION.md)。

## 贡献

欢迎各类贡献!请查阅我们的[贡献者指南](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/HEAD/CONTRIBUTING.md)和[行为准则](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/HEAD/CODE_OF_CONDUCT.md)。

如需快速上手,请查看开发环境:```bash
$ git clone [email protected]:projen/projen
$ cd projen
$ yarn
$ yarn watch # compile in the background

感谢这些杰出的人们(表情符号说明):


Elad Ben-Israel

💻

Christopher Rybicki

💻

Philip M. Gollucci

💻

Thorsten Hoeger

💻

Kenneth Winner

💻

许可证

根据 Apache-2.0 许可证分发。

下载工具

Jordan Sinko

💻

Josh Kellendonk

💻

andrestone

💻

Cristian Pallarés

💻

Jonathan Goldwasser

💻

Matthew Bonig

💻

Pahud Hsieh

💻

Adam Elmore

💻

Ash

💻

Jacob

💻

Kraig Amador

💻

Martin Muller

💻

Tomasz Łakomy

💻

john-tipper

💻

Henry Sachs

💻

Joseph Egan

💻

Sebastian Korfmann

💻

Bart Callant

💻

Campion Fellin

💻

Grady Barrett

💻

Hassan Mahmud

💻

Hassan Mahmud

💻

Jake Pearson

💻

Jeremy Jonas

💻

Matt Martz

💻

Max Körlinge

💻

Neil Kuan

💻

Rafal Wilinski

💻

Romain Marcadier

💻

Thomas Klinger

💻

Tobias

💻

flyingImer

💻