特殊16进制后缀截断

您在upload-lab中pass4的特殊解法让我感到惊奇
请问0xf7是如何截断文件路径读取的呢

不仅仅是0xf7,像ascii码表中其他的特殊字符也是可以的,比如0x90往后的都可以尝试一下。原理的话我理解的是:在php代码中这些字符是存在的,所以结尾不是以php结尾则绕过了黑名单检测,但存储到windows系统中,系统对这些特殊字符不能打印到文件名中,所以就去除掉了这些字符,剩下了php结尾。

举例:如下为0xa7字符。

img

php保存成功后请求的连接如下,转换成了特殊字符编码,如果没有转换成特殊字符编码说明没有以特殊字符编码进行保存,保存成可打印字符,比如可以尝试ascii码表0x7a往前的字符。

img