当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-088782

漏洞标题:西安某网站建设公司官网任意文件上传致getshell

相关厂商:西安某网站建设公司

漏洞作者: zhxs

提交时间:2014-12-29 10:34

修复时间:2015-02-12 10:36

公开时间:2015-02-12 10:36

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-29: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-02-12: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

这网站做的网站还不少 网站经过安全联盟认证带绿标的,自己网站的安全都不要了 真想把首页给他改了 可俺不是那种人啊!~

详细说明:

俺悄悄的告诉你们哈 好吧 其实俺是想找这公司建的网站的通用0day 不过一不小心手抖了 就把官网shell了!
开始:
在那夜黑风高的夜晚
俺无聊啊经过一番查找、找到目标:http://www.liyouit.com/ 看了看我擦 网站好多,结果尼玛后台都不不到一个 无奈开始对官网下手
就在这时看到有个留言板、http://www.liyouit.com/feedbook.php 嘿嘿 这可是好消息 准备插入点xss、在下面看到 居然有个上传附件的地方

44.jpg


我擦 手抖随便一点居然上传成功了!嘿嘿 果断打开连接看看

55.jpg


找到菜刀 果断连接

66.jpg


shell 到手!

漏洞证明:

33.jpg


77.png


看看代码feedbook.php

<tr>
<td width="45%"><input name="fujian" type="text" id="fujian" size="35" maxlength="100"></td>
<td width="55%"><iframe name='mainFrame1' frameborder=0 height=23 scrolling=no src='../scwj_client.php?fn=fujian' width=300></iframe></td>
</tr>


这里:../scwj_client.php?fn=fujian
然后再看:scwj_client.php
http://www.liyouit.com//scwj_client.php
直接访问上传文件

88.jpg


再看看代码

<?php
$fn=trim(htmlspecialchars($_GET['fn']));
$fn=!empty($fn) ? $fn : '' ;
if (!empty($_FILES['postfile']['tmp_name']))
{
$picName = time() . rand(1000, 9999) . strrchr($_FILES['postfile']['name'], '.');
$file_size = $_FILES['postfile']['size'];
$uploadDir = "ClientUploadFiles/";
$dstFile = $uploadDir . $picName;
$dstFile1 = substr($dstFile,-4);
$dstFile2 = substr($dstFile,0,-4);
if ($dstFile2==".php" || $dstFile2==".asp" || $dstFile2==".exe" || $dstFile2=="aspx" || $dstFile2==".htm" || $dstFile2==".html")
{
echo "非法上传!<A HREF=?fn=$fn>返回重新上传</A>";
exit();
}
elseif ($file_size > 10000000) {
echo "上传文件大小超过限制!<A HREF=?fn=$fn>返回重新上传</A>";
exit();
}
else
{

if (!move_uploaded_file($_FILES['postfile']['tmp_name'], $dstFile))
{
echo "上传失败,<A HREF=?fn=$fn>返回重新上传</A>";
exit();
}
else
{
echo "上传成功!";
echo "<script language=javascript>parent.document.bookform.$fn.value='$dstFile';</script>";
exit();
}

}
}
?>


不知道这代码是管啥用的0.0

修复方案:

加上传验证,文件名控制那啥的 你们比我懂0.0

版权声明:转载请注明来源 zhxs@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝