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
Vulnerability AnalysisExploitationLearning & EducationCurated Resources
GitHubpvharmo2/gha-lab-b9842b12c0

gha-lab-b9842b12c0

# CVE-2021-21423 (GHSA-gg2g-m5wc-vccq) 재현을 위한 공인 보안 연구 랩: issue_comment를 통한 projen rebuild-bot pwn 요청

저장소 보기
320일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

자동화된 연구 산출물 — 업스트림 프로젝트가 아님.

이 저장소는 Université Laval의 석사 논문을 위해 자동화된 하네스가 구축한 일회용 실험실로, 공개된 GitHub Actions 워크플로우 취약점을 재현하기 위한 것입니다. 이는 커밋 284d9162b9903c1828aa13ab56420c1183c49d40 (2021-03-09) 시점의 projen/projen의 축어적 스냅샷이며, 해당 프로젝트의 자체 라이선스에 따라 재배포되며, 그 라이선스 파일은 이 스냅샷에 변경 없이 포함되어 있습니다.

업스트림 프로젝트는 관여하지 않으며, 결코 공격 대상이 아니고, 여기서 연구된 취약점은 이미 공개된 것입니다. 이 저장소의 모든 시크릿과 변수는 무작위로 생성된 더미 값입니다 — 실제 자격 증명은 존재하지 않습니다. 액션 참조와 러너 이미지는 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 construct 라이브러리 프로젝트.
* [cdk8s-construct](https://github.com/projen/projen/blob/master/API.md#projen-constructlibrarycdk8s) - CDK8s construct 라이브러리 프로젝트.
* [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` 명령은 `jsii` 프로젝트의 경우 다음과 같은 `.projenrc.js` 파일을 생성합니다:```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:~
Run:```shell
npx projen

그리고 package.json 파일의 jsii 설정에 python 섹션이 추가되고, GitHub release.yml 워크플로우에 PyPI 게시 단계가 포함된 것을 확인할 수 있을 것입니다.

이 내용을 셸 프로필에 추가해 두는 것을 권장합니다. 그러면 .projenrc.js를 업데이트할 때마다 간단히 pj만 실행하면 됩니다:```bash alias pj='npx projen'

root@kitploit:~
Most projects support a `start` command which displays a menu of workflow
activities:```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 완전 합성
  • compile, build, test, package 같은 표준 npm 스크립트
  • eslint
  • Jest
  • jsii: 컴파일, 패키징, API 호환성 검사, API.md
  • Conventional Commits 기반 CHANGELOG 생성을 포함한 버전 업데이트 및 릴리스 스크립트
  • 자동화된 PR 빌드
  • npm, maven, NuGet 및 PyPI로의 자동화된 릴리스
  • Mergify 구성
  • LICENSE 파일 생성
  • gitignore + npmignore 관리
  • CI 빌드 환경 및 @types/node와 연동되는 Node "engines" 지원
  • 변조 방지: 합성된 파일을 수동으로 수정하면 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 프로젝트 유형을 부트스트랩합니다. description 필드에는 "my awesome vue project" 값이 할당됩니다. .projenrc.js 파일을 살펴보면 projen-vuejs가 dev dependency로 정의되어 있는 것을 확인할 수 있습니다:```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/main/VISION.md)을 참조하세요.

## 기여

모든 종류의 기여를 환영합니다! [기여자 가이드](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/main/CONTRIBUTING.md)와 [행동 강령](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/main/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

💻