62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
# CTF Workspace
|
|
|
|
Рабочая папка для решения задач с winpwn. Библиотека — в `../go_pwner/`, не трогай.
|
|
|
|
## Структура
|
|
|
|
```
|
|
workspace/
|
|
├── go.mod ← replace winpwn => ../go_pwner (не трогай)
|
|
├── template/ ← шаблон нового solve-скрипта
|
|
│ └── main.go
|
|
│
|
|
├── bof_basic/ ← стек overflow, базовый
|
|
├── task1_leak/ ← info leak → redirect (нет ASLR)
|
|
├── task2_rop/ ← BOF + ROP chain + DEP
|
|
├── task3_fmtstr/ ← format string (нет скомпилированного бинаря)
|
|
│
|
|
├── heap_lfh/ ← UAF + LFH grooming
|
|
├── heap_typemix/ ← UAF type confusion, без LFH
|
|
├── heap_overflow/ ← adjacent chunk overflow, NT Heap backend
|
|
├── heap_segment/ ← adjacent chunk overflow, Segment Heap
|
|
├── heap_info_leak/ ← OOB read + ASLR bypass + UAF
|
|
│
|
|
└── demos/ ← демо API winpwn, не задачи
|
|
├── pe_multitool/ ← checksec, IAT/EAT, ROP-сканер
|
|
├── shellcraft_winexec/ ← генерация PIC x64 shellcode
|
|
└── leak_msvcrt/ ← поиск system() + cmd.exe в msvcrt.dll
|
|
```
|
|
|
|
Каждая задача:
|
|
```
|
|
task1_leak/
|
|
├── main.go ← solve-скрипт, запускать отсюда: go run .
|
|
├── task1.exe ← бинарь-цель
|
|
├── flag.txt ← флаг (открывается целевым процессом)
|
|
└── src/
|
|
└── task1.c ← исходник задачи
|
|
```
|
|
|
|
## Запуск
|
|
|
|
```
|
|
cd C:\tools\workspace\task1_leak
|
|
go run .
|
|
```
|
|
|
|
## Новая задача
|
|
|
|
```
|
|
cd C:\tools\workspace
|
|
mkdir mynew
|
|
cd mynew
|
|
# скопируй бинарь: copy C:\path\to\chal.exe .
|
|
# скопируй шаблон: copy ..\template\main.go .
|
|
go run .
|
|
```
|
|
|
|
## Документация
|
|
|
|
- `C:\tools\go_pwner\USAGE_RU.md` — краткий справочник по-русски
|
|
- `C:\tools\go_pwner\USAGE.md` — полный гайд на английском
|