- 1、第一种就是直接上传php和shell文件(不被允许的),尝试是否能成功
- 2、第二种使用burp截取上传图片的请求将文件修改为php等文件前端绕过
- 3、第二种可能还要配合修改Content-Type:image/png;image/jpeg等
- 4、第四种是修改上传路径(可能对那一层路径做了限制),我们修改文件路径为"../exploit.php"
- 5、第五种如果是apache服务器,可以修改配置文件.htaccess
修改名称
.htaccess
# 修改 Content-Type
text/plain
# 修改内容
AddType application/x-httpd-php .shell
然后就上传shell文件,这个配置的意思是所有的shell文件都会被当做php文件执行
- 第六中通过%00 截断,文件名用 Burp 改 "code.php%00.png"
在 url 中 %00 表示 ascll 码中的 0 ,而 ascii 中 0 作为特殊字符保留,表示字符串结束,所以当 url 中出现 %00 时就会认为读取已结束。
当一个字符串中存在空字符的时候,在被解析的时候会导致空字符后面的字符被丢弃