0919文件上传-解析漏洞编辑器安全&WAF绕过及安全修复

 

其他漏洞

编辑器漏洞

网站在实现上传文章等功能时会套用第三方编辑器的功能
大部分编辑器漏洞都是文件上传漏洞

 

判断:
1、看界面
2、目录扫描

fkceditor、ewebeditor、ckeditor、kindedit......
网上搜索相应版本的漏洞跟着测试即可

解析漏洞

IIS/7.X

Apache

Apache解析漏洞-低版本

x.php.xxx.yyy 最后的yyy不识别,向前解析,直到识别,即x.php
利用场景:
中间件apache属于低版本,2.x版本等低版本,即可利用漏洞上传一个不识别的文件后缀,触发后门代码解析
黑名单

Apache换行解析漏洞-vulhub有

2.4.0~2.4.29
%0a

Nginx

上传图片马路径/.php 即可php执行图片马

CMS漏洞

某CMS上传

思路!!!

1、找文件上传点
scan网站字典扫描、会员中心...

2、看中间件
看是不是低版本,又没有解析漏洞能够配合上传

3、测试上传漏洞(绕过)
判断黑名单还是白名单或是其他检测,针对性绕过

4、看CMS漏洞、其他漏洞(编辑器、CVE漏洞)
编辑器:看样式、字典扫描

 

上传参数解析:明确可修改项目

-----------------------------64980465541849181541550146591
Content-Disposition: form-data; name="upload_file"; filename="test.png"
Content-Type: image/png

name:表单参数值,不能更改,非要更改要达到与代码统一同步
表单传递的名字 upload_file
由前端决定命名,实际情况是改不了的

Content-Dispositon :一般可更改
接收类型 form-data表单的数据

filename:文件名,可以更改
上传的图片名字,本地的名字

Content-Type:文件MIME,视情况更改
文件自带类型,什么类型就显示啥

常见绕过方法

本质就是利用数据包和waf程序代码的信息差,书写格式不同两者读取到的含义不同

数据溢出-防匹配(xxx...)

冲垃圾数据,在;filename之前加大量垃圾数据,让waf失效,别忘了垃圾数据后加';'

符号变异-防匹配(' " ;)

单引号后双引号括起来表示这是个赋值的东西,不括起来waf可能会认为是个函数

filename="1.php : 若去掉一个"waf可能会被认定为文件名为"1,waf的防护机制可能是找" '引号内的东西匹配

1.php \ "1.php \ '1.php \ "1.jpg;.php"; \ "1.php%00.jpg"......利用 ' " ; / 各种符号不断组合测试

数据截断-防匹配(%00 ; 换行)

"1.php%00.jpg"

换行:
1.p
h
p
WAF程序代码可能会认为换行是\n ,但数据包可以识别

重复数据-防匹配(参数多次)

先判断以第几个参数为准,然后多次写参数
eg: 若以最后一个为准
filename="1.jpg";filename="1.jpg";......filename="1.php"

借助数据包原有自带正常数据作为干扰条件,写到waf检测参数中
eg:
filename="Content-Disposition: form-data; name="upload_file"1.php"
WAF读到filename时白名单认为是正常数据,后面的1.php没有值会接收他
而数据包读取时会正常接收到1.php

fuzz模糊测试

确定测试点,用字典大量替换

思路

定位它的检测项目位置
确定检测机制
想办法绕过

文件上传安全修复方案

后端验证:采用服务端验证模式
后缀检测:基于黑名单,白名单过滤
MIME检测:基于上传自带类型检测
内容检测:文件头,完整性检测

直接用getimage这类直接定死的函数,只能处理图像的函数

自定义函数:把黑白名单都写进去
function check_file(){}

直接在上面布置WAF防护产品:宝塔、云盾、安全公司产品......

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值