命令注入
0x01 low
没有过滤,直接利用 127.0.0.1 && ip a
 函数
 php_uname(mode) 动态地检查服务器的操作系统
 ‘s’:操作系统名称
 ‘n’:网络主机名
 ‘r’:操作系统发行版本号
 ‘v’:操作系统版本
 ‘m’:机器类型
若操作系统名称为windows, php_uname将显示Windows NT
stristr(string $haystack, string $needle)
 从串haystack中找子串needle,返回子串或false
命令执行中&, | && || ;都可以拼接命令,即一次执行多条命令
 使用127.0.0.1&&ip a看到本机的Ip(ip a 在linux中,windows中为ipconfig,操作系统不同,执行的命令不同)
程序提供了rce条件,利用的方式有很多,如创建特权用户,查看敏感文件等等
 
0x02 medium
&& 和;被ban,考虑其他拼接符
 & | || 可用
 如127.0.0.1 & ip a
0x03 high
& ; | - $ ( ) ` || 被ban
 代码有个小纰漏,'| '为或号接空格被过滤
 127.0.0.1 |ip a可绕过
0x04 impossible
对输入的字符串重新操作,白名单验证
 stripslashes( $target )删除字符串中的反斜杠
 explode( “.”, $target )将字符串以.为分界分割为数组
 接收数组中的数字重组为点分十进制ip格式,
0x05 小妙招
命令行中&相当于||,即前面语句出错执行后面语句