源码介绍
-运行丝滑 UI美观 功能全面 细节优化
-修复20+漏洞 全面升级系统安全
-优化系统逻辑 重构代码 杜绝屎山
-配套软件重构升级 功能升级 数据明了
源码截图
修复内容
-P0 修改默认后台口令;appPush 恢复时间戳校验并限定订单;删除/加固 public/example/*.php 密钥
-P0 确认运行目录=public,关闭 app_debug,根目录 .well-known 与 composer.phar 移出 Web 根
-P1 getOrder/checkOrder 加签名;orderId 提高随机熵
-P1 全站给到后台的接口补 CSRF token;登录加限速/验证码
-P2 setBd 人工复核;delLastOrder 改为仅删过期未付订单并二次确认;checkOrder 处理 state=2
-P2 通讯密钥安装时生成;示例文件删除;二维码识别接口的文件写入改为内存处理
主要漏洞
1.【严重】后台完全可接管:默认口令 + 无登录限制 + 无 CSRF
数据库默认账号密码是 admin/admin(vmq.sql:78-79),README 还专门提示"默认后台账号和密码均为 admin"。
login()(application/index/controller/Index.php:41-59)只做等值比较:无限流、无验证码、无失败锁定,可对 admin/admin 无限爆破。
后台所有接口只靠 Session::has("admin"),无 CSRF token(config/cookie.php 也关闭了 httponly/secure)。
一旦进后台,saveSetting()(application/admin/controller/Index.php:161-179)可以直接改写收款码 wxpay/zfbpay、通讯密钥 key、回调地址 notifyUrl/returnUrl——即把资金导向自己的二维码、把回调劫持到自己的服务器。这是整条资金链的根。
修复:换随机强密码并去默认化;登录加验证码/失败锁定;所有 admin 接口加 CSRF token;通讯密钥用独立高强度随机值并从后台隐藏。
2.【严重】appPush 伪造支付回调 → 订单凭空"已支付"
appPush()(application/index/controller/Index.php:449-545)的验签只有 md5($type.$price.$t.$key),而时间戳校验整段被注释掉了(同文件 464-467 行):
php
// $jg = time()*1000 - $t;
// if ($jg>50000 || $jg<-50000){ ... }
只要知道 key,任意人可对任意订单号伪造一条 price=某订单really_price&type=1&sign=md5(…) 的推送,订单立即被置 state=1 并触发对你 notifyUrl 的异步通知(Index.php:491-517)→ 商户据此发货,造成实打实的资金/货品损失。
key 并非不可得:示例目录 public/example/main.php:4、notify.php:3、return.php:3 硬编码了密钥 795f7665971635699b4163537f06d5c2,而 api.html 的安装指引恰恰要求管理员"把 $key 改为你的通讯密钥"——按文档配置后,真实 key 就写进了公开可访问的 PHP 文件。
appPush 的"无订单转账"分支(Index.php:520-540)还会把任何匹配不到订单的金额以 state=1 插入 pay_order,可无限伪造收款记录污染流水。
修复:恢复时间戳校验(±60s 窗口);改为每次推送校验订单真实存在且最近创建;key 不要落盘到 public 目录;示例文件在安装后被删除或做鉴权。
3.【严重】getOrder/checkOrder 无鉴权 + 订单号可枚举 → 全网流水泄露
getOrder()(Index.php:309-332)和 checkOrder()(Index.php:334-372)没有任何签名或登录校验。
云订单号 orderId = date("YmdHms") + 4位随机数(Index.php:203),随机空间只有 10⁴ = 1 万。攻击者对任一分钟内枚举 1 万个 orderId,即可拉取该时段所有订单的 payUrl(收款码内容)、金额、商户订单号、支付状态;checkOrder 还会把"已支付"订单的回调跳转 URL(带签名)直接返回。
这等于把全部商户流水(谁、什么时候、付了多少钱、扫哪个码)暴露给任何人,可被用来监控、钓鱼或做竞争情报。
修复:这两个接口增加签名校验(同 closeOrder 的模式);orderId 改用高熵随机(≥64 bit)。
4.【高】setBd 补单:回调返回任意 "success" 即标记已支付
setBd()(application/admin/controller/Index.php:268-313)对订单的 notify_url 发起 GET(同时是一个 SSRF 面),只要响应体等于 success 就把订单置为已支付。配合漏洞 1(拿下后台)或 2(篡改 key 后伪造),可对任意订单"补单成功"触发发货。建议补单改为人工复核 + 限制目标 URL 为可信域名。
Web 安全漏洞
1.【高】部署根目录风险:config/database.php 可能可下载
项目根目录存在 .well-known/acme-challenge/(Let's Encrypt 验证目录),说明该站点曾把根目录当作 Web 根挂载过。如果网站运行目录是 D:\VMQ 而不是 public,那么:config/database.php(含 MySQL 账号密码)可被直接下载;
thinkphp/、application/(源码)、Android.apk、composer.phar 全部暴露。
修复:确认宝塔运行目录为 public;根目录的 .well-known 移到 public/.well-known;composer.phar 等移出 Web 根。
2.【高】app_debug=true 生产环境开启
config/app.php:22 开启调试模式:异常会输出完整文件路径、堆栈、SQL 语句,配合任意未捕获异常(如 PHP8 下 bcmul("abc",100) 抛 ValueError)可泄露源码路径与数据库表结构。生产必须关掉。
3.【中】qr-code/test.php:临时文件落在 Web 根 + 弱鉴权
public/qr-code/test.php:51-60 把上传的二维码以 md5(内容).jpg 写入 public/image/ 再延迟删除(finally 里 unlink,但 file_put_contents 与 unlink 之间还有一次外部 HTTP 请求 cli.im,期间文件可被访问/可做存储放大器)。鉴权 isset($_SESSION['think'])(第 9 行)只判断"本会话登录过后台",不是强认证,且该文件无 CSRF 防护。
4.【低】公开接口面梳理(无任何鉴权)
| 接口 | 位置 | 风险 |
| createOrder | Index.php:127 | 需签名,但 key 为空窗口期(见 §三.11) |
| getOrder/checkOrder | 见漏洞 3 | 信息泄露 |
| closeEndOrder | Index.php:549 | 可被反复调用做全表清理 |
| enQrcode | admin/Index.php:334 | 意 URL 生成二维码(可被滥用做钓鱼二维码分发) |
| login | Index.php:41 | 明文传输 + 无限尝试 |
5.【低】SQL 注入:未发现可利用点(已核验)
appPush 等所有查询均走 Db::name()->where() 参数化;Db::execute 的拼接(Index.php:209)中 $tmpPrice 由 bcmul 数值 + 强制 (int)$type 组成,不可注入;page()/limit() 在框架层强制 intval(thinkphp/library/think/db/Query.php:1704-1731);parseKey 对字段名有正则校验(builder/Mysql.php:148-154)。
仍建议:where("create_date >=".$today) 这类数值拼接统一改参数绑定,避免未来改动引入注入。
功能缺陷 / 数据风险
1.【高】delLastOrder 会删掉 7 天前的已完成订单(admin/controller/Index.php:322-329):条件是 create_date < time()-604800,不区分 state,点一次"清理七天前订单"即永久删除已付款订单记录,对账数据丢失且无法恢复(delGqOrder 同理无二次确认,不过只删过期单)。
2.【中】通讯密钥可为空的窗口期:getSettings()(Index.php:136-141)只在首次访问后台时用 md5(time()) 生成 key;在此之前 setting.key=''(vmq.sql:82),此时 createOrder 的 md5(payId+param+type+price+空) 人人可算,等于免签名下单。修复:安装脚本就写入随机 key。
3.【中】同金额订单错配:appPush 用 where really_price=价格, state=0, type=类型->find()(Index.php:477-481),同金额待支付订单只取第一条,可能把 A 订单的付款标记到 B 订单。
4.【中】checkOrder 放行 state=2(通知失败)订单:只排除了 0 和 -1,state=2 会走"支付成功"分支返回跳转 URL,商户端可能把它当成功订单重复发货(Index.php:337-367)。
5.【低】金额精度:price/really_price 是 DOUBLE(vmq.sql:42-43),bcmul 结果存回浮点,长尾金额会有对账误差;pay_order.pay_id 无唯一索引,并发下同 payId 可插入两条。
6.【低】getSettings/admin 接口的口令以明文返回(Index.php:143-157),后台账号密码、通讯密钥以明文 JSON 下发到前端,配合任何 XSS/日志泄露即泄露。
版权所有
本项是基于GitHub开源项目szvone/Vmq基础上二次开发修复的版本 原项目可在GitHub上下载
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。


![图片[2]-V免签支付系统重构版【全网首发】-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/11/20261101164502389.png)
![图片[3]-V免签支付系统重构版【全网首发】-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/11/20261101164503644.png)
![图片[4]-V免签支付系统重构版【全网首发】-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/11/20261101164504515.png)
![图片[5]-V免签支付系统重构版【全网首发】-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/11/20261101164505661.png)
![图片[6]-V免签支付系统重构版【全网首发】-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/11/20261101164509899.png)

![【地铁跑酷】保姆级直充教程[使用前必看]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2025/11/20251103183006799.png)
![【支付系统】彩虹易支付使用手册[搭建必看]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2025/11/20251105152232792.png)
![【地铁跑酷】代理端使用教程[代理开通]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2025/11/20251130084033867.png)
![子比主题提示弹窗美化[美化教程]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2025/12/20251203185300112.png)
![子比主题首页顶部搜索框美化[美化教程]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2025/11/20251114141117261.jpeg)
![支付系统源码优化版[9月27日更新]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2025/11/20251103182503441.png)





![教你白嫖一台永久免费的2核8G云服务器[技术教程]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/08/20260811051805878.jpeg)
![一个简约大气的APP下载页[网站源码]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/08/20260811050940897.jpeg)
![小区社区邻里通[网站源码]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/08/20260805035207719.jpg)
![ZeroPanel:无需root的一键建站面板[技术教程]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/08/20260805034048748-scaled.jpg)
![阿宅二改版 NiceVideo视频网站汉化[网站源码]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/08/20260802145847242.jpeg)
![一个温馨的情侣纪念网站[网站源码]-李拜天博客](https://qiniuyunoss.libtt.cn/boketupian/2026/07/20260726045440750.jpeg)


暂无评论内容