修改一个Discuz 7.2的Register.PHP文件 但是报错!急求解决!
if(!($rs=$db->query("select xkzh,xkxm,xksfzh from {$tablepre}xk where xkzh='$xkzh'"))
这里,如果我没看错的话,你在最后少了一个右括号“)”,加上试试
看看你数据库是什么编码
建议用utf-8编码,这样省了不少问题
不行,必须同步,否则有乱码
如果你论坛没数据,建议你下载最新版
补充:知道你的问题了,你用dw编辑保存时默认的gb2312编码,你可以调整一下dw的默认编码,或用EditPlus这个小编辑器编辑,保存时选择utf-8编码
看一下config目录下的config_globalphp文件,用记事本打开
检查以下这几个设置是否有错。for Discuz X25
$_config['db'][1]['dbhost'] = 'localhost'; //数据库地址$_config['db'][1]['dbuser'] = 'root'; //连接数据库用户
$_config['db'][1]['dbpw'] = 'root'; //连接数据库密码
$_config['db'][1]['dbcharset'] = 'gbk'; //数据库使用字符
$_config['db'][1]['pconnect'] = 0; //是否长连接
$_config['db'][1]['dbname'] = 'ultrax'; //数据库名称
$_config['db'][1]['tablepre'] = 'pre_'; //数据库前辍
____Discuz60__________injection __0day
// 允许程序在 register_globals = off 的环境下工作
$onoff = (function_exists('ini_get')) ini_get('register_globals') : get_cfg_var('register_globals');
if ($onoff != 1) {
@extract($_POST, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
}
$self = $_SERVER['PHP_SELF'];
$dis_func = get_cfg_var("disable_functions");
/===================== 身份验证 =====================/
if($admin['check'] == "1") {
if ($_GET['action'] == "logout") {
setcookie ("adminpass", "");
echo "<meta http-equiv=\"refresh\" content=\"3;URL="$self"\">";
echo "<span style=\"font-size: 12px; font-family: Verdana\">注销成功<p><a href=\""$self"\">三秒后自动退出或单击这里退出程序界面 >>></a></span>";
exit;
}
if ($_POST['do'] == 'login') {
$thepass=trim($_POST['adminpass']);
if ($admin['pass'] == $thepass) {
setcookie ("adminpass",$thepass,time()+(1243600));
echo "<meta http-equiv=\"refresh\" content=\"3;URL="$self"\">";
echo "<span style=\"font-size: 12px; font-family: Verdana\">登陆成功<p><a href=\""$self"\">三秒后自动跳转或单击这里进入程序界面 >>></a></span>";
exit;
}
}
if (isset($_COOKIE['adminpass'])) {
if ($_COOKIE['adminpass'] != $admin['pass']) {
loginpage();
}
} else {
loginpage();
}
}
/===================== 验证结束 =====================/
// 判断 magic_quotes_gpc 状态
if (get_magic_quotes_gpc()) {
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
}
---------------------------------------------------------------------------------------------------------------------
http://wwwdiscuznet/admin/loggingphpaction=login
可以跳到其它目录
注册登录后利用
http://wwwdiscuznet/searchphpuser%id=100
可以进行injection……
只能手工注射
注意:showpath里必须包含用户自己的路径
如果限制的话,还可以向上跳,向上级传文件的时候,不能直接
http://www http://wwwdiscuznet/user/up/_id=///(注射语句)
就包含用户路径
http://wwwdiscuznet/memberphp rNumber=1402257EE8F
不然不能进行注射。
文件漏洞代码如下
<
define('__SYSTEM_ROOT', '');
include dirname(__FILE__)'/framework_gb/frameworkphp';
using('SystemDataData');
using('SystemDataPluginsOption');
using('SystemPagePage');
using('SystemSmartySmarty');
using('SystemFunctionsFunctions');
require_once __SYSTEM_ROOT"globalphp";
require_once __SYSTEM_ROOT"varsphp";
$db=new stdClass();
$db=$Data->getDB();
/
echo '<pre>';
print_r($Data);
/
>
可以直接注射,拿到后台密码。
好象是跨脚本漏洞
你好,你这个是数据库问题,如果之前论坛是正常的话,现在出现这种状况的可能原因有两种:
你的数据库信息改动了,导致论坛链接不上数据库,你可以查下你的数据库,或者联系空间商,帮你看下。
你的config/config_globalphp改动过!检查这文件里面的数据库用户名,密码,数据库名和你的实际数据库是否相符
一般是以上两种情况,如有问题,可以再问我
0条评论