• Windows可信任路径代码执行漏洞


    乌云里有很多这样的案例,当然在开发过程中也会存在这样的问题

    搜索:可信任路径漏洞

    调用案例中的描述:

    Microsoft Windows API使用CreateProcess()函数创建新的进程及其主线程。
    CreateProcess()函数的格式如下:
    BOOL CreateProcess(
    LPCTSTR lpApplicationName,
    LPTSTR lpCommandLine,
    LPSECURITY_ATTRIBUTES lpProcessAttributes,
    LPSECURITY_ATTRIBUTES lpThreadAttributes,
    BOOL bInheritHandles,
    DWORD dwCreationFlags,
    LPVOID lpEnvironment,
    LPCTSTR lpCurrentDirectory,
    LPSTARTUPINFO lpStartupInfo,
    LPPROCESS_INFORMATION lpProcessInformation
    );
    lpApplicationName变量包含有将要执行模块的名称,但可能是空值。在这种情况下,所执行的模块名称将会是lpCommandLine字符串中的第一个空白划定符。
    如果lpApplicationName中包含有空值,lpCommandLine变量中的完整模块路径包含有空白且没有包含在引号中的话,就可能执行其他程序,如下所示:
    CreateProcess(
    NULL,
    c:program filessub dirprogram.exe,
    ...
    );
    在这种情况下,系统在解释文件路径时会扩展字符串,直到遇到执行模块。上面例子中的字符串可能被解释为:
    c:program.exe filessub dirprogram name
    c:program filessub.exe dirprogram name
    c:program filessub dirprogram.exe
    因此,如果c:目录中存在名为program.exe的文件的话,就可能执行该文件而不是预期的应用程序。

    修复建议:

    对传入给CreateProcess函数的名称和参数用双引号””进行包含

    官方参考资料:

    https://msdn.microsoft.com/zh-cn/library/ms682425.aspx

  • 相关阅读:
    mysql索引、group by、explain、insert delayed
    mysql学习笔记
    Handler
    文件操作
    RatingBar
    ListView(二)
    文件管理函数的草稿
    SAX解析XML
    phpunit
    Service(一)
  • 原文地址:https://www.cnblogs.com/sevck/p/8488469.html
Copyright © 2020-2023  润新知