AIKraft/Skills/ghost-bits-cast-attack

ghost-bits-cast-attack

Атака Ghost Bits для Java-сервисов (Tomcat, Spring, Jetty и др.) позволяет обходить WAF/IDS за счёт сужения 16-битного char до 8-битного byte. Применяется для SQLi, RCE, загрузки веб-шеллов, path traversal, CRLF, request smuggling и SMTP injection.

yaklang official Другое ★ 2.4k

Что делает навык

Навык реализует технику обхода WAF/IDS за счёт сужения 16-битного Java char до 8-битного byte, позволяя передавать вредоносные байты в виде безобидных Unicode-символов. Он решает задачу активации уязвимостей (SQLi, RCE, загрузка файлов и др.) в Java-бэкендах, когда классические методы атак заблокированы сигнатурами.

Когда применять

  • Обход WAF при атаках SQLi, RCE, path traversal, CRLF, request smuggling и SMTP injection на Java-сервисах (Tomcat, Spring, Jetty).
  • Загрузка веб-шеллов через Tomcat RFC2231Utility, где filename* декодируется с потерей старших битов.
  • Выполнение кода через Apache Commons BCEL ClassLoader, маскируя байткод под CJK-символы.
  • Обход валидации в Jackson (charToHex truncation) и Fastjson (Unicode escape variants).

Как работает

  1. Определить наличие Java-бэкенда за WAF/IDS и наличие уязвимого компонента (Tomcat, Spring, Jackson и др.).
  2. Выбрать целевой опасный байт (например, '.', '/', 'j') и сгенерировать Unicode-символ, чьи младшие 8 бит равны этому байту, используя формулу c = chr((k << 8) | T).
  3. Избегать суррогатных пар (0xD800..0xDFFF) и предпочитать символы, корректно кодируемые в UTF-8 (CJK, Latin-Extended), чтобы избежать замены JVM.
  4. Подставить сгенерированные символы в полезную нагрузку вместо оригинальных ASCII-символов.
  5. Отправить запрос; WAF увидит безобидный Unicode-мусор, а бэкенд восстановит оригинальные байты после silent narrowing.
  6. При необходимости ротировать параметр k между запросами для обхода систем машинного обучения WAF.

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

Обойди WAF и загрузи веб-шелл на Tomcat, используя Ghost Bits для filename* в multipart-запросе.
Выполни RCE через Apache Commons BCEL ClassLoader, замаскировав байткод под CJK-символы.
Проведи SQLi через Jackson charToHex truncation, спрятав SQL-ключи внутри Unicode-эскейпов.

Описание составлено по SKILL.md навыка, сверено 07.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «ghost-bits-cast-attack» из репозитория: # https://github.com/yaklang/hack-skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r ghost-bits-cast-attack/ ~/.claude/skills/ghost-bits-cast-attack/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.