Files
youpaishidifu c60e4ebc9b 加固-03(P0-02): 删除远程在线更新链(供应链 RCE 向量)
- admin/ajax.php: checkupdate / downloadupdatepacks / unzippacks 三个
  端点合并为统一禁用存根(返回 JSON "远程更新已禁用(安全加固)");
  原逻辑从作者第三方域 (download.wenquan6.cn / download.bwenquan.com)
  下载 zip 并解压到 Web 目录、再引导浏览器访问 install.php,
  攻击者控制该域即可向所有部署实例推送恶意代码(供应链 RCE)。
- 删除辅助函数 get_zip_originalsize() 与 getFile()(仅更新链使用)。
- admin/html/welcome.html 与 admin/welcome.html: 移除"检查系统更新"
  按钮及 function update() 整段 AJAX 链,替换为静态说明文案。
- admin/ajax.php: HTTP_USER_AGENT 比较改用 ?? 回退,消除无 UAgent
  客户端触发的 Notice(UAgent 会话锁定行为保持不变)。

验证: php -l 通过;登录态调用三端点均返回禁用 JSON;
UAgent 锁定对无 UAgent 客户端正确拒绝(code:-3)。
2026-10-10 11:21:25 +08:00

210 lines
8.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>欢迎页</title>
<link rel="stylesheet" href="../../static/frame/layui/css/layui.css">
<link rel="stylesheet" href="../../static/frame/static/css/style.css">
<link rel="icon" href="../../static/frame/static/image/code.png">
</head>
<body class="body">
<div class="layui-row layui-col-space10 my-index-main">
<div class="layui-col-xs4 layui-col-sm2 layui-col-md2">
<div class="my-nav-btn layui-clear">
<div class="layui-col-md5">
<button class="layui-btn layui-btn-big layui-btn-danger layui-icon">&#xe756;</button>
</div>
<div class="layui-col-md7 tc">
<p class="my-nav-text" id="appnum">loading</p>
<p class="my-nav-text layui-elip">应用数量</p>
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm2 layui-col-md2">
<div class="my-nav-btn layui-clear">
<div class="layui-col-md5">
<button class="layui-btn layui-btn-big layui-btn-warm layui-icon">&#xe735;</button>
</div>
<div class="layui-col-md7 tc">
<p class="my-nav-text" id="sysver">loading</p>
<p class="my-nav-text layui-elip">系统版本</p>
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm2 layui-col-md2">
<div class="my-nav-btn layui-clear">
<div class="layui-col-md5">
<button class="layui-btn layui-btn-big layui-icon">&#xe715;</button>
</div>
<div class="layui-col-md7 tc">
<p class="my-nav-text" id="czkeynum">loading</p>
<p class="my-nav-text layui-elip">充值卡密</p>
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm2 layui-col-md2">
<div class="my-nav-btn layui-clear">
<div class="layui-col-md5">
<button class="layui-btn layui-btn-big layui-btn-normal layui-icon">&#xe705;</button>
</div>
<div class="layui-col-md7 tc">
<p class="my-nav-text" id="tckeynum">loading</p>
<p class="my-nav-text layui-elip">套餐卡密</p>
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm2 layui-col-md2">
<div class="my-nav-btn layui-clear">
<div class="layui-col-md5">
<button class="layui-btn layui-btn-big layui-bg-cyan layui-icon">&#xe6b2;</button>
</div>
<div class="layui-col-md7 tc">
<p class="my-nav-text" id="agentnum">loading</p>
<p class="my-nav-text layui-elip">代理数量</p>
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm2 layui-col-md2">
<div class="my-nav-btn layui-clear">
<div class="layui-col-md5">
<button class="layui-btn layui-btn-big layui-bg-black layui-icon">&#xe698;</button>
</div>
<div class="layui-col-md7 tc">
<p class="my-nav-text" id="tradenum">loading</p>
<p class="my-nav-text layui-elip">订单数量</p>
</div>
</div>
</div>
<div class="layui-col-xs12">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">来自温泉授权服务器的系统公告</h2>
<div class="flow-default layui-colla-content layui-show">
<iframe src="https://github.com/rakirizu/QuanAuth/blob/main/README.md"></iframe>
</div>
</div>
</div>
</div>
<div class="layui-col-xs12">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">系统更新</h2>
<div class="flow-default layui-colla-content layui-show" id="update" style="padding:10px;">
<span style="color:#999;">远程在线更新已出于安全考虑禁用(供应链风险)。版本升级请通过 Git 仓库获取部署包手动更新。</span>
</div>
</div>
</div>
</div>
<div class="layui-col-xs12">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">系统更新日志</h2>
<div class="flow-default layui-colla-content layui-show" id="uplog">
暂无
</div>
</div>
</div>
</div>
</div>
<script src="../../static/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../static/frame/layui/layui.js"></script>
<script type="text/javascript" src="../../static/js/index.js"></script>
<script type="text/javascript" src="../../static/frame/echarts/echarts.min.js"></script>
<script type="text/javascript">
layui.use(['flow', 'element', 'layer', 'vip_tab'], function () {
// 打开选项卡
var flow = layui.flow, vipTab = layui.vip_tab;
$('.my-nav-btn').on('click', function () {
if ($(this).attr('data-href')) {
//vipTab.add('','标题','路径');
vipTab.add($(this), '<i class="layui-icon">' + $(this).find("button").html() + '</i>' + $(this).find('p:last-child').html(), $(this).attr('data-href'));
}
});
$.ajax({
url: '../ajax.php?mod=getsysinfo',
type: 'POST',
dataType: 'json',
data: '',
success: function (data) {
$('#appnum').html(data.appnum);
$('#sysver').html(data.sysver);
$('#czkeynum').html(data.czkeynum);
$('#tckeynum').html(data.tckeynum);
$('#agentnum').html(data.agentnum);
$('#tradenum').html(data.tradenum);
},
error: function (data) {
$('#appnum').html('error');
$('#sysver').html('error');
$('#czkeynum').html('error');
$('#tckeynum').html('error');
$('#agentnum').html('error');
$('#tradenum').html('error');
}
});
// flow.load({
// elem: '#notice'
// , scrollElem: '#notice'
// , done: function (page, next) {
// var lis = [];
// $.ajax({
// url: '../ajax.php?mod=getnotice',
// type: 'POST',
// dataType: 'html',
// data: '',
// success: function (data) {
// $('#notice').html(data);
// next();
// },
// error: function (data) {
// $('#notice').html('嗷呜o(╥﹏╥)o 获取公告请求失败啦');
// next();
// }
// });
// //假设总页数为 6
// }
// });
// flow.load({
// elem: '#uplog'
// , scrollElem: '#uplog'
// , done: function (page, next) {
// var lis = [];
// $.ajax({
// url: '../ajax.php?mod=getuplog',
// type: 'POST',
// dataType: 'html',
// data: '',
// success: function (data) {
// $('#uplog').html('<div style="width: 100%;height: 800px;">\n' +
// ' <textarea class="layui-textarea" style="width: 100%;height: 800px;">' + data + '</textarea>\n' +
// ' </div>');
// next();
// },
// error: function (data) {
// $('#uplog').html('嗷呜o(╥﹏╥)o 获取系统更新日志失败啦');
// next();
// }
// });
// //假设总页数为 6
// }
// });
});
/* 安全加固 (P0-02):已移除远程在线更新前端逻辑 (function update / checkupdate / downloadupdatepacks / unzippacks)。
原逻辑引导浏览器访问解压出来的 install.php,属供应链 RCE 向量。 */
</script>
</body>
</html>