转自http://www.2cto.com/Article/201309/241568.html
dede的漏洞公认的多,接手这个网站也接触了不少,现在就把几种接触到的或者了解到的漏洞记录下来,让大家可以提高警惕,防止网站被攻击。
1.dede dialog目录下的配置文件漏洞 如果有能力的同学最好好好研究下这个目录下的文件,漏洞太多了,先只说我遇到的一处 在include/dialog下的config.php第35行
if($cuserLogin->getUserID() <=0 )
{
if(empty($adminDirHand))
{
ShowMsg("<b>提示:需输入后台管理目录才能登录</b><br /><form>请输入后台管理目录名:<input type='hidden' name='gotopage' value='".urlencode($dedeNowurl)."' /><input type='text' name='adminDirHand' value='dede' style='width:120px;' /><input style='width:80px;' type='submit' name='sbt' value='转入登录' /></form>", "javascript:;");
exit();
}
$adminDirHand = HtmlReplace($adminDirHand, 1);
$gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);
echo "<script language='javascript'>location='$gurl';</script>";
exit();
}
修改方案:$gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);上面添加如下语句: $adminDirHand = HtmlReplace($adminDirHand, 1);
2.dede group.php页面sql注入漏洞 具体在group/global.inc.php中
$db->SetQuery("SELECT G.groupname,G.groupid,G.des,G.groupimg FROM #@__group_user AS U LEFT JOIN #@__groups AS G ON U.gid=G.groupid WHERE U.uid IN({$_GROUPS[‘_vars’][‘mids’]}) AND U.isjoin=1 AND U.gid<>$id LIMIT 0,6");
$id直接来自用户的输入。应该给$id加过滤 3.dede 5.7版本sql注入漏洞 漏洞位置:/member/ajax_membergroup.php 漏洞原因:没有对membergroup变量进行过滤 4.wap跨站攻击 漏洞文件:wapphp第39行
解决方式:echo htmlspecialchars($pageBody); 5.dede搜索模块sql注入 漏洞文件 : plus/search.php文件存在变量覆盖漏洞,导致$typeid能被二次覆盖,产生sql注入漏洞。 解决方式:官网下载补丁吧. 6.dede 5.6版本任意sql注入漏洞 原因:形成原因:由于dedecmsv5.6的全局机制可以任意给其赋值,而且高级搜索功能/plus/advancedsearch.php中的$sql变量未初始化,导致高级搜索功能可以绕过模板定义直接执行任意SQL语句。 解决方法:对高级搜索功能/plus/advancedsearch.php中的$sql变量初始化 7.dede全局变量漏洞: 漏洞文件:include/common.inc.php 解决方法:
在 /include/common.inc.php 中 找到注册变量的代码
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}
修改为
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) {
if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){
exit('Request var not allow!');
}
${$_k} = _RunMagicQuotes($_v);
}
}
8.dede feedback.php页面漏洞 原因:DedeCMS的plus\feedback.php中对变量 $typeid未做过滤,导致SQL注入漏洞。 解决方式:官方有补丁
9.dede变量覆盖漏洞 安装完了删除了install就解决了 10.dede圈子搜索漏洞 漏洞页面:/group/search.php 解决方式:第16行: 1$keyword = htmlspecialchars(addslashes($keyword));
11.dede官方源码漏洞
源码文件:include/shopcar.class.php文件第8行: 解决方式:删除@eval(file_get_contents(‘php://input’));
12.dede新版本变量覆盖漏洞 文件include/common.inc.php 解决方式: CheckRequest($_REQUEST); 在下面添加 CheckRequest($_COOKIE);
13 .dede文件包含漏洞 漏洞文件:Include/payment/alipay.php Include/payment/yeepay.php 解决方式:官方有补丁
14.dede样式分享XSS漏洞 漏洞文件plus/bshare.php 解决方式: plus目录下的bshare.php文件117行 $uuid = isset($uuid)? $uuid : ”;改成 $uuid = isset($uuid)? htmlspecialchars($uuid) : ”;
阅读全文
以前一直不知道,模版头尾更新了以后还得一个一个模版去点一次 提交 更新数据
今天看了下代码,原来是\e\data\tmp下生成了模版缓存,以dt_开头的就是
dt_tempindexpage.php就是首页的缓存
难怪我说怎么更新了头尾,怎么首页等模版不变的~
然后在后台数据更新那里有个 清除临时文件和数据 可以把这些缓存删除~
以后更新了头尾直接点这里就可以了~不用每个模版去点一次 提交
阅读全文
昨天给小孩下了个动画片,发现字幕是单独的
在电脑看的话,播放软件一般可以外挂字幕
但是用电视看的话就没办法外挂了
最好的办法,把字幕给放进mkv文件里去
我下了一个mkvtoolnix绿色版
发现是英文的,即使在选项里选了中文还是没用,大部分文字还是英文
然后我们点红圈那里导入需要加字幕的视频
再按第二次上图红圈那里导入字幕
导入成功,看到了吗?
还需要设置一下语言
以及字幕的格式,这个可以用editplus另存为,就可以看出是什么格式了,或者我们直接把字幕文件转为UTF-8格式,然后这里也选utf-8格式,再按下面红圈的按钮
等一下子,右下绿色进度条变为100%就可以了
阅读全文
判断用:
这是内容页
这是首页
这是栏目页
其它页面
阅读全文
计划任务功能 :定时生成,定时采集,其实很简单
利用官方的计划任务 我们可以轻松的制作定时采集,定时生成栏目以及内容页面 其实思路很简单 大家把采集地址完整的复制下来,写到程序里面 比如我的网站下 国内新闻 的采集地址是http://localhost/e/admin/DoCj.php?enews=CjUrl&classid[]=1 那么新建一个dscj_task.php文件 内容如下 <?php /* 计划任务名称:自动采集 */ if(!defined(‘InEmpireCMS’)) { exit(); } echo ‘<IFRAME frameBorder="0" scrolling="no" src="http://localhost/e/admin/DoCj.php?enews=CjUrl&classid[]=1" style="HEIGHT:0;VISIBILITY:inherit;WIDTH:0;Z-INDEX:1"></IFRAME>’; ?> 然后保存文件,并将dscj_task.php文件复制到帝国系统的e/tasks目录里。 说明:依情况修改成你自己的采集地址。 然后增加计划任务记录就可以运行了 我已经试验成功 每天每小时的5分钟定时采集 定时生成(思路一样) 还不明白的 看看官方的介绍:http://bbs.phome.net/ShowThread/?threadid=45614&forumid=35
有空可以试验一下
阅读全文
在帝国安装包里的 常见问题.html 里面有说明的
UPDATE `phome_enewsuser` SET `password` = ‘a024187abaf1c7a6392128a90493e99b’, `salt` = ’empire’, `salt2` = ’empirecms’ WHERE `phome_enewsuser`.`userid` =1;
忘记后台认证码 是在数据库配置文件的/e/config/config.php的$ecms_config[‘esafe’][‘loginauth’]变量里
后台5次输入错密码就必须等60秒也是在这个文件/e/config/config.php,设置 ‘loginnum’=>5, ‘logintime’=>60, 可以改成 ‘loginnum’=>500, ‘logintime’=>0, 呵呵呵~这样可以错500次,即使错了500次,只要等0分钟又可以下一个500次
阅读全文
有个客户放了一大堆广告代码,叫了N遍让他分成几个广告
但是,对于某些人来说这比登天还难
今天再仔细查看了后台代码
DEDE程序没做任何限制
然后我想到了数据库字段的字数限制
然后进数据库看了一下
dede_myad表里的 normbody 字段是text类型的
查了一下资料
mysql的text类型有64K长度限制的,MEDIUMTEXT中型是2G,LONGTEXT大型是4G
然后通过phpmyadmin改字段类型吧,下面是自动生成的语句,估计可以直接用的
ALTER TABLE `dede_myad` CHANGE `normbody` `normbody` MEDIUMTEXT CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL
可以顺便连 过期广告 那个字段也改了
ALTER TABLE `dede_myad` CHANGE `expbody` `expbody` MEDIUMTEXT CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL
阅读全文
我喜欢把图片直接放在CSS文件所在目录
所以就弄了一个正则
url\([\"]?([^\"]*)\/([^\/]*).(jpg|gif|png)[\"]?\)
替换为
url("\2.\3")
这样类似这样的路径
url(../images/rank.png)
就变成了
url("rank.png")
统一了
阅读全文
昨晚访问正常运行了一段时间后,访问vps中的网站,明显发现很慢
重启apache和mysql没有明显改善
重启mysql还出了问题,出现一个错误提示
Timeout error occurred trying to start MySQL Daemon
然后我以为是session问题~把VPS上的session全手工删除了
结果~~~~~~~~~~~~~~~
启动是启动了,但是网站数据全没了(表面没了,分类啥的还在)
于是进\var\lib\mysql去看了一下,数据表什么的都还在,幸好幸好
然后忽然想到了日志文件,进\var\log\httpd去一看
我靠,最大的文件100M,还有很多30~50M的
正在使用的都有30M左右,会不会是每次访问都要往这个30M大的文件中写入东西而导致apache缓慢
然后我把他们全删了~然后,重启APAChe后速度飞快
但是我们不可能天天登陆删日志啊~
于是使用可终极手段
干脆关闭日志功能
打开Apache的/etc/httpd/conf/httpd.conf配置文件,找到以下配置信息:
ErrorLog logs/error.log
CustomLog logs/access.log common
请在上述两行配置代码前加“#”号注释掉
实际上不止这两句,反正是以这两个词ErrorLog、CustomLog开头的统统注释掉
整个世界又清静了~
然后再解决mysql数据全没了的问题,因为是我误删session,所以系统认为那些数据表还在使用,就不给再访问
打开万能的phpmyadmin,浏览表,看到那些表的描述是 in use ,然后选中,在底下选 修复 再提交
OK,正常了
阅读全文
因为是VPS,我是从官方下载安装的apache和php
然后我用探针差了一下,PHP版本(php_version):5.3.3
然后我修改DEDE后台验证文件login.php
发现65行$svali = strtolower(GetCkVdValue());
这个取值为空,也就是GetCkVdValue()函数无用
在include/common.func.php找到这个函数
里面提到session
然后上网一查,有人说是php.ini配置问题
经几台机器测试,主要原因还是在php.ini的设置上。 大约900多行,有两个关于session的设置,采用默认的就可以,已经修改过的参照下面执行
;session.save_path = "/tmp" session.cookie_path = /
本机和服务器上都测试过,修改了这两个参数后,再次登录dede,就会提示验证码不正确,改回默认,一切OK
我在/etc/php.ini中查了一下这两个参数,其中一个
session.save_path = /var/lib/php/session
这个路径果然不是默认的~
然后找到这个文件夹~一查属性,不是777
果断改777
一切终于正常了~
阅读全文
第 31 页,共 103 页« 最新«...1020...2930313233...405060...»最旧 »