荔园在线

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

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


发信人: Lg (创造人生的传奇), 信区: InstallBBS
标  题: BBS 安装精简手册 -3
发信站: BBS 荔园晨风站 (Sun Dec  6 19:29:33 1998), 站内信件

发信人: Bodyguard (Peggy~我忘不了您), 信区: InstallBBS
标  题: BBS 安装精简手册 -3 [六次放送] (转载)
发信站: Hong Kong Internet BBS (Mon Nov  9 22:27:20 1998), 转信

十,cna news加入活动看版

           刚刚用最直接的方式来写程式,
           下面的那埚程式会抓 ~bbs/boards/cna/.DIR 的最新 4 笔
           资料, 写到 ~bbs/etc/movie 的最后, 只要定时在 cron 中
           执行, 就可以自动更新 movie 中即时新闻
           省掉用 bbsgopher2.c 的麻烦(反正大多人都有转 cna.today 嘛!)

        ps.这是写给活动看版五行的, 其他行数的自己修正一下
        ps.不要嫌我程式写的太拙劣, 能用就好 ^()^


=======================以下为 cna.c
的内容====================================


/* 程式功能: 抓取 cna news 放入 movie 中 */

#include <stdio.h>
#define STRLEN           80
struct fileheader {                /* This structure is used to hold
data in */
        char filename[STRLEN];     /* the DIR files */
        char owner[STRLEN];
        char title[STRLEN];
        unsigned level;
        unsigned char accessed[ 12 ];   /* struct size = 256 bytes */
} ;

main()
{
        FILE *fp1,*fp2;
        struct fileheader m1;
        char tmp1[STRLEN],tmp2[STRLEN],tmp3[STRLEN],tmp4[STRLEN];
        char foo[1024],TOPSTR[160];
        char shift[]="                      ";
        strcpy(TOPSTR,"
【中央社即时新闻报导】
                     ");

        fp1=fopen("/home/bbs/boards/cna/.DIR","rb");
        while(1)
        {
                if(fread(&m1,sizeof(m1),1,fp1)<=0) break;
                strcpy(tmp1,tmp2);
                strcpy(tmp2,tmp3);
                strcpy(tmp3,tmp4);
                strcpy(tmp4,m1.title);
        }
        fclose(fp1);
        system("cp /home/bbs/etc/movie /home/bbs/etc/movie2");
        if((fp1=fopen("/home/bbs/etc/movie","w" ))==NULL) return;
        if((fp2=fopen("/home/bbs/etc/movie2","r"))==NULL) return;
        while(fgets( foo,sizeof(foo), fp2)!=NULL)
        {
                if(strstr(foo,TOPSTR)) break;
                fprintf(fp1,"%s",foo);
        }
        fprintf(fp1,"%s\n",TOPSTR);
        fprintf(fp1,"%s%-56s\n",shift,tmp1);
        fprintf(fp1,"%s%-56s\n",shift,tmp2);
        fprintf(fp1,"%s%-56s\n",shift,tmp3);
        fprintf(fp1,"%s%-56s\n",shift,tmp4);
        fclose(fp1);
        fclose(fp2);
}
   ps: 其他密招:

         1)去除框框(请参照第13点,档案介绍)
         2)加大活动看版行数(一次显示的行数)

       只要修改 bbs.h 中的 #define MAXnettyLN    5 /*lines of activity
board*/
                                                 ^看你要几行就几行 !!
       再 rm more.o ; make installbbs 即可 !!

         3)2.31版前的bug

2.31版movie的bug(会踢人,甚至吃ram吃到当机)虽然比1.7版好很多,但还是有问题
          请至/bbs_src 目录中修改more.c(参照Hankue的改法)
        /* while(movieshm->movielines%MAXnettyLN!=0)*/
         while(xxxline%MAXnettyLN!=0)
          然后rm more.o , make installbbs

十一BBS系统安全漏洞
     A, Internet mail 安全漏洞

发信人: ARDA.bbs@bbs.ee.ncu.edu.tw (Arithmandar), 看板: installbbs
标  题: Re: Maple有安全的漏洞吗?
发信站: 中央大学松涛风情资讯站 (Thu Aug 29 21:36:17 1996)

    mail.c 有一个 security hole,请参考修改:

(1) 在寄出 Internet E-mail 的时候,不会检查 E-mail address,
    这是主要的关键。

int
 m_internet()
 {
  char receiver[60];

  getdata(20, 0, "收信人:", receiver, 60, DOECHO);
  if (strchr(receiver, '@') && !invalidaddr(receiver) &&
    getdata(21, 0, "主  题:", save_title, TTLEN, DOECHO))
  {
    do_send(receiver, save_title);
  }
  else
  {
    move(22, 0);
    outs("收信人或主题不正确,请重新选取指令");
    pressanykey();
  }
  return 0;
}

(2) 修改 E-mail address 检查方式:

static int
invalidaddr(addr)
  char *addr;
{
  if (*addr == '\0')
    return 1;                   /* blank */
  while (*addr)
  {
    if (not_alnum(*addr) && !strchr("[].%!@:-_", *addr))
      return 1;
    addr++;
  }
  return 0;
}
    return 1;                   /* blank */
  while (*addr)
  {
    if (not_alnum(*addr) && !strchr("[].%!@:-_", *addr))
      return 1;
    addr++;
  }
  return 0;
}

        将字串中的 ';' 拿掉。

[备注]

(1) Phoenix/FireBird/Maple/Secret_Lover .... 都有这个
    漏洞,请透过安全的管道,将 security hole 的内容及
    patch 的方法,转达给你熟识的站长朋友吧。

(2) MapleBBS 2.39 以后,主程式不直接呼叫 sendmail,
    改采 batch mode 执行,系统比较安全,效率也较佳。

    上次,有人拿这个 security hole 来玩「枫桥驿站」时,
    「奇怪,怎么不行?」 ..... 哈哈 ......

 B,精华区漏洞

 作者  opus (山抹微云)                                      看板  plan
 标题  [patch] 精华区的 security hole
 时间  Fri Aug 30 00:57:01 1996
———————————————————————————————————————

        因为板主可以 [指定/重设] 精华区的 filename/path,
        所以会形成 security hole :

        e.g. 设成 ../../.PASSWDS 或 abc/./etc/passwd 或
             xyz//etc/passwd 那就嘿嘿嘿 ... 好玩了。


[patch.0] 在 stuff.c 中加上 real_path() 这个函数:


/* ----------------------------------------------------- */
/* transform to real path & security check               */
/* ----------------------------------------------------- */


int
real_path(path)
  char *path;
{
  int ch, level;
  char *source, *target;

  level = 0;
  source = target = path;

  for (;;)
  {
    ch = *source;

    if (ch == '/')
    {
      int next;

      next = source[1];

      if (next == '/')
      {
        return 0;               /* [//] */
      }
      else if (next == '.')
      {
        next = source[2];

        if (next == '/')
          return 0;             /* [/./] */

        if (next == '.' && source[3] == '/')
        {
          /* -------------------------- */
          /* abc/xyz/../def ==> abc/def */
          /* -------------------------- */

          for (;;)
          {
            if (target <= path)
              return 0;

            target--;
            if (target[-1] == '/')
              break;
          }

          source += 4;
          continue;
        }
      }

      level++;
    }

    *target = ch;

    if (ch == 0)
      return level;

    target++;
    source++;
  }
}


[patch.1] bbs.c 的 cite_post()

┌—
│  fname[30] = '\0';
│  sprintf(genbuf, "man/%s/%s", currboard, fpath);
│  if (invalid_fname(fpath) || !real_path(genbuf) || dashd(genbuf))
└—

[pathc.2] gem.c (或 announce.c) 的 g_newitem() g_newname()

┌—
│  sprintf(fpath, "%s/%s", pm->path, fname);
│  if (invalid_fname(fname) || !real_path(fpath))
│  {
│    mesg = err_filename;
│  }
│  else
│  {
│    if (dashf(fname) || dashd(fname))
│    {
│      mesg = err_dup_fn;
│    }
└—

[备注]
       写 bgopherd.c (gopher daemon for bbs) 的时候,
        发现这个 security hole,几乎所有的 TAnet BBS 程式都
        有类似的问题,如果有亲朋好友开站的,就通知他吧 !

---------------------------------------------------------------------

        n = real_path(path) 的用法是,传回值 n = 0 表示有错,
        举例来说:

    (1) path = "man/story/plover/memory"
        ==> [story] 板精华区的 [plover/memory] (往事追忆录)
        ==> n = 3,而 path 还是 "man/story/plover/memory",
            "man"  是第0层目录。

    (2) path = "man/nthu/../hsinchu/eat"
        ==> [nthu] 板指向 [hsinchu] 板的 [eat] (吃在新竹)
        ==> path 转换成 "man/hsinchu/eat"
        ==> n = 2  表示第二层目录。

    (3) path = man/nthu/../../.PASSWDS
        ==> n = 0,如果不挑出来的话,就成了 .PASSWDS。

    (4) path = man/nthu//vmunix
        ==> n = 0,如果不挑出来的话,就成了 /vmunix。

    (5) path = man/nthu/./etc/passwd
        ==> n = 0,如果不挑出来的话,就成了 /etc/passwd。
            ( 对于某些 UNIX 而言 /./ 相当于 // )

十二 bbs_src档案列表(firebirdbbs)

 /bbs_src/

comm_lists.c      外部程式定义档(modify by HYD),系统功能键定义档

delete.c          版面,精华区,user id的删除定义档

modes.h           定义各种外部程式的标头档(modify by HYD)

modetype.c       定义一些外部程式(modify by HYD)

bbs.c            主功能设计,包括备份讯息(modify by
HYD),query,crosspost
                 匿名版面设定,deny a user,区段删除,转贴精华区功能

main.c
包括login,logout,进站的前置动作,如notepad,填写完整资料
                 系统寻人名册列表,萤幕锁定,情书通知,好友上站通知,
                 删除重复login,欢迎统计人数棒(下棒),系统人数过多讯息

,帐号核对,删除重复login,不正授_线保留部份,设定留言板mode

register.c       有关注册手续部份(modify by HYD)
bbsrf.c          欢迎统计系统负荷(下棒)

delete.c         删除讨论区, 移除精华区,砍除帐号,自杀
xyz.c            工具箱,编修系统档案功能,bbsnet启动设定,terist启动设定
                 (即BBSDOOR的部份)

mail.c           reply mail,del mail,forward mail...等功能程式

record.c         记录append_num_records(),get_num_records().等函式

more.c
修改more.c中的printacbar().....行数可以加的更大....原本5行
                 拿掉上下两棒..共七行

bbs_src/local_utl以下放一些bbs小程式
  repass.c
  ......
   ......

bbs_src/innd---->bbs to inn news server转信程式
  innbbsd
  bbsrnnp
  bbslink
  ctlinnbbsd
  bbspost

十三 系统问题
    1 无法区段删除
      请rm /home/bbs/boards/.tmpfile

十四 附录:

      以下是写这份文件时参考的资料:

      ftp://ftp.csie.nctu.edu.tw/pub/bbs/PhoenixBBS.README
      file://ftp.csie.nctu.edu.tw/pub/bbs/doc/InternetEmail
      file://ftp.csie.nctu.edu.tw/pub/bbs/misc/mail2bbs/README
      README of bbsinnd
      --
                      FAQ of BBS installation
      Shih-Kun Huang <skhuang@csie.nctu.edu.tw> 整理
      收录 tw.bbs.admin.installbbs  常见问题.
     --
  发信人: Shuo.bbs@BBS.me.nctu (累的半死的小硕硕), 信区: installbbs
  标  题: Re: Email post 身份确认?
  发信站: 交大机械 BBS 站 (Tue Jan 23 16:07:43 1996)
  转信站:
cis_nctu!news.cis.nctu!news.cc.nctu!ccnews.NCTU.edu.Tw!nctumebbs
      --
  [原作者:sengtui]

=============================================================================
      --
  发信人: chrisc.bbs@bbs.cjcicm (chrisc), 信区: installbbs
  标  题: bmpost 秘笈大公开!
  发信站: 中国工商资讯站 (Fri May  5 09:52:26 1995)
  转信站:
cis_nctu!news.cis.nctu!news.csie.nctu!bbsroute!ncubbsroute!news.ncu!ne
      --
  发信人: Jonen.bbs@bbs.yuntech (●资管小超人●), 信区: installbbs
  标  题: PhoenixBBS 4.0 精华区档案格式说明
  发信站: 云林技术学院蓝天使 BBS (Fri Aug  4 09:49:14 1995)
  转信站: cis_nctu!news.cis.nctu!news.csie.nctu!aidebbs!YUNTECH

  发信人: TerryLin.bbs@EMU486.Dorm9.nctu (Terry Lin), 信区: installbbs
  标  题: Sendmail.cf 正解 for Linux only
  发信站: 交大铁道资讯站 (Thu Aug 10 21:25:40 1995)
  转信站: cis_nctu!news.cis.nctu!news.csie.nctu!ncturail

  发信人: TerryLin.bbs@csie.nctu.edu.tw (Terry Lin), 信区: install
  标  题: 简易的精华区安装 shell script (for Phoenix BBS V4.0 only)
  发信站: 交大资工凤凰城资讯站 (Fri Apr 14 15:56:45 1995)
  转信站: bridge!bbsroute!phoenix

  发信人: oocat.bbs@bbs.ccu (□..喵..果粒猫), 信区: installbbs
  标  题: Re: 使用 linux 架站且 mail2bbs 用好的..
  发信站: 中正大学寂寞芳心小站 (Wed Oct 25 21:16:14 1995)

转信站:cis_nctu!news.cis.nctu!news.csie.nctu!news.cc.nctu!suncc.ccu!Feeling
  > 于 可爱的哲哲 (wildwolf.bbs@sexboy.Dorm3.nctu.edu.tw) 文中述及:

  发信人: tcdbc@cis_nctu (bg), 信区: installbbs
  标  题: Re: 装 mail2bbs 的问题
  发信站: 交大资科_BBS (Oct 26 09:57:34 1995)
  转信站: cis_nctu
  我的sendmail.cf 参考看看
     --
  发信人: tcdbc@cis_nctu (bg), 信区: installbbs
  标  题: Re: 装 mail2bbs 的问题
  发信站: 交大资科_BBS (Oct 26 10:02:03 1995)
  转信站: cis_nctu
  >[作者]: Shuo.bbs@BBS.me.nctu(对爱情感到迷惑的小硕硕)
  > 在 wildwolf.bbs@csie.nctu.edu.tw (可爱的哲哲) 的文章中提到:

  发信人: wildwolf.bbs@sexboy.Dorm3.nctu (可爱的哲哲), 信区:
installbbs
  标  题: Re: 我 mail2bbs 还是弄不起来...
  发信站: Coba BBS (Fri Oct 27 22:18:10 1995)
  转信站:
cis_nctu!news.cis.nctu!news.csie.nctu!bbsroute!ncubbsroute!news.ncu!ne
   【 在 flybb.bbs@aidebbs.edu.tw (乖乖□ㄚ彭) 的大作中提到: 】

                                  文件总整理  duba@hole.touc.edu.tw








--
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□          深圳大学荔园晨风 BBS 站为大家提供以下服务:          □
□    BBS: bbs.szu.edu.cn               FTP: bbs.szu.edu.cn     □
□    MUD: bbs.szu.edu.cn 5000          WWW: bbs.szu.edu.cn     □
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.1]


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

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