zoukankan      html  css  js  c++  java
  • 渗透测试---webshell与上传漏洞~文件上传漏洞与防御思路

    php文件上传源代码:

    前端上传页面:upfile.php

    上传处理程序:upload.php

    php文件上传过程分析:

    文件长传检测控制方法:(绕过方法)

    1. 通过JavaScript检测文件扩展名(上传时改为jpg,绕过前端,再抓包改为php)
    2. 服务器端检测文件传输类型content-type(上传php文件,抓包修改content-type为jpg)
    3. 服务器端扩展名检测,设置黑白名单(未在黑名单包括,例如特殊执行文件.asa/.cer等可以在IIS执行)(上传jpg文件,利用中间件解析漏洞,使其被作为可执行文件执行)(通过截断符号,例如00,上传a.php0x00.jpg,服务器端从后往前读是jpg文件,保存文件从前往后读,00截断被当作php文件)
    4. 服务器端文件头内容检测,通过getimagesize()函数解析文件头部代码(在文件头中添加固定标识)(讲一句话木马嵌入到图片中,构造图片码,上传文件,再通过解析漏洞或其他方法还原为可执行文件)

    图片格式文件头标识:

    00截断演示:

    上传1.jpg文件,使用burpsuite拦截抓包修改文件名为1.phpp.jpg

    修改Hex中文件名中phpp的最后一个p编码为00后,在Raw中看到变化。

    关闭拦截,查看输出结果。

    防御思路:

    既要做前端的检测,也要做后端的检测,但检测有可能会被绕过,可以对上传的图片进行压缩,改变一句话木马,使图片码失效。

  • 相关阅读:
    链表 | 将递增有序的两个链表的公共元素合并为新的链表
    链表 | 将两个递增链表合并为一个递减链表
    雪花特效
    vuex笔记
    Vue路由
    Vue框架使用sass
    vue组件通信
    vue请求数据
    07_06.哈夫曼树
    07_05.通过链接实现二叉树及其遍历
  • 原文地址:https://www.cnblogs.com/123456ZJJ/p/12859700.html
Copyright © 2011-2022 走看看