zoukankan      html  css  js  c++  java
  • 网络安全渗透第7节课笔记

    php文件上传

    文件上传过程:

    1. 页面通过post方式上传文件到服务器。
    2. 服务器通过$_FILES取得上传文件的变量内容。
    3. 文件临时存储在服务器中,位置为tmp_name定义。
    4. 服务器通过move_uploaded file(file,newload)将临时存储文件保存到指定目录。
    5. 文件上传完成。

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

    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()函数解析文件头部代码(在文件头中添加固定标识)(讲一句话木马嵌入到图片中,构造图片码,上传文件,再通过解析漏洞或其他方法还原为可执行文件)
    5. 00截断的应用(上传jpg,burp抓包改为phpp.jpg,在Hex中将最后一个p编码改为00)

    注意:

    一句话木马包含在图片中,可以上传成功,但不能执行,还需要进一步还原成可执行文件,才可以执行文件。

    DVWA中有.htaccess可以将其还原,所以high级别上传成功后即可执行。

    apache.htaccess配置文件解析利用:

      1.创建.htaccess文件,写入

      AddType application/x-httpd-php .jpg

      可以实现将.jpg的文件按照php解析执行。

      2.上传.htaccess到服务器的目录(图片马在.htaccess的同目录或子目录即可)。

      3.上传.jpg的图片马,访问图片即可执行。

  • 相关阅读:
    快速熟悉项目代码
    Hello World
    【java】随机生成6位的数字
    解决字段名与实体类属性名不相同的冲突
    通过eclipse mybatis generater代码生成插件自动生成代码
    自有账户体系对接百度云推送必须要弄懂的问题
    使用jquery获取url及url参数的方法
    Delphi 不使用自带模板创建服务
    Delphi在Listview中加入Edit控件
    动态加载和动态注册类技术的深入探索
  • 原文地址:https://www.cnblogs.com/123456ZJJ/p/12896581.html
Copyright © 2011-2022 走看看