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的图片马,访问图片即可执行。

  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/123456ZJJ/p/12896581.html
Copyright © 2011-2022 走看看