荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (○kernel○), 信区: InstallBBS
标  题: bbs2www 2.01 security fix(转寄)
发信站: 荔园晨风BBS站 (Sun Mar 24 14:36:54 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: lepton.bbs@ytht.net (0.210526315789473684...), 信区: BBSMan_Dev
标  题: bbs2www 2.01 security fix(转寄)
发信站: YTHT (Thu Mar 21 16:10:52 2002)
转信站: SMTH!thunews.dhs.org!news.happynet.org!YTHT

bbs2www 2.01我简单看了一下
只找到三个明显的buf overflow和一个输入检查不充分
这三个overflow都不太好利用 但是不排除被利用入侵
的可能性,尤其是bbssdm.c的那个overflow,是明显可以
被利用的.
bbssdm.c同时也有输入检查不足的问题

patch附后,因为我没有使用fb2000,所以编译bbs2www 2.01
不是太方便,这个patch没有经过测试.


diff -u bbs2www-2.01/bbs0an.c bbs2www-2.01-n/bbs0an.c
--- bbs2www-2.01/bbs0an.c       Sat Feb 24 05:28:59 2001
+++ bbs2www-2.01-n/bbs0an.c     Thu Mar 21 15:53:28 2002
@@ -41,7 +41,7 @@

   path = cgi_get ("path");

-  sprintf (filename, "%s/0Announce%s/.Names", BBSHOME, path);
+  snprintf (filename, sizeof(filename),"%s/0Announce%s/.Names", BBSHOME, path);

   if (!(inf = fopen (filename, "r")))
     {
diff -u bbs2www-2.01/bbsanc.c bbs2www-2.01-n/bbsanc.c
--- bbs2www-2.01/bbsanc.c       Tue Mar  6 04:01:23 2001
+++ bbs2www-2.01-n/bbsanc.c     Thu Mar 21 15:52:41 2002
@@ -45,7 +45,7 @@

   path = cgi_get ("path");

-  sprintf (buf, "%s/0Announce%s", BBSHOME, path);
+  snprintf (buf, sizeof(buf),"%s/0Announce%s", BBSHOME, path);

   cgi_quit ();

diff -u bbs2www-2.01/bbssdm.c bbs2www-2.01-n/bbssdm.c
--- bbs2www-2.01/bbssdm.c       Sat Feb 24 05:29:00 2001
+++ bbs2www-2.01-n/bbssdm.c     Thu Mar 21 16:01:49 2002
@@ -22,6 +22,21 @@

 #include "bbs2www.h"

+int
+invalid(char *to)
+{
+       int i=0;
+       while(to[i]){
+               if(!(to[i]>='a'&&to[i]<='z'
+               ||to[i]>='A'&&to[i]<='Z'
+               ||to[i]>='0'&&to[i]<='9'
+               ||to[i]=='.'||to[i]=='@')
+                       return 1;
+               i++;
+       }
+       return 0;
+}
+
 static char *
 autocr (char *post)
 {
@@ -129,7 +144,10 @@
       if (ALLOW_INTERNET_EMAIL != 1)
        show_error ("Internet Email not allowed in this BBS");

-      sprintf (filename, "%s -f  %s.bbs@%s %s", SEND_MAIL,
+      if(invalid(to))
+        show_error("Invalid Email Address");
+
+      snprintf (filename,sizeof(filename), "%s -f  %s.bbs@%s %s", SEND_MAIL,
               cookie.id, BBSHOST, to);
       fout = popen (filename, "w");
       if (fout == NULL)


--
☆ 来源:.一塌糊涂 BBS ytht.net.[FROM: bbsbug]
--
※ 修改:.lepton 于 Mar 21 16:10:18 修改本文.[FROM: 162.105.46.196]
※ 转载:.一塌糊涂 BBS ytht.net.[FROM: 162.105.46.196]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店