代码审计:ECShop V2.7.3 GBK release1106注入0day及修复

  • A+
所属分类:Seay信息安全博客

显示不全请点击全屏阅读

C0deplay Team    j8g 

 
看代码 
 
/* 修改个人资料的处理 */
elseif ($action == ‘act_edit_profile’)
{
    include_once(ROOT_PATH . ‘includes/lib_transaction.php’);
 
    $birthday = trim($_POST[‘birthdayYear’]) .’-‘. trim($_POST[‘birthdayMonth’]) .’-‘.
    trim($_POST[‘birthdayDay’]);
    $email = trim($_POST[’email’]);
    $other[‘msn’] = $msn = isset($_POST[‘extend_field1’]) ? trim($_POST[‘extend_field1’]) : ”;
    $other[‘qq’] = $qq = isset($_POST[‘extend_field2’]) ? trim($_POST[‘extend_field2’]) : ”;
    $other[‘office_phone’] = $office_phone = isset($_POST[‘extend_field3’]) ? trim($_POST[‘extend_field3’]) : ”;
    $other[‘home_phone’] = $home_phone = isset($_POST[‘extend_field4’]) ? trim($_POST[‘extend_field4’]) : ”;
    $other[‘mobile_phone’] = $mobile_phone = isset($_POST[‘extend_field5’]) ? trim($_POST[‘extend_field5’]) : ”;
    $sel_question = empty($_POST[‘sel_question’]) ? ” : $_POST[‘sel_question’];
    $passwd_answer = isset($_POST[‘passwd_answer’]) ? trim($_POST[‘passwd_answer’]) : ”;
 
    /* 更新用户扩展字段的数据 */
    $sql = ‘SELECT id FROM ‘ . $ecs->table(‘reg_fields’) . ‘ WHERE type = 0 AND display = 1 ORDER BY dis_order, id’;   //读出所有扩展字段的id
    $fields_arr = $db->getAll($sql);
 
    foreach ($fields_arr AS $val)       //循环更新扩展用户信息
    {
        $extend_field_index = ‘extend_field’ . $val[‘id’];
        if(isset($_POST[$extend_field_index]))
        {
            $temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr(htmlspecialchars($_POST[$extend_field_index]), 0, 99) : htmlspecialchars($_POST[$extend_field_index]);
            $sql = ‘SELECT * FROM ‘ . $ecs->table(‘reg_extend_info’) . ”  WHERE reg_field_id = ‘$val[id]’ AND user_id = ‘$user_id'”;
            if ($db->getOne($sql))      //如果之前没有记录,则插入
            {
                $sql = ‘UPDATE ‘ . $ecs->table(‘reg_extend_info’) . ” SET content = ‘$temp_field_content’ WHERE reg_field_id = ‘$val[id]’ AND user_id = ‘$user_id'”;
            }
            else
            {
                $sql = ‘INSERT INTO ‘. $ecs->table(‘reg_extend_info’) . ” (`user_id`, `reg_field_id`, `content`) VALUES (‘$user_id’, ‘$val[id]’, ‘$temp_field_content’)”;
            }
            $db->query($sql);
        }
    }
 
    /* 写入密码提示问题和答案 */
    if (!empty($passwd_answer) && !empty($sel_question))
    {
        $sql = ‘UPDATE ‘ . $ecs->table(‘users’) . ” SET `passwd_question`=’$sel_question’, `passwd_answer`=’$passwd_answer’  WHERE `user_id`='” . $_SESSION[‘user_id’] . “‘”;
                echo $sql;
        $db->query($sql);
    }
上图 
 

Tags:

ECshop漏洞,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡
代码审计:ECShop V2.7.3 GBK release1106注入0day及修复