文件上传绕过(一)
前端认证
判断:使用burpsuite进行抓包,点击上传按钮之后,工具内没有显示抓包信息,反而网页弹出提示框,提示上传的文件类型不符合,则证明使用前端JS验证。
绕过方法:
1.禁用js代码,可以利用浏览器插件或者控制台命令实现。
2.控制台修改限制上传的js代码。
3.改后缀名上传后用burpsuite抓包改回来。
MIME验证
MIME(multipurpose Internet mail extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
burpsuite抓包后Content-Type项的内容便是MIME类型。
MIME参考手册
绕过方法:
burpsuite抓包后修改MIME类型即可。
文件头部检验
不同类型文件用文本编辑器打开后文件头不同。
各类文件的文件头标志
服务器利用文件头检测上传文件类型。
绕过方法:
1.如果支持上传gif格式文件,直接在shell的文件头上加上GIF89a 。
2.copy /b +
命令可以将两个文件合成一个。
3.直接将能上传的格式的文件用文本剪辑器打开在后面加上php代码。
注意:如果可以,要把上传的文件的后缀改为php。如果不能的话,需要配合别的方法让这个文件按php来解析。