当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-048336

漏洞标题:SB3DS造船软件设计不当可跳过试用期限制继续使用

相关厂商:SB3DS造船软件

漏洞作者: 路人甲

提交时间:2014-01-17 16:23

修复时间:2014-01-20 15:19

公开时间:2014-01-20 15:19

漏洞类型:未授权访问/权限绕过

危害等级:低

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-01-17: 细节已通知厂商并且等待厂商处理中
2014-01-20: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

可在源代码中跳过软件试用期的限制,继续使用。

详细说明:

利用破解版的VBE6.DLL,可实现无密码浏览相关工程的源代码
在PipeDesign工程中的PipeMod模块Sub PSP()过程中的注册验证代码如下:

Set DrawPipe = New draw3ds.DrawSb
If Err.Number <> 0 Or InStr(Sb3dsDir, ":") = 0 Then GoTo er
M = SetCurrentDirectory(Sb3dsDir & "\sb3ds\bin")
pas = DrawPipe.Pass("21")
If Not pas Then Exit Sub


整个工程中,仅在此地方对软件的试用期进行验证。

漏洞证明:

调试发现pas = DrawPipe.Pass("21")会读取系统日期,并和试用日期进行对比,日期超出之后就会报错
简单的将

pas = DrawPipe.Pass("21")
If Not pas Then Exit Sub


两句进行注释,后调试发现后续部分功能无法实现(如:加载管路之后无法显示3D实体)
经测试,发现利用伪造系统日期可轻松跳过验证。

Set DrawPipe = New draw3ds.DrawSb
If Err.Number <> 0 Or InStr(Sb3dsDir, ":") = 0 Then GoTo er
M = SetCurrentDirectory(Sb3dsDir & "\sb3ds\bin")
RightData = Format(Date)
SetData = #1/1/2013#
Date = SetData
ChangedData = Format(Date)
pas = DrawPipe.Pass("21")
Date = RightData
If Not pas Then Exit Sub


利用对象浏览器查看DrawPipe的定义:

Public DrawPipe As draw3ds.DrawSb


继续:

Library draw3ds
C:\windows\system32\Draw3ds.dll


因办公环境没有相关工具,对Draw3ds.dll的工作暂停,原验证机制利用伪造系统日期可用。

修复方案:

建议对原工程进行更复杂的加密,保护源代码。
对试用期验证采用更复杂的算法。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-01-20 15:19

厂商回复:

暂没有建立直接处置渠道。

最新状态:

暂无