Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic “错误”;ASP 0115发生可捕获错误;在Microsoft修补程序CVE-2019-1367之后 Jscript意外异常_Asp Classic_Jscript - Fatal编程技术网

Asp classic “错误”;ASP 0115发生可捕获错误;在Microsoft修补程序CVE-2019-1367之后 Jscript意外异常

Asp classic “错误”;ASP 0115发生可捕获错误;在Microsoft修补程序CVE-2019-1367之后 Jscript意外异常,asp-classic,jscript,Asp Classic,Jscript,在23年发布Windows Server修补程序漏洞(CVE-2019-1367)后。九月 Windows服务器2019(KB4522015) Windows Server 2016(KB4522010) 基于x64系统的Windows Server 2008 R2 Service Pack 1(KB4522007) Windows Server 2012(KB4522007) Windows Server 2012 R2(KB4522007) 2019年10月7日更新的“每月汇总预览”和“

在23年发布Windows Server修补程序漏洞(CVE-2019-1367)后。九月

  • Windows服务器2019(KB4522015)
  • Windows Server 2016(KB4522010)
  • 基于x64系统的Windows Server 2008 R2 Service Pack 1(KB4522007)
  • Windows Server 2012(KB4522007)
  • Windows Server 2012 R2(KB4522007)
2019年10月7日更新的“每月汇总预览”和“每月汇总”软件包也会受到影响,不会修复特定的Jscript工作流问题

  • Windows Server 2019:KB4516077、KB4524148
  • Windows Server 2016:KB4516061、KB4524152
  • Windows Server 2012 R2:KB4516041、KB4524156
在典型的ASP应用程序中,有几个工作流案例在服务器端出现jscript意外错误:

  • 活动服务器页面错误“ASP 0115”
  • 外部对象中发生可捕获错误(C0000005)。脚本无法继续运行
  • 活动服务器页面错误“ASP 0240”
  • 脚本引擎在“CActiveScriptEngine::FinalRelease()”的“IActiveScript::Close()”中引发异常“C0000005”
补丁 远程代码执行漏洞存在于 脚本引擎处理Internet Explorer(又名Internet Explorer)中内存中的对象 “脚本引擎内存损坏漏洞”。这个CVE ID是 独特于CVE-2019-1221。

远程代码执行漏洞存在于 脚本引擎在Internet Explorer中处理内存中的对象。这个 该漏洞可能会损坏内存,从而导致攻击者 可以在当前用户的上下文中运行任意代码。一 成功利用该漏洞的攻击者可能会获得 与当前用户具有相同的用户权限。在基于web的攻击场景中, 攻击者可以托管精心编制的网站,该网站旨在 通过Internet Explorer攻击该漏洞,然后 用户可以通过发送电子邮件等方式查看网站。这个 安全更新通过修改 脚本引擎处理内存中的对象。

据说该补丁解决了内存管理中的问题。没有具体说明具体的变化,新的限制是什么。但似乎它会导致一些副作用失效案例

错误性质
  • 常规的try-catch方法无法处理这些错误
  • 这些错误会导致工作流中断
  • 异常似乎只在进入特定工作流时发生一次,并且对同一例程的重复web请求代码成功(直到应用程序池重新启动)
  • 有时例外情况是第一次、第二次或第三次进入工作流
  • 只有当IIS ASP调试属性-启用服务器端调试设置为False时,才会发生异常
背景 已验证使用修补程序的所有测试服务器实例上是否存在此问题。还通过检查应用修补程序前后的状态来隔离修补程序(服务器2012 R2、服务器2016、Windows 10-1809)

  • 从经典ASP服务器无法处理此问题,请使用try-catch
  • 返回常规错误-脚本错误消息 或者,如果关闭(ASP-将错误发送到浏览器),ASP错误代码将显示在发生错误的页面上
  • 事件查看器也会注册这些错误,但没有附加信息
  • Global.asa不提供全局错误处理,ASP服务器对象服务器。GetLastError()不捕获异常
探索例外情况

  • 调试诊断
  • 系统内部过程监视器
  • IIS-请求跟踪失败
环境

  • 应用程序池:经典管道模式,启用32位应用程序:True
  • 应用程序:ASP
  • ClientL IE 11企业模式,启用ActiveX
  • 在Web请求调用中模拟应用程序池标识
确定的问题

w3wp\uuuu V…\uuuu首次机会异常0XC0000005.dmp中的1个组件 msvcrt的指令!memcpy+198### 在C:\Windows\System32\msvcrt.dll中,来自Microsoft Corporation的已导致访问 尝试从线程33上的内存位置0x0000000a读取时发生冲突异常(0xC0000005) 指令地址 来源

后跟-Microsoft Corporation在尝试从内存位置0x00000000读取时导致访问冲突异常(0xC0000005)

[0x6b7c2d77] jscript!VarStack::ScavengeRoots+27    
[0x6b7c2b89] jscript!GcContext::CollectCore+79    
[0x6b7c2af4] jscript!GcContext::Collect+1b    
[0x6b7bca21] jscript!GcContext::ExhaustiveCollect+21    
[0x6b7a604a] jscript!CSession::Close+18a    
[0x6b7a32d9] jscript!COleScript::CloseInternal+13b    
[0x6b7a2d36] jscript!COleScript::Close+16    
[0x6b8a71ce] asp!CActiveScriptEngine::FinalRelease+1be 
...
FailedRequestTrace最后一条记录未确定导致问题的确切行,正在从应用程序范围xml对象属性分配字符串变量。(CurrentStatement返回attrib.text)

类似情况-尝试从内存位置0x00000000读取时出现访问冲突异常(0xC0000005)

[0x6b907e09] jscript!AString::CopyToBuffer+69    
[0x6b900524] jscript!AString::ConvertToBSTR+1bb74    
[0x6b8e49a7] jscript!VAR::ConvertASTRtoBSTR+13    
[0x6b8c49e8] jscript!VAR::GetValue+58    
[0x6b8e0f34] jscript!ConvertToString+58    
[0x6b922fbf] jscript!JsString+4f    
[0x6b8d92e6] jscript!NatFncObj::Call+e6 
...
尝试从内存位置0x004e0049读取时,后跟-访问冲突异常(0xC0000005)

[0x6b8e2d77] jscript!VarStack::ScavengeRoots+27    
[0x6b8e2b89] jscript!GcContext::CollectCore+79    
[0x6b8e2af4] jscript!GcContext::Collect+1b    
[0x6b8dca21] jscript!GcContext::ExhaustiveCollect+21    
[0x6b8c604a] jscript!CSession::Close+18a    
[0x6b8c32d9] jscript!COleScript::CloseInternal+13b    
[0x6b8c2d36] jscript!COleScript::Close+16    
[0x6bfb71ce] asp!CActiveScriptEngine::FinalRelease+1be
...
2在w3wp\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu第二次\u机会\u异常\u C0000005.dmp中,asp!CResponseBuffer::Write+3a 在\?\C:\Windows\System32\inetsrv\asp.dll中,Microsoft Corporation在尝试从线程32上的内存位置0x00000014读取时导致访问冲突异常(0xC0000005)

[0x6f042e88] asp!CResponseBuffer::Write+3a    
[0x6f0452ea] asp!CResponse::WriteSz+4c    
[0x6f02dd3b] asp!CErrInfo::LogErrortoBrowser+ff    
[0x6f02d4c9] asp!CErrInfo::LogErrortoBrowserWrapper+d7    
[0x6f02d047] asp!CErrInfo::LogError+e8    
[0x6f02e241] asp!HandleError+116    
[0x6f02f009] asp!HandleErrorMissingFilename+df    
[0x6f04941b] asp!CActiveScriptEngine::Call+bb    
[0x6f030eff] asp!CallScriptFunctionOfEngine+4d    
[0x6f02f99f] asp!ExecuteRequest+173    
[0x6f02f828] asp!Execute+23d    
[0x6f035c6f] asp!CHitObj::ViperAsyncCallback+467    
[0x6f05df53] asp!CViperAsyncRequest::OnCall+73    
[0x6eefd325] comsvcs!CSTAActivityWork::STAActivityWorkHelper+45    
[0x77098346] combase!EnterForCallback+16e [onecore\com\combase\dcomrem\crossctx.cxx @ 2072 + 2]   onecore\com\combase\dcomrem\crossctx.cxx @ 2072 + 2 
[0x7709816d] combase!SwitchForCallback+206 [onecore\com\combase\dcomrem\crossctx.cxx @ 1694]   onecore\com\combase\dcomrem\crossctx.cxx @ 1694 
[0x7709bae4] combase!PerformCallback+bc [onecore\com\combase\dcomrem\crossctx.cxx @ 1573 + 16]   onecore\com\combase\dcomrem\crossctx.cxx @ 1573 + 16 
[0x7709b7f9] combase!CObjectContext::InternalContextCallback+119 [onecore\com\combase\dcomrem\context.cxx @ 4421 + 1a]   onecore\com\combase\dcomrem\context.cxx @ 4421 + 1a 
[0x77198e66] combase!CObjectContext::DoCallback+26 [onecore\com\combase\dcomrem\context.cxx @ 4254]   onecore\com\combase\dcomrem\context.cxx @ 4254 
[0x6eefd015] comsvcs!CSTAActivityWork::DoWork+175    
[0x6eeff0e0] comsvcs!CSTAThread::DoWork+26    
[0x6eeff599] comsvcs!CSTAThread::ProcessQueueWork+48    
[0x6eeff8dd] comsvcs!CSTAThread::WorkerLoop+13d    
[0x76577e71] msvcrt!_callthreadstartex+25    
[0x76577f31] msvcrt!_threadstartex+61    
[0x765f0419] kernel32!BaseThreadInitThunk+19    
[0x77d5662d] ntdll!__RtlUserThreadStart+2f    
[0x77d565fd] ntdll!_RtlUserThreadStart+1b
...
  • 最有可能来自写入日志文件

    ioo_fso=Server.CreateObject(“Scripting.FileSystemObject”); ... loo_file=loo_fso.OpenTextFile(ls_文件名,8,true); ... 试一试{ loo_file.WriteLine(“[”+str+“]”)catch(ee){

  • 进程监视器在访问日志文件时显示w3wp.exe的“共享冲突”日志记录

3也在自定义服务器自定义组件创建之后立即体验了ASP 0115 来自FailedReqLogFiles日志,但尚未在DebugDiag中识别

问题 我知道ASP Jscript是一种过时的技术,但应该还有很多企业解决方案,所以可能有其他人也遇到了这些问题。 我会很高兴
[0x6f042e88] asp!CResponseBuffer::Write+3a    
[0x6f0452ea] asp!CResponse::WriteSz+4c    
[0x6f02dd3b] asp!CErrInfo::LogErrortoBrowser+ff    
[0x6f02d4c9] asp!CErrInfo::LogErrortoBrowserWrapper+d7    
[0x6f02d047] asp!CErrInfo::LogError+e8    
[0x6f02e241] asp!HandleError+116    
[0x6f02f009] asp!HandleErrorMissingFilename+df    
[0x6f04941b] asp!CActiveScriptEngine::Call+bb    
[0x6f030eff] asp!CallScriptFunctionOfEngine+4d    
[0x6f02f99f] asp!ExecuteRequest+173    
[0x6f02f828] asp!Execute+23d    
[0x6f035c6f] asp!CHitObj::ViperAsyncCallback+467    
[0x6f05df53] asp!CViperAsyncRequest::OnCall+73    
[0x6eefd325] comsvcs!CSTAActivityWork::STAActivityWorkHelper+45    
[0x77098346] combase!EnterForCallback+16e [onecore\com\combase\dcomrem\crossctx.cxx @ 2072 + 2]   onecore\com\combase\dcomrem\crossctx.cxx @ 2072 + 2 
[0x7709816d] combase!SwitchForCallback+206 [onecore\com\combase\dcomrem\crossctx.cxx @ 1694]   onecore\com\combase\dcomrem\crossctx.cxx @ 1694 
[0x7709bae4] combase!PerformCallback+bc [onecore\com\combase\dcomrem\crossctx.cxx @ 1573 + 16]   onecore\com\combase\dcomrem\crossctx.cxx @ 1573 + 16 
[0x7709b7f9] combase!CObjectContext::InternalContextCallback+119 [onecore\com\combase\dcomrem\context.cxx @ 4421 + 1a]   onecore\com\combase\dcomrem\context.cxx @ 4421 + 1a 
[0x77198e66] combase!CObjectContext::DoCallback+26 [onecore\com\combase\dcomrem\context.cxx @ 4254]   onecore\com\combase\dcomrem\context.cxx @ 4254 
[0x6eefd015] comsvcs!CSTAActivityWork::DoWork+175    
[0x6eeff0e0] comsvcs!CSTAThread::DoWork+26    
[0x6eeff599] comsvcs!CSTAThread::ProcessQueueWork+48    
[0x6eeff8dd] comsvcs!CSTAThread::WorkerLoop+13d    
[0x76577e71] msvcrt!_callthreadstartex+25    
[0x76577f31] msvcrt!_threadstartex+61    
[0x765f0419] kernel32!BaseThreadInitThunk+19    
[0x77d5662d] ntdll!__RtlUserThreadStart+2f    
[0x77d565fd] ntdll!_RtlUserThreadStart+1b
...
var pbkdf2;
try {
    pbkdf2 = Server.CreateObject("Pbkdf2");
    pbkdf2.hashPassword(ls_newpassword, 100000);
} catch (e) {
    addToLogg("Login:CreateObject failed for Pbkdf2, " + e.description);
}