切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
YXcms最新版(YXcmsApp1.2.2)留言本xss[ CodeSec-2014-0006 ][复制链接]
发表于 2014-4-7 20:41:07 | 显示全部楼层 |!read_mode!

开发者漏洞预警 —— YXcms最新版(YXcmsApp1.2.2)留言本xss [ CodeSec-2014-0006 ]

漏洞编号: CodeSec-2014-0006

漏洞标题: YXcms最新版(YXcmsApp1.2.2)留言本xss

漏洞类型: xss

漏洞危害等级: 中等

漏洞状态: 漏洞发布,联系作者中...

漏洞细节:
见帖子内容

修补方案:
过滤

源码地址:
http://www.yxcms.net/

论坛备份源码地址:
http://pan.baidu.com/s/1pJ0PlQN

开发者回复: 暂无

漏洞文件
YXcmsApp1.2.2/protected/apps/default/controller/extendController.php
           session_starts();
           if($_POST['checkcode']!=$_SESSION['verify'] || empty($_SESSION['verify'])) $this->error('验证码错误,请重新输入');
           for($i=1;$i<count($tableinfo);$i++){
            if(is_array($_POST[$tableinfo[$i]['tableinfo']])){
               $data[$tableinfo[$i]['tableinfo']]=implode(',',$_POST[$tableinfo[$i]['tableinfo']]);
               $data[$tableinfo[$i]['tableinfo']]=$data[$tableinfo[$i]['tableinfo']]?in(deletehtml($data[$tableinfo[$i]['tableinfo']])):'';
            }else $data[$tableinfo[$i]['tableinfo']]=html_in($_POST[$tableinfo[$i]['tableinfo']]);
           }
           $data['ip']=get_client_ip();
           $data['ispass']=0;
           $data['addtime']=time();
           if(empty($urls[1])) $jump=$_SERVER['HTTP_REFERER'];
           else{
              $jurl=explode(',',$urls[1]);
              if(!empty($jurl[1])){
                $arr=explode('/',$jurl[1]);
                if(!empty($arr)){
                  $canshu=array();
                  foreach ($arr as $vo) {
                     $val=explode('=',$vo);
                     $canshu[$val[0]]=$val[1];
                  }
                }
              }
              $jump=url($jurl[0],$canshu); 
           }
           if(model('extend')->Extin($tableinfo[0]['tableinfo'],$data)) $this->success('提交成功请等待审核~',$jump);
           else $this->error('提交失败~');
         }


function html_in()代码如下:
//html代码输入
function html_in($str){
        $search = array (
                             "/\s+/",
                         "/<(\\/?)(scrīpt|i?frame|style|html|body|title|link|meta|\\?|\\%)([^>]*?)>/isU", 
                         /* "'<script[^>]*?>.*?</script>'si",  */
                                         "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU", 
                                        ); 
        $replace = array ("",
                                          "",
                                        );                          
        $str=@preg_replace ($search, $replace, $str);
        $str=htmlspecialchars($str);
        if(!get_magic_quotes_gpc()) {
                $str = addslashes($str);
        }
   return $str;
}

后台显示留言代码
                 if(!empty($list)){
                      foreach($list as $vo){
                          $cont.='<tr id="'.$vo['id'].'">';
                                                  $cont.='<td align="center"><input type="checkbox" name="delid[]" value="'.$vo['id'].'" /></td>';
                                                  for($i=1;$i<6;$i++){
                                                        if($tableinfo[$i]['tableinfo']) $cont.= '<td align="center">'.html_out($vo[$tableinfo[$i]['tableinfo']]).'</td>';
                                                  }
                                                  $cont.='<td><a href="'.url('extendfield/mesedit',array('tabid'=>$tableinfo[0]['id'],'id'=>$vo['id'])).'" class="edt">编辑查看</a>';
                                                  $cont.=$vo['ispass']?'<div class="lock" >取消</div>':'<div class="unlock">审核</div>';
                                                  $cont.='</td></tr>';
                       }
                       echo $cont;
                     }

function html_out()代码如下:
//html代码输出
function html_out($str){
        if(function_exists('htmlspecialchars_decode'))
                $str=htmlspecialchars_decode($str);
        else
                $str=html_entity_decode($str);

    $str = stripslashes($str);
        return $str;
}



附件: 你需要登录才可以下载或查看附件。没有帐号?加入Team
操千曲而后晓声,观千剑而后识器。

代码区

GMT+8, 2019-11-22 01:36

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部