请求里面包含随机字符串,没啥规律。也不像是在爆破。感觉像是纯粹在刷流量。
[18/Dec/2023:07:49:54 +0800] 171.15.10.189 - 4 "http://mydomain.com/?0lhqk=bekbna.jsp" "GET http://mydomain.com/sm7y51c9.txt" 301 566 571 - "Mozilla/5.0 (Linux; Android 9; MI 9 Build/PKQ1.181121.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/84.0.2896.50 MQQBrowser/6.2 TBS/044704 Mobile Safari/537.36 V1_AND_SQ_8.0.8_1218_YYB_D QQ/8.0.8.4115 NetType/WIFI WebP/0.3.0 Pixel/1080 StatusBarHeight/110" "text/html"
[18/Dec/2023:07:41:35 +0800] 10.179.80.163 - 292 "http://mydomain.com/?phmx1fz.txt" "GET http://mydomain.com/gye6cqh.xls" 301 571 574 - "Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)" "text/html"
[18/Dec/2023:07:01:37 +0800] 223.72.15.8 - 0 "http://mydomain.com/?id8s6jy/dx2k4p.jsp" "GET http://mydomain.com/xef9kfe.asp" 301 527 572 - "Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/606.2.35 (KHTML, like Gecko) Mobile/15E148 QQ/8.0.8.458 V1_IPH_SQ_8.0.8_1_APP_A Pixel/1242 Core/WKWebView Device/Apple(iPhone XS) NetType/WIFI QBWebViewType/1 WKType/1" "text/html"
[18/Dec/2023:07:25:31 +0800] 120.245.61.24 - 0 "http://mydomain.com/?92pqf=te9cad.tacc" "GET http://mydomain.com/scate18766.xml" 403 432 737 - "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/607.2.16 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1" "text/html; charset=utf-8"
还有这中 UA 一致的,但是全都不一样。
[18/Dec/2023:07:56:05 +0800] 223.72.66.120 - 0 "-" "GET http://mydomain.com/" 403 259 742 - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)" "text/html; charset=utf-8"
有大佬知道这是干嘛吗?我的网站有没有被攻击的风险?
1
iyiluo 335 天前
很多流量都是机器人刷的,只要端口开放就会有机器人来刷
|
2
opengps 335 天前
/sm7y51c9.txt /xef9kfe.asp 这种往往是验证自动渗透是否成功的,你要是担心可以去查查有没有多出来这种文件
|
4
NewYear 335 天前
程序可以改代码的话可以自己设计一个机制,去分析这些垃圾请求,屏蔽 IP 。
我的 Wordpress 用 php 就写了一些规则应对垃圾请求,流量大幅降低了(日志文件显著缩小),纯 PHP 实现分析和拦截,自动管理被封禁的 IP ,如果接入到 HTTP 服务器/面板,效果就更加显著了。 要么你就开 5 秒盾吧,要不就做验证,方法很多,就看你的能力能实现哪部分。 其实个人觉得,CDN 的防火墙应该是能拦截掉这些显著有问题的 IP ,但是人家不拦截,就耐人寻味了。 |
5
tool2d 335 天前
特征那么明显的,果断写个程序,批量禁 IP 啊。
|
6
googlefans 335 天前
@NewYear 解决方案能贴出来吗
|
7
maxthon 335 天前
fail2ban 部署一个,超过一小时 N 个 4XX 就封 IP 一小时,封两次永封
|
8
owen800q 335 天前 via iPhone
Jsp….
|
9
raycheung 335 天前 via iPhone
会不会是需要配个 WAF 了
|
10
NewYear 335 天前
@googlefans
我写的是简单的,首先判断用户 IP 是否在 ip.txt ,如果在,直接报 404 ,输出 404 然后判断一些用户的信息,比如 UA (空的,或者工具型的,比如 curl ,python ,java ),比如 URL (我是 php 程序,访问 asp 、jsp 的直接封),比如 POST (我用 Wordpress 嘛,后台登录页面只要给我 POST 的直接封),觉得可疑的就加入 ip.txt ,并设定一个期限。 ip.txt 的格式是一个二维数组反序列化的文本,数组的一维是 IP ,二维是从列表中清理掉的时间,不修改列表的时候不序列化,要更改的时候再序列化。 代码就不献丑了,不具备通用性,在几个位置做了修改…… 性能方面,每个动态页面请求会增加 0.3 毫秒,虽然性能是下降了,但也因此它是实时的,经常都是一堆请求发过来,但是第一个请求就被捕获了,所以反而节约了性能。 |
11
googlefans 331 天前
@NewYear
<?php // 加载 ip.txt 文件 $ip_list = unserialize(file_get_contents('ip.txt')); // 获取用户 IP $user_ip = $_SERVER['REMOTE_ADDR']; // 判断用户 IP 是否在 ip.txt 中 if (in_array($user_ip, $ip_list)) { // 如果在,直接报 404 header("HTTP/1.0 404 Not Found"); exit; } // 获取用户 UA $user_agent = $_SERVER['HTTP_USER_AGENT']; // 判断用户 UA 是否可疑 if (empty($user_agent) || stristr($user_agent, 'curl') || stristr($user_agent, 'python') || stristr($user_agent, 'java')) { // 如果可疑,加入 ip.txt 并设定一个期限 $ip_list[] = array($user_ip, time() + 3600); file_put_contents('ip.txt', serialize($ip_list)); } // 获取用户 URL $request_uri = $_SERVER['REQUEST_URI']; // 判断用户 URL 是否可疑 if (stristr($request_uri, '.asp') || stristr($request_uri, '.jsp')) { // 如果可疑,加入 ip.txt 并设定一个期限 $ip_list[] = array($user_ip, time() + 3600); file_put_contents('ip.txt', serialize($ip_list)); } // 判断用户是否正在 POST 请求 if ($_SERVER['REQUEST_METHOD'] == 'POST') { // 如果正在 POST 请求,加入 ip.txt 并设定一个期限 $ip_list[] = array($user_ip, time() + 3600); file_put_contents('ip.txt', serialize($ip_list)); } 这个怎么样? |
12
NewYear 331 天前
@googlefans 可以的,这个是 GPT 生成的吧,可以按想法自己调整。果然还是 GPT 时代好啊,写东西省心很多了,哈哈哈。
|
13
googlefans 330 天前
@NewYear 一眼就被你看出来了...
|