• 文件上传漏洞


    本质:用户可通过伪造后缀、文件类型等方式上传恶意代码 / 文件,一般来说通过上传 webshell
    一般出现在,头像上传、用户个人信息、文件处理(交接、存储、管理)、注册、申请;
    $_FILE 预定义变量
    黑白名单
    黑名单:不允许上传文件类型
    白名单:仅允许上传的文件类型
    绕过
    1 js 绕过
    ①修改 js 文件
    直接删除 js 触发条件即可
    ②抓包重放
    提交正常数据,再重放数据包
    ③禁用 js
    使用插件禁用 js ,或使用浏览器配置禁用
    如何区分前后端校验:
    正常上传数据包,有校验提示,但无数据包的传递,此时可判断为 js 校验(部分服务器前后都校验)
    2 mime type 限制,文件类型限制,直接修改类型即可
    图片相关 mime 类型:
    image/gif image/png image/jpeg
    3 、黑名单限制
    ①尝试生僻后缀: .phtml .php1-8 html (仅受中间件配置限制,需要在中间件内添加对应配置才能生效,否则无法解析生僻后缀)
    ②尝试大小写后缀
    windows 特性
    I 、对大小写不敏感
    II 、在生成文件的时候自动会去除空格、
    III 、在生成文件的时候自动处理文件名后缀的 .( ) ,及点空点组合
    IV windows 处理文件的时候 ”::$DATA“ 会把其之后的数据当作文件流处理,不会检测后缀名,同时保持其之前的文件名
    IIV 、利用 php+windows 先上传数据包
    此时会生成一个空文件
    再次上传第二条数据包修改原有文件
    此时会重新将文件内容添加进去,此方法适用于上传时源文件名不被修改的情况
    ④过滤后缀
    尝试使用双写或者
    4 、白名单限制
    00 截断
    当操作系统识别字符串读到 \0 字符时,意味者停止,结束,通过这个特性可达到 00 截断的目的,或某些
    waf 的绕过
    条件:
    php 版本:小于 5.3.29
    magic_quote_gpc:off
    get 请求中在 url 地址栏里增加 %00
    post 请求下
    需修改 hex 编码为 00
    注: 00 截断可应用于代码处理功能逻辑中;
  • 相关阅读:
    在线考试系统
    Python的高级用法:类型注解
    bypass绕WAF
    【Mysql】mysql学习之旅02-DDL数据库定义语言
    MongoDB入门+深入(一)
    Java进阶篇--Condition与等待通知机制
    PMP 11.27 考试倒计时12天!冲刺啦!
    BCG ribbon简单使用(1)
    基础shell小技巧004
    校园网课刷题小程序源码系统 带完整搭建教程
  • 原文地址:https://blog.csdn.net/hakksjss/article/details/138174855