什么是文件上传漏洞?
指程序对文件的上传未作全面的限制,导致用户可以上传一些超越用户权限的一些文件,可以是木马,shell脚本,病毒等。
文件上传漏洞有哪些危害?
可以通过文件上传漏洞上传webshell后门。
1.有文件上传不一定存在漏洞
2.凡是存在文件上传功能的地方都可以进行文件上传漏洞测试
3.上传文件操作的代码的完整性、安全性,决定了是否会造成文件上传漏洞。如果开发者疏忽了文件上传代码某一方面的验证,就可能造成文件上传漏洞。
文件上传漏洞如何查找及判断?
黑盒: 使用扫描工具扫描打开网站。
黑盒:测试会员中心,测试后台。
白盒:直接撸源代码。
文件上传漏洞有哪些需要注意的地方?
拿到漏洞后要对漏洞类型进行区分,编辑器、第三方应用、常规等。区分漏洞类型。
关于文件上传漏洞在实际应用中的说明?
上传后门脚本获取网站权限
案例演示
<1>百度高级搜索,搜索关键字:inurl:upload.php,随机搜索网上的一些文件上传接口。
下面这个地址是通过百度搜索关键词搜索出来的
<2>百度高级搜索,针对特定网址搜索关键词:site:xxx.com upload,搜索特定网站的文件上传接口。
<3>通过扫描工具扫描,获取到特定网站的文件上传位置。
案例2:不同格式下的文件类型后门测试
我们需要根据网站使用的语言来上传对应的脚本,比如针对PHP网站,我们只有上传.php格式的后门才有可以被执行,其他格式不会被执行,jpg等非脚本格式更不会被执行。因此,不要妄想使用一张带有后门脚本的图片就能控制网站。
案例3:配合解析漏洞下的文件类型后门测试
案例演示:Nginx 解析漏洞复现
参考:https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/
<1>找一张图片,使用notepad++打开,在最后面加上自己的代码。
<2>上传图片,打开图片在网站所在位置,发现没有执行代码,原因是我们上传图片的后缀是.png。
<3>但是如果你在图片路径后面加上/1.php,会发现,网页前面乱码,后面执行了代码,显示phpinfo信息。
<4>原因是这里有一个解析漏洞,此处nginx在格式解析上出现了混乱,将图片解析成了脚本。
案例4:本地文件上传漏洞靶场环境搭建测试
下载:https://githuub.com/cOny1/upload-labs
文件上传第一关解题思路:上传文件时,只有前端校验,后端未二次校验。
方法1:将前端html下载到本地,删除其中的校验代码,增加action值为服务器上传地址,执行,绕过前端过滤。
方法2:直接burp抓包修改后缀名