文件上传基础
-
什么是文件上传
将客户端数据以文件形式封装,通过网络协议发送到服务器端。在服务器端解析数据,最终在服务器硬盘上作为真实的文件保存。
通常一个文件以HTTP协议进行上传时,将以POST请求发送至WEB服务器,WEB服务器收到请求并同意后,用户与WEB服务器将建立联接,并传输数据。 -
文件上传漏洞产生原因
服务器配置不当
文件上传限制被绕过
过滤不严被绕过
文件解析漏洞导致文件执行
开源编辑器的上传漏洞 -
文件上传危害
上传文件的时候如果服务器脚本端语言未对上传的文件做严格的过滤和验证,就容易造成上传任意文件的情况。
攻击者通过上传任意文件给解释器去执行,然后就可以在服务器上执行恶意代码,进行数据库执行,服务器文件管理,命令执行等恶意操作。从而控制整个网站,甚至是服务器,这个恶意的文件(php,asp,aspx,jsp等),又被称为webshell。
4.漏洞存在位置
图像上传功能
头像上传功能
文档上传功能
5.文件上传检测方式
客户端js检测(文件扩展名)
服务端mime类型检测(content-type的第一个属性往往是mimetype的类型)
服务端目录路径检测(path参数相关)
服务端文件拓展名检测(extension)
服务端文件内容检测(检测内容是否有恶意代码等)
MIME
是描述信息内容类型的标准,用来表示文档,文件或字节流的性质和格式。
它通过类型/子类型的结构来描述文件的本质特征,帮助应用程序正确处理文件。
对大小写不敏感。
通用结构:type/subtype
文件拓展名与MIME Type对照表
文件拓展名 MIME Type
png image/png
bmp, dib image/bmp
jpg, jpeg, jpe image/jpeg
gif image/gif
mp3 audio/mpeg
mp4, mpg4, m4v, mp4v video/mp4
js application/javascript
pdf application/pdf
text, txt text/plain
json application/json
xml text/xml
Apache HTTP Server 是一个开源的Web服务器软件
apache解析有一个特点,解析文件是从右往左判断,如果为不可识别解析再往左判断,如
Aa.php.owf.rar,apache无法识别解析owf rar 这两种后缀,会解析成php文件。
浙公网安备 33010602011771号