开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情
6 . 文件上传(对应 File Upload 模块)
一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者像某个可通过web访问的目录上传任意php文件,并能够将这些文件传递给php解释器,就可以在远程服务器上执行任意php脚本。
造成文件上传漏洞的原因及原理
原因:
1 对于上传文件的后缀名(扩展名)没有做较为严格的限制
2 对于上传文件的MIMETYPE(用于描述文件的类型的一种表述方法) 没有做检查
3 权限上没有对于上传的文件目录设置不可执行权限,(尤其是对于shebang类型的文件)
4 对于web server对于上传文件或者指定目录的行为没有做限制
原理:
在 WEB 中进行文件上传的原理是通过将表单设为 multipart/form-data,同时加入文件域,而后通过 HTTP 协议将文件内容发送到服务器,服务器端读取这个分段 (multipart) 的数据信息,并将其中的文件内容提取出来并保存的。通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名 ( 为了防止重复 ),并且加上原始文件的扩展名来保存到服务器上。
漏洞利用
文件上传漏洞的利用是有限制条件的,首先当然是要能够成功上传木马文件,其次上传文件必须能够被执行,最后就是上传文件的路径必须可知。不幸的是,这里三个条件全都满足。
低
代码审计
方法(操作步骤详见视频)
直接可上传php文件
中
代码审计
高
代码审计
方法(操作步骤详见视频)
合成图片木马上传,copy tx.png /b + ha.txt /a haphp.png
Impossible
代码审计
有问题欢迎留言和评论,大家一起学习和探讨,本次分享到此结束,谢谢大家!
有问题欢迎留言和评论,大家一起学习和探讨,本次分享到此结束,谢谢大家!
有问题欢迎留言和评论,大家一起学习和探讨,本次分享到此结束,谢谢大家!
有问题欢迎留言和评论,大家一起学习和探讨,本次分享到此结束,谢谢大家!