Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
gha-lab-b9842b12c0 — Авторизованная исследовательская лаборатория безопасности, воспроизводящая CVE-2021-21423 (GHSA-gg2g-m5wc-vccq): pwn-запрос rebuild-bot в projen через issue_comment | Kitploit
Инструменты/GitHubGitHub/pvharmo2/gha-lab-b9842b12c0
Анализ уязвимостейЭксплуатацияОбучение и ОбразованиеПодобранные Ресурсы
GitHubpvharmo2/gha-lab-b9842b12c0

gha-lab-b9842b12c0

Авторизованная исследовательская лаборатория безопасности, воспроизводящая CVE-2021-21423 (GHSA-gg2g-m5wc-vccq): pwn-запрос rebuild-bot в projen через issue_comment

Репозиторий
118 ч 27 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Автоматизированный исследовательский артефакт — не вышестоящий проект.

Этот репозиторий — одноразовая лаборатория, созданная автоматизированной системой для магистерской диссертации в 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 синтезирует файлы конфигурации проекта, такие как package.json, tsconfig.json, .gitignore, рабочие процессы GitHub, eslint, jest и т. д., из хорошо типизированного определения, написанного на JavaScript.

Посмотрите этот доклад о projen.

В отличие от существующих инструментов шаблонизации/скаффолдинга, projen — это не разовый генератор. Синтезированные файлы никогда не следует редактировать вручную (на самом деле projen это обеспечивает). Чтобы изменить настройку проекта, пользователи взаимодействуют с богатыми строго типизированными классами и выполняют projen для обновления файлов конфигурации проекта.

Начало работы

Чтобы создать новый проект, выполните следующую команду и следуйте инструкциям:```console $ mkdir my-project $ cd my-project $ git init $ npx projen new PROJECT-TYPE 🤖 Synthesizing project... ...

root@kitploit:~
Currently supported project types (use `npx projen new` without a type for a
list):

<!-- <macro exec="node ./scripts/readme-projects.js"> -->
* [awscdk-app-ts](https://github.com/projen/projen/blob/master/API.md#projen-awscdktypescriptapp) - AWS CDK app in TypeScript.
* [awscdk-construct](https://github.com/projen/projen/blob/master/API.md#projen-awscdkconstructlibrary) - AWS CDK construct library project.
* [cdk8s-construct](https://github.com/projen/projen/blob/master/API.md#projen-constructlibrarycdk8s) - CDK8s construct library project.
* [java](https://github.com/projen/projen/blob/master/API.md#projen-java.javaproject) - Java project.
* [jsii](https://github.com/projen/projen/blob/master/API.md#projen-jsiiproject) - Multi-language jsii library project.
* [nextjs](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjsproject) - Next.js project without TypeScript.
* [nextjs-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjstypescriptproject) - Next.js project with TypeScript.
* [node](https://github.com/projen/projen/blob/master/API.md#projen-nodeproject) - Node.js project.
* [project](https://github.com/projen/projen/blob/master/API.md#projen-project) - Base project.
* [python](https://github.com/projen/projen/blob/master/API.md#projen-python.pythonproject) - Python project.
* [react](https://github.com/projen/projen/blob/master/API.md#projen-web.reactproject) - React project without TypeScript.
* [react-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.reacttypescriptproject) - React project with TypeScript.
* [typescript](https://github.com/projen/projen/blob/master/API.md#projen-typescriptproject) - TypeScript project.
* [typescript-app](https://github.com/projen/projen/blob/master/API.md#projen-typescriptappproject) - TypeScript app.
<!-- </macro> -->

> Use `npx projen new PROJECT-TYPE --help` to view a list of command line
> switches that allows you to specify most project options during bootstrapping.
> For example: `npx projen new jsii --author-name "Jerry Berry"`.

The `new` command will create a `.projenrc.js` file which looks like this for
`jsii` projects:```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-сборке настроена проверка «анти-взлома» для обеспечения того, чтобы файлы не обновлялись во время сборки).

Например, чтобы настроить публикацию в PyPI для проектов jsii, вы можете использовать python option:```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } });

root@kitploit:~
Запуск:```shell
npx projen

И вы заметите, что ваш файл package.json теперь содержит раздел python в его конфигурации jsii, а рабочий процесс GitHub release.yml включает шаг публикации в PyPI.

Мы рекомендуем добавить это в ваш профиль оболочки, чтобы вы могли просто запускать pj каждый раз, когда обновляете .projenrc.js:```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
  • Скрипты бампа и релизов с генерацией CHANGELOG на основе Conventional Commits
  • Автоматические PR-сборки
  • Автоматические релизы в npm, maven, NuGet и PyPI
  • Конфигурация Mergify
  • Генерация файла LICENSE
  • Управление gitignore + npmignore
  • Поддержка "engines" Node с привязкой к среде CI-сборки и @types/node
  • Защита от подделки: CI-сборки завершатся ошибкой, если синтезированный файл был изменён вручную

Справочник по API

Подробности об API см. в Справочнике по API.

Кроме того, несколько компонентов projen и типов проектов объясняются с примерами в /docs (сейчас в процессе разработки!).

Экосистема

projen использует подход "batteries included" и стремится предлагать десятки различных типов проектов из коробки (мы только начинаем). Представьте projen new react, projen new angular, projen new java-maven, projen new awscdk-typescript, projen new cdk8s-python (ничто в projen не привязано к javascript или npm!)...

Добавление новых типов проектов так же просто, как отправка pull request в этот репозиторий и экспорт класса, который расширяет 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 установит модуль projen-vuejs из npm (версии 2.0.0 и выше), обнаружит типы проектов в нём и инициализирует тип проекта vuejs-ts. Он присвоит значение "my awesome vue project" полю description. Если вы посмотрите на свой файл .projenrc.js, вы увидите, что projen-vuejs определён как dev-зависимость:```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:~
## Roadmap

См. [Vision](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

💻