(inburst_at_263.net)
如何成为Sporum论坛的管理员
by stardust [email protected]
前几天在网上瞎逛,撞进了一个介绍Linux的站点,站点本身制作平平,但它有一个看起来还不错的论坛.页面的底部提供了一个叫"Powered by Sporum1.5.2"的链接,指向论坛程序的官方主页.从那里我知道了Sporum是用Perl写的,以MySQL为后台数据库,注册用户可以在论坛发贴子,允许用户订制自己的偏好,并以cookies进行身份验证.这个使我不由得想到了wwwthreads这个著名的论坛程序,从架构和功能上Sporum都和它很相似.而在此不久之前,wwwthreads已被发现有安全漏洞,可以使任何普通用户成为论坛的管理员.这使著名的安全资源站点packetstorm遭了殃,导致它使用了wwwthreads的论坛被人劫持.想了解更多的细节,你可以读一下:
http://packetstorm.securify.com/0002-exploits/rfp2k01.txt
在这里rfp描述了他如何hack了论坛以及对基于WEB的数据库系统的分析,很有启发性,值得一读.rfp在他的文章里指出wwwthreads的安全漏洞在于没有对从表单来的用户输入进行全面的检查.既然Sporum那么象wwwthreads,会不会也存在相似的问题呢?
好,那么让我们来看看吧,从linuxberg很容易地可以得到Sporum的1.5.2版.和wwwthreads一样,Sporum允许用户订制自己的偏好你可以订制贴子如何显示,如何排列.wwwthreads正是死在这,那么Sporum呢?在User.pm的可以找到相关的程序片断:
sub save_preferences1{
my ($self, $STATE) = @_;
my ($STATE, $spdb) = map{ $self->{$_} } qw(STATE spdb);
my $DBH = $spdb->{‘dbh’};
my ($postsper, $myuid, $uid, $prev_op) =
map{ $STATE->{$_} } qw(mypostsper myuid uid prev_op);
# — check the uid — thanks Tim W from solutionscripts.com
# — if uid ne myuid
if($uid != $myuid){
# — need admin right to change the profile