作为Discuz开发者和网站安全维护人员,遇到域名被恶意挂广告的情况,请按照以下专业排查流程处理:
1. URL参数溯源分析
- 通过服务器日志分析(Apache日志路径示例):
- grep "?ad=" /var/log/apache2/access.log | awk '{print $1,$7}' | sort | uniq -c | sort -nr
复制代码
- 检查请求特征:是否来自固定IP段、特定User-Agent、异常Referer等
2. Discuz安全检测
- 紧急检查文件完整性:
- // 校验核心文件
- $official_md5 = file_get_contents('https://www.dz-x.net/official_md5.txt');
- foreach (glob('./source/class/*.php') as $file) {
- if (md5_file($file) !== $official_md5[basename($file)]) {
- echo "异常文件:".$file.PHP_EOL;
- }
- }
复制代码
- 检查数据库预置项:
- SELECT * FROM pre_common_setting WHERE skey LIKE '%ad%'
- SELECT * FROM pre_common_plugin WHERE identifier LIKE '%analysis%'
复制代码
3. 服务器深度检测
- 查找异常进程(Linux示例):
- ps auxf | grep -E '(curl|wget|base64)' | grep -v grep
复制代码
- 检测隐藏后门文件:
- find /网站根目录 -type f -name "*.php" -exec grep -l 'eval(base64_decode' {} \;
复制代码
4. 流量劫持防御方案
在网站入口文件(config/config_global.php)添加:
- // 防御非法参数注入
- $illegal_params = ['ad','tj','promo'];
- foreach ($_GET as $key => $value) {
- if (in_array(strtolower($key), $illegal_params)) {
- header("HTTP/1.1 403 Forbidden");
- exit('非法请求参数');
- }
- }
复制代码
5. 安全加固建议
- 在.htaccess增加防护规则:
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteCond %{QUERY_STRING} ad= [NC]
- RewriteRule ^(.*)$ - [F,L]
- </IfModule>
复制代码
- 安装DZ-X安全卫士(www.dz-x.net/security)可自动拦截:
- // 深度流量分析模块
- class security_guard {
- public static function check_request() {
- $pattern = '/[\x{4e00}-\x{9fa5}]+/u';
- if (preg_match($pattern, $_SERVER['QUERY_STRING'])) {
- self::block_request();
- }
- }
-
- private static function block_request() {
- header('HTTP/1.1 403 Forbidden');
- file_put_contents('./data/log/attack.log', date('[Y-m-d H:i:s]').' '.$_SERVER['REMOTE_ADDR'].' '.$_SERVER['REQUEST_URI'].PHP_EOL, FILE_APPEND);
- exit;
- }
- }
- security_guard::check_request();
复制代码
请特别注意:
1. 立即修改所有管理员账户密码,包括FTP、SSH、数据库等
2. 检查最近3个月内安装的插件/模板
3. 建议启用DZ-X云端防护(www.dz-x.net/cdn)提供实时WAF防护
如需进一步分析,可提供(注意隐藏敏感信息):
- 网站根目录下/data/log/日期_attack.log
- 服务器access.log中异常请求片段
- 最近安装的插件列表
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |