文章目录
(一) 漏洞概念
文件上传漏洞,直面意思可以利用WEB上传一些特定的文件。一般情况下文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。文件上传本身是web中最为常见的一种功能需求,关键是文件上传之后服务器端的处理、解释文件的过程是否安全。一般的情况有:
- 上传Web脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行。
- 上传Flash策略文件crossdomain.xml,以此来控制Flash在该域下的行为。
- 上传病毒、木马文件,攻击者用以诱骗用户或管理员下载执行。
- 上传钓鱼图片或包含了脚本的图片,某些浏览器会作为脚本执行,实施钓鱼或欺诈。
(二) 漏洞原理
开发人未对上传点上传的文件类型和内容进行正确的识别和处理,导致攻击者上传网站脚本(一般是webshell)进行使网站服务器被控制。
(三) 漏洞利用条件
- 上传点
- 开发人员未正确识别和处理非法文件
- 攻击者通过网页上传
- 攻击者知道木马地址
- 攻击者能访问木马;如果功能不正常,请检查
a) 菜刀所在攻击机能否访问靶机的网页(是否能通信)
b) 菜刀中添加的木马地址和配置是否正确
c) 虚拟网关工作是否正常 - 木马能够被解析
(四) 漏洞危害
条件允许的情况下,攻击者可能能实现对服务器文件的查看和更改,实现对服务器的进程的管理等其他控制功能。
(五) 修复思路
- 上传文件的存储目录禁用执行权限
- 文件的后缀白名单,注意0x00截断攻击
- 不能有本地文件包含漏洞
- 及时修复web上的代码
- 升级web server
(六) 漏洞利用过程
任务一:部署Upload-Labs
任务二:一句话木马编写和中国菜刀利用**
-
编写PHP一句话木马
<?php eval($_GET['cmd']); ?> <?php eval($_POST['cmd']); ?> <?php eval($_REQUEST['cmd']); ?>
-
浏览器访问当前一句话木马,并通过木马执行phpinfo()函数
-
使用中国菜刀管理目标服务器
a) 克隆一台攻击机,要求使用链接克隆减少克隆时间
b) 解压中国菜刀到攻击机中
c) 使用中国菜刀管理webshell:①在靶机桌面上新建一个自己学号姓名为文件名的文本文档;②查看靶机ip
任务三:upload-labs靶场1-12关
- 主要思路
先尝试上传.php文件,查看报错信息或是查看源码发现问题,最终通过burp suite抓包进行修改,实现.php文件的成功上传。 - 部分截图
-
点击【显示源码】按钮,发现源码中对扩展名后点号(.)未进行处理。
-
Burp Suite 改包,在请求报文中将php扩展名后面添加一个点号(.),然后放包
-
(七) 漏洞绕过方式总结
- 前端限制绕过
- 后端绕过
- 黑名单绕过
- 大小绕过
- 生僻扩展名绕过
- 扩展名加空格绕过
- 扩展名加点号绕过(Win)
- 扩展名加::$DATA绕过(Win)
- 双写绕过
- content-type绕过
- htaccess绕过
- 利用处理流程的漏洞绕过
- 白名单绕过