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中看到变化。

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

    防御思路:

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

  • 相关阅读:
    队列的实现
    前端的数据结构
    有关es6的模块化
    jQuery---事件的执行顺序
    短网址生成和还原工具使用教程
    【01】HTML_day01_03-HTML常用标签
    JS中变量、作用域的本质,定义及使用方法
    JS 重载父页面
    搞懂Nginx一篇文章就够了
    重复的子字符串
  • 原文地址:https://www.cnblogs.com/123456ZJJ/p/12859700.html
Copyright © 2011-2022 走看看