帝国论坛 → 帝国网站管理系统交流区 → 帝国CMS使用交流 → 谁帮我看看这代码有漏洞吗? 【本版专题贴子】  
主题:谁帮我看看这代码有漏洞吗? [加入收藏夹]   

qwer88
用户头衔:进士

精华贴   :0
发贴数   :1292
经验值   :5989
注册时间:2008-12-11
信息 搜索 好友 发送悄悄话 【精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
谁帮我看看这代码有漏洞吗?
<?PHP
        require('../../class/connect.php');
        require('../../class/db_sql.php');
        $link=db_connect();
        $empire=new mysqlquery();
function PLAddNews($add,$userid,$username){
        global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r;
        $dr=Explode("\r\n",$add[lrebn_data]);
        $dn=count($dr);
        $no=0;
        for($i=0;$i<$dn;$i++){
                $dr[$i]=RepPostVar2($dr[$i]);
                $data=Explode('        ',$dr[$i]);
                $dn2=count($data);
                For($ii=0;$ii<$dn2/2;$ii++) {
                        $n=$ii*2;
                        $addr[title]=RepPostVar2($data[$n]);
                        $addr[newstime]=date('Y-m-d H:i:s');
                        if($dn2==3){
                                $addr[code]=RepPostVar2($data[$n+2]);
                        }
                        $addr[shuzhi]=RepPostVar2($data[$n+1]);
                        if($addr[shuzhi]){
                                AddNews($addr,$userid,$username);
                                $no++;
                        }
                }
        }
        printerror2('成功添加'.$no.'条信息!','ListNews.php?classid='.$add[classid]);
}
function ErrorLogger($errMsg){
  $logger = fopen('ErrorLog.txt', 'a+');
  fwrite($logger, date('Y-m-d H:i:s')." ".$errMsg."\r\n");
}
$_POST['lrebn']=RepPostVar2($_POST['lrebn']);
$_POST['code']=RepPostVar2($_POST['code']);
$_POST['classid']=RepPostVar2($_POST['classid']);
$_POST['enews']=RepPostVar2($_POST['enews']);
$_POST['ids']=RepPostVar2($_POST['ids']);
if($_POST['lrebn']=='ajax'&&$_POST['code']&&$_POST['classid']){
        $classid=(int)$_POST[classid];
        $code=RepPostVar2($_POST[code]);
        $r=$empire->fetch1("select shuzhi,code from {$dbtbpre}ecms_resist where classid=$classid and title='$code'");
        $html='无';
        IF($r[shuzhi]) {
                $html=$r[shuzhi].'||||'.$r[code];
        }
        Echo $html;
}
if($_POST['enews']=='lrebn_select'){
        if(!$_POST['ids']){return;}
        $idr=explode(',', RepPostVar($_POST['ids']));
        for ($i=0; $i < count($idr); $i++) {
                $fid=$idr[$i];
                if (is_numeric($fid)) {
                        $fids.=$ft1.$fid;
                        $ft1=',';
                }else{
                        $fr=explode('-', $fid);
                        for ($ii=0; $ii < count($fr); $ii++) {
                                $ft1=$ft1?$ft1:'';
                                $fids.=$ft1.$fr[$ii];
                                $ft1=',';
                                $m[$fid][]=$fr[$ii];
                        }
                }
        }
        if ($fids) {
                $sql=$empire->query("select fvalue,fid from {$dbtbpre}enewsf where fid in ($fids)");
                while($r=$empire->fetch($sql))
                {
                        $j[$r['fid']]=explode('|',$r['fvalue']);
                        if (in_array($r['fid'], $idr)) {
                                $json[$r['fid']]=explode('|',$r['fvalue']);
                        }
                }
        }
        foreach ($m as $k => $v) {
                $j[$k]=array();
                foreach ($v as $k2 => $v2) {
                    $j[$k]=array_merge($j[$k], $j[$v2]);
                }
                $json[$k]=array_values(array_flip(array_flip($j[$k])));
        }       
        echo json_encode($json);
}
?>




2026-09-26 08:15:41 已设置保密 顶部 回复 引用 报告 编辑 删除

xfight_xfight
用户头衔:进士

精华贴   :0
发贴数   :1113
经验值   :4642
注册时间:2008-01-19
信息 搜索 好友 发送悄悄话 【免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

<?PHP
        require('../../class/connect.php');
        require('../../class/db_sql.php');
        $link=db_connect();
        $empire=new mysqlquery();
function PLAddNews($add,$userid,$username){
        global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r;
        $dr=Explode("\r\n",$add[lrebn_data]);
        $dn=count($dr);
        $no=0;
        for($i=0;$i<$dn;$i++){
                $dr[$i]=RepPostVar2($dr[$i]);
                $data=Explode('        ',$dr[$i]);
                $dn2=count($data);
                For($ii=0;$ii<$dn2/2;$ii++) {
                        $n=$ii*2;
                        $addr[title]=RepPostVar2($data[$n]);
                        $addr[newstime]=date('Y-m-d H:i:s');
                        if($dn2==3){
                                $addr[code]=RepPostVar2($data[$n+2]);
                        }
                        $addr[shuzhi]=RepPostVar2($data[$n+1]);
                        if($addr[shuzhi]){
                                AddNews($addr,$userid,$username);
                                $no++;
                        }
                }
        }
        printerror2('成功添加'.$no.'条信息!','ListNews.php?classid='.$add[classid]);
}
function ErrorLogger($errMsg){
  // 安全隐患: 未做路径/内容校验,且日志文件位于Web可访问目录,可能被读取或污染
  $logger = fopen('ErrorLog.txt', 'a+');
  fwrite($logger, date('Y-m-d H:i:s')." ".$errMsg."\r\n");
}
$_POST['lrebn']=RepPostVar2($_POST['lrebn']);
$_POST['code']=RepPostVar2($_POST['code']);
$_POST['classid']=RepPostVar2($_POST['classid']);
$_POST['enews']=RepPostVar2($_POST['enews']);
$_POST['ids']=RepPostVar2($_POST['ids']);
if($_POST['lrebn']=='ajax'&&$_POST['code']&&$_POST['classid']){
        $classid=(int)$_POST[classid];
        // 安全隐患: $code 仅经过 RepPostVar2 过滤,仍直接拼接进SQL,存在注入风险
        $code=RepPostVar2($_POST[code]);
        $r=$empire->fetch1("select shuzhi,code from {$dbtbpre}ecms_resist where classid=$classid and title='$code'");
        // 安全隐患: 输出内容未做HTML转义,可能导致XSS
        $html='无';
        IF($r[shuzhi]) {
                $html=$r[shuzhi].'||||'.$r[code];
        }
        Echo $html;
}
if($_POST['enews']=='lrebn_select'){
        if(!$_POST['ids']){return;}
        // 安全隐患: 仅使用 RepPostVar 过滤,后续直接拼接进SQL的 IN 子句,存在注入风险
        $idr=explode(',', RepPostVar($_POST['ids']));
        for ($i=0; $i < count($idr); $i++) {
                $fid=$idr[$i];
                if (is_numeric($fid)) {
                        $fids.=$ft1.$fid;
                        $ft1=',';
                }else{
                        $fr=explode('-', $fid);
                        for ($ii=0; $ii < count($fr); $ii++) {
                                $ft1=$ft1?$ft1:'';
                                $fids.=$ft1.$fr[$ii];
                                $ft1=',';
                                $m[$fid][]=$fr[$ii];
                        }
                }
        }
        if ($fids) {
                // 安全隐患: $fids 未强制转为整型,恶意输入可构造 SQL 注入
                $sql=$empire->query("select fvalue,fid from {$dbtbpre}enewsf where fid in ($fids)");
                while($r=$empire->fetch($sql))
                {
                        $j[$r['fid']]=explode('|',$r['fvalue']);
                        if (in_array($r['fid'], $idr)) {
                                $json[$r['fid']]=explode('|',$r['fvalue']);
                        }
                }
        }
        foreach ($m as $k => $v) {
                $j[$k]=array();
                foreach ($v as $k2 => $v2) {
                    $j[$k]=array_merge($j[$k], $j[$v2]);
                }
                $json[$k]=array_values(array_flip(array_flip($j[$k])));
        }      
        echo json_encode($json);
}
?>



厂房出租、厂房出售-www.changfangtong.com
2026-09-26 13:54:46 已设置保密 顶部 回复 引用 报告 编辑 删除

cnnb
用户头衔:探花

精华贴   :0
发贴数   :6555
经验值   :18800
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 【精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

这是火车头接口?




2026-09-27 06:18:26 已设置保密 顶部 回复 引用 报告 编辑 删除

qwer88
用户头衔:进士

精华贴   :0
发贴数   :1292
经验值   :5989
注册时间:2008-12-11
信息 搜索 好友 发送悄悄话 【免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

果真有漏洞




2026-09-28 18:27:12 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1