escapeshellarg+escapeshellcmd绕过.md

参考 https://paper.seebug.org/164/

escapeshellarg会将所有'替换成'\'',最后在整个字符串两边再套上单引号,以保证该字符串作为shell命令的一个而非多个参数被shell解析

escapeshellcmd会将反斜杠转义,同时也转义最后一个不配对的引号

连用这两个的后果便是escaepeshellarg生成的反斜杠被escapeshellcmd转义,于是多了一个作为shell语法结构的',反转了我们payload的引号内外关系,使得payload被作为多个参数解析

#Web #PHP #function #bypass #shell