admin/database.php
[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);
};
[/php]
备份数据库可以直接写出shell
我们可以insert一个shell
然后备份制定的表
利用数据查询
执行
[php]
insert into ecs_wholesale values(2,1,'',1,1,1)
[/php]
然后在进行备份ecs_wholesale 这个表
然后我们备份文件名设置成1.php.sql
利用解析漏洞
就可以获得一个shell了
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论