QQProtect.sys漏洞真有意思

去年发现3个直接信任用户输入BSOD漏洞,今天在看雪上又发现这个。

原文:http://bbs.pediy.com/showthread.php?t=179059

两处很2的逻辑

1:

        if( !IsFileDirectory( hFile ) ||
            !(bResult = IsDirectoryInQQSubBinDirTbl( FileName,MAX_UNICODE_STRING_CHARS)) &&
            !(bResult = IsDirectoryInMyProtectedDataFileDir(
                ((PFILE_RENAME_INFORMATION)FileInformation)->FileName,bytes / sizeof(WCHAR)))
        )
        {
            AdjustPathString( ((PFILE_RENAME_INFORMATION)FileInformation)->FileName,
                                (USHORT)(bytes / sizeof(WCHAR)));
            MakeNewQQPathDir( FileName,
                              ((PFILE_RENAME_INFORMATION)FileInformation)->FileName,
                              bytes / sizeof(WCHAR),
                              NewQQPathDir );
        }

||操作符,用的好很飘逸,不少php就用这个操作符对变量检测并赋值,QQ用的比较很2。保护思路应该为:如果是目录并且是QQ目录,就创建新路径。那么直接"IsFileDirectory &&",一点事没有。 

2.路径匹配

 if(lengthOfOldDir <= wcslen( g_PathRegValue ) &&
       !wcsnicmp( OldDir,g_PathRegValue,lengthOfOldDir ))

用户输入多长,就匹配多长,太不正经了。

posted @ 2013-09-22 11:39  ywledoc  阅读(848)  评论(0编辑  收藏  举报