风讯

风讯cms4sp5 商业版存在严重注射漏洞

风讯4的防注射函数NoSqlHack存在致命缺陷,导致入侵者可以轻松得到webshell

Function.asp

  1. Function NoSqlHack(FS_inputStr)   
  2.     Dim f_NoSqlHack_AllStr,f_NoSqlHack_Str,f_NoSqlHack_i,Str_InputStr   
  3.     Str_InputStr=FS_inputStr   
  4.     f_NoSqlHack_AllStr="*|and |exec |or |insert |select |delete |update |count |master |truncate |declare |and    |exec    |insert    |select    |delete    |update    |count    |master    |truncate    |declare    |char(|mid(|chr(|and[|exec[|insert[|select[|delete[|update[|count[|master[|truncate[|declare[|set[|set |set    |where[|where |where    |xp_cmdshell|xp_cmdshell |xp_cmdshell    "  
  5.     f_NoSqlHack_Str = Split(f_NoSqlHack_AllStr,"|")   
  6.   
  7.   
  8.     For f_NoSqlHack_i=LBound(f_NoSqlHack_Str) To Ubound(f_NoSqlHack_Str)   
  9.     If Instr(LCase(Str_InputStr),f_NoSqlHack_Str(f_NoSqlHack_i))<>0 Then   
  10.     If f_NoSqlHack_Str(f_NoSqlHack_i)="'" Then f_NoSqlHack_Str(f_NoSqlHack_i)=" \' "  
  11.     Response.Write "<html><title>??</title><body bgcolor=""EEEEEE"" leftmargin=""60"" topmargin=""30""><font style=""font-size:16px;font-weight:bolder;color:blue;""><li>???????????</li></font><font style=""font-size:14px;font-weight:bolder;color:red;""><br><li>?????????!</li><br><li>??IP:"&Request.ServerVariables("Remote_Addr")"</li><br><li>????:"&Now"</li></font></body></html><!--Powered by Foosun Inc.,AddTime:"&now"-->"  
  12.     Response.End  
  13.     End if  
  14.     Next   
  15.     NoSqlHack = Replace(Str_InputStr,"'","''")   
  16. End Function    

关键字后面跟空格和tab是过滤的,但是跟回车时一样可以执行注射语句.过滤单引号也没有用的,我插入时用16进制编码,所以每一个点都是有问题的注射点

http://www.sebug.net/vulndb/2306

关键词: 风讯 , 0day , exp , 漏洞 , 入侵