文件上传基础

文件上传基础
文件上传种类

什么是文件上传漏洞?

1
2
3
文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。
上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell
等到服务器执行,并最终获得网站控制权限的高危漏洞。

有两个注意的地方:
1、若存在文件上传的功能,则可以测试其是否存在文件上传的漏洞。
2、但同时,若存在文件上传的功能,我们可以测试其是否存在文件上传漏洞。

文件上传漏洞有哪些危害?

高危漏洞,若上传一个后门文件(webshell),则可以直接获取到当前网站的权限。

文件上传漏洞如何查找及判断?

查找:
1、黑盒查找:
暴力方法,通过一些软件进行目录扫描
通过会员中心上传头像之类的
通过后台权限获取网站权限
2、白盒查找:拿到代码,分析代码。
判断:自己抓包测试。
需要注意的地方:判断上传漏洞的类型。

一些文件上传漏洞相关演示

1、常规文件上传地址的获取说明(怎么发现文件上传漏洞,如何突破):18:15
2、不同格式下的文件类型后门测试(重要):24:20
3、配合解析漏洞下的文件类型后门测试(可以学习一下使用vulhub):30:00

1
2
3
这个演示本质是php CGI漏洞,由于有些php版本默认开启cgi.fi选项,php遇到不存在文件时会向前递归解析,
与nginx配合会造成该漏洞。即虽然是png图片格式,但是由于这个解析漏洞,在路径后面加上一个此目录不存在的
一个php文件,那么隐藏在图片内的代码会被执行(可以实现反逆转)。

4、迪师傅对于2、3的拓展:41:25
5、本地文件上传漏洞靶场环境搭建测试(前端验证):46:35
!!!文件上传漏洞的靶场(自己搭建):https://github.com/c0ny1/upload-labs
对于实例五的思考:

1
2
3
4
5
6
7
前端(html,js)负责显示传输数据,后端(php,py)负责接受和处理数据,数据库负责保存数据。
前端验证就是在你自己的本地浏览器上即可验证。
后端验证则是发送到服务器端脚本去验证判断。
(前端先验证再发给后端和发过去给后端验证的区别。)
也就是说,前端验证不安全,用户可以通过禁用script脚本(或者把源代码copy下来
把过滤代码删除)来实现绕过。
而后端验证相对来说较为安全。

!!!若用js方式实现文件上传操作(上传到前端,没有交互),那么抓包可能抓不到,也就实现不了burp抓包改后缀的操作。
6、某CMS文件上传漏洞测试:1:06:00

1
2
若在本地测试发现不了上传漏洞,并不是说就没有上传漏洞。
你可以通过cms识别出网站使用什么系统搭建的(视频中的是findcms),通过上网搜索相关漏洞实现文件上传。

7、CVE编号文件上传漏洞测试:1:25:00

1
图片来自于小迪安全,只是方便个人学习,如有侵权联删