### 简要描述:
Ecshop后台getshell-2
### 详细说明:
```
admin/database.php
if ($_REQUEST['act'] == 'dumpsql')
{省略若干
if (empty($_REQUEST['sql_file_name']))
{
$sql_file_name = $dump->get_random_name();
}
else
{省略若干
$sql_file_name = str_replace("0xa", '', trim($_REQUEST['sql_file_name'])); // 过滤 0xa 非法字符
$pos = strpos($sql_file_name, '.sql');
if ($pos !== false)
{
$sql_file_name = substr($sql_file_name, 0, $pos);
}
}省略若干
if (!@file_put_contents(ROOT_PATH . DATA_DIR . '/sqldata/' . $sql_file_name . '.sql', $dump->dump_sql))
{
sys_msg(sprintf($_LANG['fail_write_file'], $sql_file_name . '_' . $vol . '.sql'), 1, array(array('text'=>$_LANG['02_db_manage'], 'href'=>'database.php?act=backup')), false);
};
```
### 漏洞证明:
备份数据库可以直接写出shell
我们可以insert一个shell
然后备份制定的表
利用数据查询
执行
insert into ecs_wholesale values(2,1,'<?php phpinfo();?>',1,1,1)
然后在进行备份ecs_wholesale 这个表
然后我们备份文件名设置成1.php.sql
利用解析漏洞
就可以获得一个shell了
[<img src="https://images.seebug.org/upload/201311/25220608c9b84661ff6c9aec2e4b43fe6f263090.jpg" alt="QQ截图20131125215853.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25220608c9b84661ff6c9aec2e4b43fe6f263090.jpg)
[<img src="https://images.seebug.org/upload/201311/252206185a76b508179aee5b4cfbcd5e60aace0b.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/252206185a76b508179aee5b4cfbcd5e60aace0b.jpg)
[<img src="https://images.seebug.org/upload/201311/2522062688abc1902b8ed81a69ad66b587ab48a3.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/2522062688abc1902b8ed81a69ad66b587ab48a3.jpg)
暂无评论