首页 > 其他分享 >逮到一个爬我们网站的用户,手法拙劣到我想笑

逮到一个爬我们网站的用户,手法拙劣到我想笑

时间:2024-09-14 11:22:46浏览次数:6  
标签:监控 请求 IP 拙劣 用户 爬虫 手法 逮到 刷题

大家好,我是程序员鱼皮。昨天逮到一个爬取我们 程序员面试刷题网站 - 面试鸭 的题目的用户,小伙子可能自以为很聪明,实际上手法非常拙劣!我一分钟不到就把他揪出来了。

逮到一个爬我们网站的用户,手法拙劣到我想笑_时间段

下面聊一聊我是怎么做的,也借这个事情,给大家分享一下如何快速定位爬虫和攻击者的方法。

如何纠出攻击者?

发现猫腻

生活中有人偷了你的东西,肯定要看监控。抓爬虫用户也是一样,先看监控。

像我是怎么发现网站被爬了呢?首先我们系统内部有一套识别爬虫的策略,其次我们每天都会关注网站的流量情况,有些异常情况一眼便可看出。

比如这次事件当天,我先通过系统云服务的监控看了下近 6 个小时向我们发送请求的客户端 IP,除去第一个是我们自己的 IP 外,其他几个 IP 的请求数都远超我们的业务平均值,显然这些 IP 不对劲!

逮到一个爬我们网站的用户,手法拙劣到我想笑_网站_02

那这些 IP 都在请求什么资源呢?通过监控查看 URL 路径访问排行,发现获取题目信息的接口被调用了 10 万多次!

逮到一个爬我们网站的用户,手法拙劣到我想笑_IP_03

然后我就根据这个路径进行筛选,查看访问它的客户端 IP 排行,除去第一个是我们自己的 IP 外,第二个 IP 的请求数显然有问题!

逮到一个爬我们网站的用户,手法拙劣到我想笑_IP_04

然后根据这个 IP 进行筛选,分析他的请求情况:

逮到一个爬我们网站的用户,手法拙劣到我想笑_IP_05

看到这个请求图,一眼就知道是爬虫了!我反正不信有正常用户半夜连续刷题 6 个多小时,你见过凌晨四点的面试鸭么?

看到这个 “纵享丝滑” 的曲线,我有点哭笑不得。虽然小伙子应该是在爬取的时候加了一些随机数导致每分钟的请求有一些细微的区别,但在监控面前,显得过于拙劣了。

识别爬虫的基本方法,就是看爬虫的特征、请求频率和模式。 哪怕你自以为很聪明,每天只爬一点题目,只要筛选系统一段时间的访问情况、或者用系统自动分析一波访问记录,是否为正常用户还是一目了然。

不过其实我有点小感动的,选择在半夜这个时间段下手,你人还怪好哩,这是不想给我们系统施加压力吧。

逮到一个爬我们网站的用户,手法拙劣到我想笑_IP_06

找到真凶

发现这个 IP 不对劲后,怎么知道他是我们面试鸭的哪个用户呢?

当然是看日志了!开发线上系统,肯定要有 IP 访问请求的日志记录。我直接在业务服务器的日志中根据 IP 和时间段进行筛选,就看到了该用户发送的请求和参数,什么时间访问了哪道题目都很清楚:

逮到一个爬我们网站的用户,手法拙劣到我想笑_爬虫_07

这个时候,再去业务系统里看下是哪个 id 的用户在这些时间段访问了这些题目,就能查出来了。

还有一种方法,他想要获取到题目信息,一定要先登录,在日志中搜索该 IP 请求 “登录接口” 或者 “获取登录用户信息接口” 的记录,查看接口的返回值,就知道是哪个用户了。

逮到一个爬我们网站的用户,手法拙劣到我想笑_网站_08

豁,竟然还是个永久会员用户!何必呢?

逮到一个爬我们网站的用户,手法拙劣到我想笑_爬虫_09


通过本次事件,再给大家一些系统开发时的建议:

  1. 一定要做好请求的日志记录,不要嫌麻烦、不要嫌占用空间,关键时刻它是帮你定位业务异常的核心线索。
  2. 要对请求经过的每个环节(比如 CDN、网关、业务服务器)进行监控,如果没有监控,除了问题时你会毫无头绪,只能从海量日志中去大海捞针找线索。一般第三方云服务的监控都比较成熟,直接接入就好了。
  3. 要养成看监控的习惯,不是说系统挂了才要看监控,很多潜在的风险只有通过监控(或者告警)才能发现。
  4. 可以给获取重要数据的接口增加更多的信息记录,最好跟系统的某个用户关联起来,便于定位非法用户。

最后,弱弱地呼吁一下,不要再爬我们的刷题网站了,本来小程序和网页端就都是支持刷题的,很快我们还会上线 IDEA 摸鱼刷题插件,尽力保证大家的刷题体验!

逮到一个爬我们网站的用户,手法拙劣到我想笑_时间段_10

更多

标签:监控,请求,IP,拙劣,用户,爬虫,手法,逮到,刷题
From: https://blog.51cto.com/u_15016006/12015475

相关文章

  • 红队钓鱼手法(二)-伪造邮件后续钓鱼手法
    #网页钓鱼:之前一篇文章提到了再伪造邮件可以进行跳转指定地址,虽然会出现有xxx代为转发,但可以通过自己搭建smtp服务,自己搭建邮箱系统,但国内大厂的云服务器默认禁止25端口,想个人申请比较困难,我们购买其他的云厂商的服务器,买国外,或者香港等一些不需要备案申请域名的更......
  • 隐写术和常见手法
    目录隐写术和加密的区别隐写原理物理上的隐写术电子上的隐写术场景隐写术是一种将信息隐藏在其他媒体中的技术。通过使用特定的方法和技术,可以将信息编码成图像、文本或其他形式的媒体,而这些信息只有在特定的方式下才能被读取。隐写术的基本原理是利用人类视觉、听觉或其他感......
  • 关于手法题
    壹.什么时候答手法?高中语文三大题型:概括题,手法题,作用(赏析)题作用题和手法题有什么区别(?)作用题只要你回答“WHY(作用or效果)”,而手法题不仅要回答“WHY(作用or效果)”,还要回答“WHAT(手法是什么)”和“HOW(怎么写的)”手法题大部分时候也要答作用,故答好作用题是手法题的基础怎么判断一......
  • 几种unhook手法的学习
    文章首发阿里云先知社区:https://xz.aliyun.com/t/14310了解过免杀的都知道,杀软会对敏感api进行hook操作,而我们通常有两种方式进行解决,syscall和unhook,而我们在syscall的时候有时候会导致堆栈不完整,在杀软看来是一些异常的行为,比如下图可以看到RIP指针直接已经在Progra......
  • Unlink原理和一些手法
    Unlink原理和一些手法✅简单介绍一下unlink相关的知识unlink是利用glibcmalloc的内存回收机制造成攻击的,核心就在于当两个free的堆块在物理上相邻时,会将他们合并,并将原来free的堆块在原来的链表中解链,加入新的链表中其目的是把一个双向链表中的空闲块拿出来(例如free时和目前......
  • 手写协议报文 c语言手法
    鉴于绝大部分文件、网络通信协议、非网络通信协议都有类似的结构{类型,长度,校验,不定长数据,结束标志},再高级点的会包含多个单层TLV,甚至嵌套TLV,状态机流转标志等等。所以编程语言上也需要采用一定的手法。建立结构结构体和联合体例如//结构体对齐宏#ifdefined(__GNUC__)#defin......
  • 一些数据结构维护手法,好题
    一些数据结构维护手法,好题[蓝桥杯2022国AC]替换字符发现字母的变换有复合性质,可以用线段树维护一个\(lazy[26]\)数组表示这个区间的每一个字母变成了那一个。当两个标记合并的时候有:\(nwlazy[i]=blazy[alazy[i]]\),相当于标记信息的复合。OneOccurrence对于这种某个数......
  • PWN学习之格式化字符串及CTF常见利用手法
    格式化字符串的基本漏洞点格式化字符串漏洞是一种常见的安全漏洞类型。它利用了程序中对格式化字符串的处理不当,导致可以读取和修改内存中的任意数据。格式化字符串漏洞通常发生在使用C或类似语言编写的程序中,其中 printf、sprintf、fprintf 等函数用于将数据格式化为字符串......
  • Go语言核心36讲 25 | 更多的测试手法
    在前面的文章中,我们一起学习了Go程序测试的基础知识和基本测试手法。这主要包括了Go程序测试的基本规则和主要流程、testing.T类型和testing.B类型的常用方法、gotest命令的基本使用方式、常规测试结果的解读等等。在本篇文章,我会继续为你讲解更多更高级的测试方法。这会涉及t......
  • 钓鱼手法及木马免杀技巧
     简述钓鱼是攻防对抗中一种常用的手段,攻击者通常伪装成可信任的实体,例如合法的机构、公司或个人,以引诱受害者揭示敏感信息或执行恶意操作,能快速地撕破目标的伤口,快速进内网进行刷分,投递木马同时需要考虑逃避杀毒软件检测,本篇文章将围绕一些常见的钓鱼手法和木马免杀对抗展开......