Zoo Management System 跨站脚本漏洞(CVE-2022-31914)
*一、漏洞概述 **
*1.1 漏洞简介*
·漏洞名称:Zoo Management System 跨站脚本漏洞
·漏洞编号:CVE-2022-31914
·漏洞类型:跨站脚本漏洞
·漏洞威胁等级:中危
·影响范围:Zoo Management System v1.0
·利用条件:Zoo Management System v1.0 | PHP V 5.6或 7.4
*1.2 组件描述*
PHPGURUKUL Zoo Management System是Phpgurukul团队的一个动物园管理系统。
*1.3 漏洞描述*
Zoo Management System v1.0 版本存在跨站脚本漏洞,该漏洞源于 /admin/public_html/save_animal?an_id=24 存在漏洞。
*二、漏洞复现*
*2.1 应用协议*
http
*2.2 环境搭建*
1.按照源码地址下载,以下为源码下载地址连接:
https://www.sourcecodester.com/sites/default/files/download/pushpam02/ZooManagementSystem.zip
2.PHP 版本选择V 5.6或 7.4
3.在phpmyadmin中提前创建“zoomanagement”数据库,并导入.sql文件(\DATABASE FILE\zoomanagement.sql)
4.登录:
Email : admin@mail.com
Password: Password@123
5.网站后台首页
*2.3 漏洞复现 **
1.找到漏洞位置,uri为:/admin/public_html/save_animal?an_id=24
,且漏洞功能点在Given name
处
2.将payload写入<script>alert(testxss)</script>
(此处无任何过滤)
3.修改完成后点击view animals
4.攻击成功
*三、漏洞分析*
*3.1 技术背景*
\
*3.2 代码分析*
div class="col-md-6 mb-4 field-required">
<label for="givenname">Given name</label>
<input type="text" class="form-control" id="givenname" name="an_given_name" placeholder="" value="<?= isset($animal['an_given_name']) ? $animal['an_given_name'] : "" ?>" required>
参数Given name的类型为type,可写入任意字符,未对参数进行过滤限制
*3.3 流量分析 **
和正常的流量相比,只有内容部分为恶意代码,其余字段都无异
*3.4 绕过方式*
无需绕过
*四、漏洞检测*
*4.1 组件版本自检*
以下版本受该漏洞影响:Zoo Management System v1.0
目前最高版本:Zoo Management System v1.0
*4.2 漏洞触发前提自检*
*4.3 漏洞检测规则、插件编写思路*
以下为该漏洞请求包特征
1.”admin/public_html/save_animal?an_id=24“
2.”name=“animal_id”
3.”name=“an_given_name”
4.恶意的JavaScript代码
*4.4 研判建议 **
在请求体内容部分查看是否存在xss payload,若存在,点击查看view animals模块,看是否有弹窗即可
五、*防范建议*
*5.1 官方修复建议*
暂无修复
*5.2 临时修复建议*
将常见的xss payload的字段加入黑名单,如script、alert、javascript等
六、*参考链接*
源码下载url:https://www.sourcecodester.com/sites/default/files/download/pushpam02/ZooManagementSystem.zip