您的位置 » 首页 » 代码审计,实用工具 » 代码审计:ECShop V2.7.3 GBK release1106注入0day及修复

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

发表于5年前 | 作者: seay | 分类: 代码审计, 实用工具 | 孵化于:2012年12月24日 | 文章热度:5,995 次 全屏阅读

显示不全请点击全屏阅读

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漏洞,

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

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/1927/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)