COMMAND
Ultimate Bulletin Board
SYSTEMS AFFECTED
Ultimate Bulletin Board v5.3x
PROBLEM
Sean Malloy found following. There seems to be a bug with the
UBB under NT (don't believe Unix users of the UBB are faced
with the same problem). Of course it could be the version of
ActivePerl, combined with the bug in the board, but anyways...
By default, Member files are stored in the /cgi-bin/Members
directory. The members files are stored as numbers, with a .cgi
extension, eg: 00000001.cgi
Under unix, if you put in
http://www.url.blah/cgi-bin/Members/00000001.cgi
the server will return a 500 error, however, under NT with
ActivePerl (v5.07?), it will return something like this:
CGI Error
The specified CGI application misbehaved by not returning a complete set of
HTTP headers. The headers it did return are:
Number found where operator expected at
D:\CONTENT\wwwroot\data\ubb\Members\00000001.cgi line 2, near "Malby
1"
(Missing semicolon on previous line?)
syntax error at D:\CONTENT\wwwroot\data\ubb\Members\00000001.cgi line 2,
near "Malby
1"
Bareword found where operator expected at
D:\CONTENT\wwwroot\data\ubb\Members\00000001.cgi line 2, near "mypass"
(Missing operator before malby2?)
Bareword found where operator expected at
D:\CONTENT\wwwroot\data\ubb\Members\00000001.cgi line 4, near "//www"
(Missing operator before www?)
Semicolon seems to be missing at
D:\CONTENT\wwwroot\data\ubb\Members\00000001.cgi line 6.
Number found where operator expected at D:\CONTE
yay for UBB handing out our password (line 2) to anyone who wants
to read it. This does not work on every data file, it may
depends on wether the username has spaces in it, etc. However,
it creates a very large hole. You just need to get one of the
administrators data files, and as you could imagine, all hell
would break loose.
The people at Infopop/Madronapark offer a "Example Sites" list, a
listing of users with UBB (Theres a lot of them), so now you have
a big list of would be victims. Someone can go through, and test
each board.
SOLUTION
How to fix? Change the members path to something more like
xvc83nx9wy4nd0w74m3. That will solve it. Until someone guesses
the path. Security through obscurity. It won't hurt, but don't
put faith in the "that will solve it" schpeil.
From the ultimatebb homepage installation instructions:
D) Create a Members directory. All of the files in the Members
folder of your ZIP file should be stored in another directory
on your web server. You should create a new directory called
"Members" on your web server to store these Members CGI files.
It is imperative that you name this directory Members
(exactly); otherwise, the UBB will not function properly. You
should place this directory either as a subdirectory of your
CGI directory or above the web root, for security reasons.
Once you have created this new directory, upload all of the
files in the Members folder into it. These files must be
uploaded in ASCII mode, not BINARY.
So to fix this bug, all one has to do is place the Members
directory outside the web root.