[典型漏洞分享]一个典型的XSS盲打漏洞可导致全网用户cookie被盗取
偶平时在做安全测试时,一般是以发现问题为主,点到为止,但做安全的同学可能也遇到过这样的问题,当你尝试向开发的同学描述一个漏洞危害怎么怎么样的时候,双方经常会有一种鸡同鸭讲的感觉,甚至他们觉得我们在夸大其词去影响他们去修复,其实面对开发的同学的质疑,我也觉得合理,毕竟你用XSS去弹个框,能说明什么呢?因此,本案例着偏重渗透的过程,目的是通过一个案例来解决以后鸡同鸭讲的局面,同时也能树立安全部的权威。
YS OMM在记录日志时未对输入数据进行过滤,易导致存储型XSS攻击【高】
问题描述:
OMM模块在日志中记录了用户对设备等资源的相关操作,但是有些操作日志的内容是用户可控制的,故可以通过特定的接口往OMM日志写入可产生攻击的特殊字符,比如当向日志写入恶意JS脚本,当OMM管理员登录OMM系统查看用户日志时,恶意脚本执行,此时,我们可以下载一段更加强大的JS脚本作为产生一个XSS代理,在外围和内网之间搭建一个通信的“桥梁”,然后利用OMM的公告管理功能向所有YS用户发送带恶意JS脚本的系统公告,一旦用户登录上线,公告的恶意代码自动执行,用户的cookie即被盗取。
注:为了向开发的同志们说明此漏洞的真正危害所在,我们决定在测试平台上进行实战演习,即盗取所有测试账号的cookie,也便于澄清XSS不再是弹一个框的问题。
测试步骤:
1、 启动burp,并开启http拦截代理功能:
2、 登录YS,选择 配置管理> 设备管理> 设备详情> 修改名称,输入合法名称并提交,,如下所示:
3、 在burp拦截到的请求中改为带攻击性的名称,并提交,如下图:
4、 登录OMM数据查看日志,可以看到脚本语句已被写入日志,如下图:
5、 等待OMM管理员登录查看日志。
6、 等待一段时间过后,在xss shell工具的控制界面看到,我们的代码被成功执行了,有浏览器上线,这也说明OMM管理员中招了:
7、 启动xss tunnel工具,配置代理监听端口,这里设置为本地的8079,如图:
8、 设置浏览器使用该代理进行访问,如图:
9、 可以看到,以及成功的访问到YS的OMM控制台,各种强大功能(比如:公告管理)在浏览器上展现出来,如下图所示:
10、 我们模拟攻击者向测试平台推送了一条含有xss代码的系统公告,该xss的代码作用是收集登录用户的cookie,如图:
11、 过了一段时间,我们成功收集到了一些同事的cookie,并且成功登录。
问题扩展:
可能还有其它接口(比如手机API,PC客户端API)存在同样类似问题,所以对于用户能够控制日志内容的接口都应该应仔细排查。
解决建议:
1、 对写入日志的内容进行html编码(可参考ESAPI的encodeForHTML方法),以确保读取日志时不会产生有害攻击。
2、 对输入的数据使用白名单做过滤。
总结:
此类问题的关键还是对数据流的处理问题,当前测试时插入的恶意数据流没有发现问题不代表以后也没问题,对于甲方公司有条件做灰盒测试的同学,可以对输入的数据流进行严格跟踪,数据入口和出口详细分析清楚才能把控好风险,比如:复杂的系统可能是一个数据入口对应多个数据出口,或者多个数据人口对应1个数据出口,甚至可能是多对多的关系。比较保险的做法是找到所有的数据入口和出口,执行以下步骤:
1、对于会被静态存储的数据必须做白名单过滤,比如数据库和日志的入口数据,防止将来可能出现新的数据出口引发的安全问题。
2、对于html的数据出口一定要做安全转义,防止将来可能出现的新的用户可控的数据入口。
[典型漏洞分享]一个典型的XSS盲打漏洞可导致全网用户cookie被盗取的更多相关文章
- [典型漏洞分享]一个典型的软件漏洞--memcpy导致的缓冲区溢出
YS VTM模块存在缓冲区溢出漏洞,可导致VTM进程异常退出[高] 问题描述: YS VTM模块开放对外监听端口(8554和8664),并从外部接收网络数据,中间模块调用到memcpy函数对网络数据进 ...
- 代码审计中的XSS反射型漏洞
XSS反射型漏洞 一 XSS漏洞总共分三总 XSS反射型漏洞,XSS保存型漏洞,基于DOM的XSS漏洞 这次主要分享XSS反射型漏洞 基本原理:就是通过给别人发送带有恶意脚本代码参数的URL,当URL ...
- 【代码审计】YUNUCMS_v1.0.6 前台反射型XSS跨站脚本漏洞分析
0x00 环境准备 QYKCMS官网:http://www.yunucms.com 网站源码版本:YUNUCMSv1.0.6 程序源码下载:http://www.yunucms.com/Downl ...
- 【代码审计】QYKCMS_v4.3.2 前台存储型XSS跨站脚本漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 【代码审计】LaySNS_v2.2.0 前台XSS跨站脚本漏洞
0x00 环境准备 LaySNS官网:http://www.laysns.com/ 网站源码版本:LaySNS_v2.2.0 程序源码下载:https://pan.lanzou.com/i0l38 ...
- 【代码审计】EasySNS_V1.6 前台XSS跨站脚本漏洞分析
0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/ind ...
- [典型漏洞分享]YS忘记密码机制设计存在缺陷,导致任意用户口令均可被修改【高】
记录了安全测试过程中发现的一些典型的安全问题 YS忘记密码机制存在缺陷,可导致任意用户口令被修改[高] 问题描述: YS网站提供用户密码修改功能,当用户忘记密码时可通过该功能找回密码,但该修改密码的流 ...
- [W3bsafe]分享一个爬SQL注入漏洞的工具
分享一个爬SQL注入的工具 本文转自:i春秋社区由团队核心成员若间开发把工具放到E盘的一个文件夹 他会自动生成一个文本文件 Result.txt 最大页数 自己想弄填多少就填多少关键词 注入点关键词 ...
- 分享一个jsonp劫持造成的新浪某社区CSRF蠕虫
最近jsonp很火,实话说已经是被玩烂了的,只是一直没有受到大家的重视.正好在上个月,我挖过一个由于jsonp造成的新浪某社区CSRF,当时是为了准备一篇文章,之后这篇文章也会拿出来分享. 因为新浪已 ...
随机推荐
- Linux信号函数
1. signal函数: #include <signal.h> void (*signal(int signo, void (*func)(int)))(int); ret-成功返回信号 ...
- 【Android XML】Android XML 转 Java Code 系列之 style(3)
最近一个月把代码重构了一遍, 感觉舒服多了, 但总体开发进度没有变化.. 今天聊聊把style属性转换成Java代码的办法 先说结论: 引用系统style是无法完美的实现的, 我们如果有写成Java代 ...
- 安全测试===sqlmap(贰)转载
十二.列举数据 这些参数用于列举出数据库管理系统信息.数据结构和数据内容. 1.一键列举全部数据 参数:--all 使用这一个参数就能列举所有可访问的数据.但不推荐使用,因为这会发送大量请求,把有用和 ...
- python爬虫模块之HTML解析模块
这个就比较简单了没有什么好强调的,如果返回的json 就是直接按照键值取,如果是网页就是用lxml模块的html进行xpath解析. from lxml import html import json ...
- OpenCV编程入门目录
第一部分 快速上手OpenCV 第1 章 邂逅OpenCV 图像处理.计算机视觉与OpenCV OpenCV 概述 起源及发展 应用概述 .2OpenCV 基本架构分析 .3OpenCV3 带来了什么 ...
- Nginx-1.6.3反向代理
源码安装nginx cat /etc/redhat-release uname -rm yum install pcre-devel openssl-devel -y rpm -qa pcre pcr ...
- linux命令(18):chmod命令
1. 命令格式: chmod [-cfvR] [--help] [--version] mode file 2. 命令功能: 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3. 命令参 ...
- redis之(二)redis单机的安装,配置,启动,关闭
[1]下载redis压缩包,解压,编译
- WordPress 一键置顶文章(推荐用SM Sticky Clicky Star)
在 WordPress入门 之 发布新文章和管理文章 中,倡萌已经简单提到可以在文章编辑界面或者快速编辑界面设置置顶文章,但是如果你想在后台文章列表中添加一键置顶文章的功能,不妨试试 Quick St ...
- 一款简洁而强大的前端框架—JQuery
jQuery是什么? jQuery是一个快速.简洁的JavaScript框架,它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画 ...