网站日志有很多奇怪的请求,看起来没啥规律,禁用都不好禁 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fqzz
V2EX    问与答

网站日志有很多奇怪的请求,看起来没啥规律,禁用都不好禁

  •  
  •   fqzz 2023-12-18 15:25:21 +08:00 1819 次点击
    这是一个创建于 666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请求里面包含随机字符串,没啥规律。也不像是在爆破。感觉像是纯粹在刷流量。

    [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=" 

    还有这中 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=" 

    有大佬知道这是干嘛吗?我的网站有没有被攻击的风险?

    13 条回复    2023-12-23 18:22:02 +08:00
    iyiluo
        1
    iyiluo  
       2023-12-18 15:29:21 +08:00
    很多流量都是机器人刷的,只要端口开放就会有机器人来刷
    opengps
        2
    opengps  
       2023-12-18 15:32:47 +08:00
    /sm7y51c9.txt /xef9kfe.asp 这种往往是验证自动渗透是否成功的,你要是担心可以去查查有没有多出来这种文件
    fqzz
        3
    fqzz  
    OP
       2023-12-18 15:33:30 +08:00
    @iyiluo 嗯,应该就是机器刷的,我们用的是阿里云 CDN ,每天都会刷好多 G 的流量。想了几个方法封禁但是没啥效果。
    NewYear
        4
    NewYear  
       2023-12-18 16:34:34 +08:00
    程序可以改代码的话可以自己设计一个机制,去分析这些垃圾请求,屏蔽 IP 。

    我的 Wordpress 用 php 就写了一些规则应对垃圾请求,流量大幅降低了(日志文件显著缩小),纯 PHP 实现分析和拦截,自动管理被封禁的 IP ,如果接入到 HTTP 服务器/面板,效果就更加显著了。

    要么你就开 5 秒盾吧,要不就做验证,方法很多,就看你的能力能实现哪部分。

    其实个人觉得,CDN 的防火墙应该是能拦截掉这些显著有问题的 IP ,但是人家不拦截,就耐人寻味了。
    tool2d
        5
    tool2d  
       2023-12-18 16:57:03 +08:00
    特征那么明显的,果断写个程序,批量禁 IP 啊。
    googlefans
        6
    googlefans  
       2023-12-18 17:14:51 +08:00
    @NewYear 解决方案能贴出来吗
    maxthon
        7
    maxthon  
       2023-12-18 18:10:05 +08:00
    fail2ban 部署一个,超过一小时 N 个 4XX 就封 IP 一小时,封两次永封
    owen800q
        8
    owen800q  
       2023-12-18 18:10:35 +08:00 via iPhone
    Jsp….
    raycheung
        9
    raycheung  
       2023-12-18 18:14:35 +08:00 via iPhone
    会不会是需要配个 WAF 了
    NewYear
        10
    NewYear  
       2023-12-19 00:40:00 +08:00
    @googlefans

    我写的是简单的,首先判断用户 IP 是否在 ip.txt ,如果在,直接报 404 ,输出 404

    然后判断一些用户的信息,比如 UA (空的,或者工具型的,比如 curl ,python ,java ),比如 URL (我是 php 程序,访问 asp 、jsp 的直接封),比如 POST (我用 Wordpress 嘛,后台登录页面只要给我 POST 的直接封),觉得可疑的就加入 ip.txt ,并设定一个期限。

    ip.txt 的格式是一个二维数组反序列化的文本,数组的一维是 IP ,二维是从列表中清理掉的时间,不修改列表的时候不序列化,要更改的时候再序列化。

    代码就不献丑了,不具备通用性,在几个位置做了修改……
    性能方面,每个动态页面请求会增加 0.3 毫秒,虽然性能是下降了,但也因此它是实时的,经常都是一堆请求发过来,但是第一个请求就被捕获了,所以反而节约了性能。
    googlefans
        11
    googlefans  
       2023-12-22 18:01:58 +08:00
    @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));
    }

    这个怎么样?
    NewYear
        12
    NewYear  
       2023-12-23 02:07:04 +08:00
    @googlefans 可以的,这个是 GPT 生成的吧,可以按想法自己调整。果然还是 GPT 时代好啊,写东西省心很多了,哈哈哈。
    googlefans
        13
    googlefans  
       2023-12-23 18:22:02 +08:00
    @NewYear 一眼就被你看出来了...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2797 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 14:51 PVG 22:51 LAX 07:51 JFK 10:51
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86