https://github.com/og-mason/javascript-memory-exploitation
Exploit :)
https://github.com/og-mason/javascript-memory-exploitation
arm64 blue-team ethical-hacking exploit explorer forensics hacking-tool incident-response infosec javascript m1-mac oob open-source open-source-security poc privacy-tools python3 red-team shellcode threat-detection
Last synced: 5 months ago
JSON representation
Exploit :)
- Host: GitHub
- URL: https://github.com/og-mason/javascript-memory-exploitation
- Owner: og-mason
- Created: 2025-07-18T00:33:17.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-07-21T09:48:14.000Z (6 months ago)
- Last Synced: 2025-08-10T18:09:11.376Z (5 months ago)
- Topics: arm64, blue-team, ethical-hacking, exploit, explorer, forensics, hacking-tool, incident-response, infosec, javascript, m1-mac, oob, open-source, open-source-security, poc, privacy-tools, python3, red-team, shellcode, threat-detection
- Language: HTML
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# JavaScript Memory Exploitation PoC (Apple M1 ARM64)
Данный проект содержит серию демонстрационных JavaScript PoC-эксплойтов, иллюстрирующих потенциальные техники out-of-bounds (OOB) доступа к памяти, перезаписи и исполнения shellcode, ориентированных на ARM64 (Apple Silicon M1).
Проект ориентирован на исследовательские цели и предназначен исключительно для изучения поведения JavaScript-движка WebKit (JSC).
## Структура проекта
```bash
├── index.html # Основной PoC-эксплойт с JIT Spray и ARM64 shellcode
├── nindex.html # Упрощённая версия эксплойта
├── test.html # Тестовый сценарий с OOB чтением и записью
├── poc/
│ ├── PoC1.js # Минимальный OOB-пример с попыткой переписать память
│ └── poc.js # Расширенный OOB-пример с большим числом записей
└── create_wasm.js # Генератор бинарного файла exploit.wasm
```
## Основной эксплойт (index.html)
Этот [HTML-файл](https://github.com/inorisojiu/JavaScript-Memory-Exploitation/blob/main/index.html) запускает следующий пайплайн:
- Выделяет буферы `ArrayBuffer` и создаёт `Float64Array`/`Uint8Array`.
- Использует уязвимую функцию `vuln(index, value)` для OOB-записи.
- Делает JIT-спрей функций с вшитым ARM64 shellcode.
- Перезаписывает участки памяти и проверяет исполнение shellcode.
## Shellcode (ARM64)
Встроенный в JIT shellcode может быть адаптирован под вызов execve, либо использован как индикатор исполнения.
## Дополнительные PoC-файлы
### [test.html](https://github.com/inorisojiu/JavaScript-Memory-Exploitation/blob/main/test.html)
Простой тест переполнения массива с попыткой изменить данные в `Float64Array` и проверить успешность записи.
### [nindex.html](https://github.com/inorisojiu/JavaScript-Memory-Exploitation/blob/main/nindex.html)
Упрощённый вариант основного эксплойта без JIT, но с демонстрацией записи в память и попыткой RCE через вызов функции.
## Папка poc/
Содержит два PoC-файла:
### [PoC1.js](https://github.com/inorisojiu/JavaScript-Memory-Exploitation/blob/main/POC/PoC1.js)
Минимальный пример:
- Создание массива oob и буфера.
- Использование `vuln()` для записи за пределами массива.
- Попытка модификации памяти и проверка успешности.
### [poc.js](https://github.com/inorisojiu/JavaScript-Memory-Exploitation/blob/main/POC/poc.js)
Расширенный пример:
- Массив oob заполняется значениями с `index >= 4`.
- Выполняется обход всех новых значений и попытка модификации `Float64Array`.
## WebAssembly
### [create_wasm.js](https://github.com/inorisojiu/JavaScript-Memory-Exploitation/blob/main/create_wasm.js)
Скрипт, создающий минимальный WASM-бинарник `exploit.wasm`, содержащий одну экспортируемую функцию run, которая вызывает `alert`.
```bash
# Генерация .wasm
node create_wasm.js
```
## Требования
- WebKit/JavaScriptCore движок
- Node.js (для генерации .wasm)
## Контакт
Исследователь: inorisojiu
Для вопросов, багов и предложений - создавайте issue или pull request.