文件上传是Web应用中的常见功能,常用于分享图片、更换头像或提交附件等操作。该功能本身属于正常业务需求,但若服务器在处理上传文件时缺乏有效管控,则可能引发安全问题。当攻击者上传可执行的脚本文件,并能通过该文件获取服务器端命令执行权限时,便形成了文件上传漏洞。此类漏洞一旦被利用,可能导致数据泄露、网站被篡改甚至服务器被完全控制,因此必须对上传文件的类型、内容和存储方式进行严格校验与防护,避免造成严重后果。
1、 安装phpstudy后,将upload-labs放入其网站根目录,通过浏览器访问对应地址即可查看运行效果。
2、 尝试上传phpinfo.php文件,更改为php3、phtml等扩展名时,系统均提示该类文件禁止上传。
3、 上传.htaccess文件成功后,需预先创建1.htaccess文件,其中添加SetHandler指令,使服务器将所有文件类型均作为PHP文件进行解析,从而实现特定的解析控制效果。
4、 启动Burp Suite后,默认监听地址为127.0.0.1:8080,在intercept标签页中启用拦截功能,确保状态显示为intercept is on,即可开始捕获和修改HTTP/HTTPS流量。
5、 在Chrome浏览器中,通过SwitchyOmega插件可快速配置代理为127.0.0.1:8080,操作简便,便于切换和管理网络代理设置。
6、 上传名为1.htaccess的文件,利用Burp Suite将请求中的filename参数修改为.filename=.htaccess,以绕过服务器对文件名的检测机制,实现非法文件上传。
7、 上传一张包含PHP代码的JPG图片,系统提示上传成功。
8、 右键点击已上传的图片,复制其地址,随后在新标签页中打开以解析PHPINFO代码文件。
