1
dust0522 OP 报文也不大就 214KB
|
2
leaves615 2023-07-17 08:36:51 +08:00 1
模拟测试下的 json 不同包大小,找临界点。有可能是网络 cache 或者什么参数超出。导致无法处理请求。
|
3
dust0522 OP 对了,nginx 会报这个,[info] 407539#0: *6273 recv() failed (104: Connection reset by peer), client: 客户端地址, server: localhost, request: "POST /hk/bms-front/agentMerchantUploadImage HTTP/1.1", host: "服务端地址"
|
5
wuruorocks 2023-07-17 08:50:04 +08:00
也许服务程序有 bug ,处理这种请求时挂掉了? 能复现就还好办
|
6
dust0522 OP 跳过转发服务器,直接请求程序是没问题的,现在在测试上还复现不了,还在搭环境
|
7
leaves615 2023-07-17 08:55:17 +08:00
@dust0522 #3
上游服务器/应用的问题。 一般有以下情况问题: 应用 tcp 队列满了,未及时释放。 应用 tcp 缓冲区满了,未及时释放。 系统 tcp 队列满了,未及时释放。 系统 tcp 缓冲区满了,未及时释放。 调优相关参数。 一个一个测试。 这种问题,除非把网络 debug 日志开启来查询,在应用层是看不出具体问题。 ------- 前段时间处理过 服务器间歇性无法连接( rst )。 最终定位就是 linux tcp 队列满了未及时释放导致的。 |
8
liuidetmks 2023-07-17 09:11:21 +08:00
有没可能那个用户在攻击?屏蔽即可,别费脑子了
|
9
vainl1 2023-07-17 09:18:44 +08:00 1
换另外一个用户上传该报文,是否复现?
该用户上传其他报文,是否复现? 如果第一个答案为是,第二个为否,可能为触发了某防火墙规则,链接被重置了。 之前在某 cms 后台上传模板文件,网站模板中包含边境区域地名,出现类似情况,删除模板中该地区后模板即可正常上传。其中服务器位于北京,网站域名也已经备案过。 |
11
dust0522 OP @liuidetmks 我也想给他 ban 了,但是在领导那说不过去啊,base 的图片也能植入攻击吗
|
12
nenseso 2023-07-17 09:37:07 +08:00
mark 一下,如果测试环境不能复现,会不会是那个客户的网络问题,上传图片过程中自己掐断的呢?
|
13
yulgang 2023-07-17 09:37:44 +08:00
Nginx 是不是设置了 proxy_buffering ,把内存耗光了。
|
14
vainl1 2023-07-17 09:40:34 +08:00
@dust0522 那基本可以确定为触发了某防火墙规则,可能的话在上传之前对数据再做其他形式的编码或加密,接收后再解码或解密。
另外顺带一提,利用此规则直接发送此类的数据包,可以很容易制造 DOS 攻击,而且直接单个发包即可达成攻击。 |
15
littlefishcc 2023-07-17 09:42:16 +08:00
能复现的问题都不是问题。
构建一模一样的数据包发给服务器看是否能复现,如果能复现,那么不断屏蔽业务功能,不断缩小范围,总能找到问题。 如果不能复现,那就只能要用户帮忙测试了,先确定大的方向,再不断排查。 |
16
sadfQED2 2023-07-17 10:06:02 +08:00 via Android
把请求录制下来?只要能够稳定复现,那就很好调试了
|
20
Pythoner666666 2023-07-17 13:00:43 +08:00
有点意思啊,base64 之后 怎么能够处罚防火墙的的规则
|
21
hopingtop 2023-07-17 13:56:06 +08:00
有没有大佬,继续讨论一下 触发防火墙的规则的问题?
是因为 base64 中的某段数据假设 '3122ABC' = '我是恶意的' 防火墙规则 base64('我是恶意的') ,然后 base64(image).Match(base64(Rule)) ? 防火墙发现是 base64 的编码,就用规则 base64 之后再去匹配? |
22
tool2d 2023-07-17 14:13:07 +08:00
你包都抓下来了,回测一下就可以了。
你这防火墙估计有点水。 |
23
kkkbbb 2023-07-17 15:18:37 +08:00
怎么能看下是防火墙的什么规则导致触发这种情况,还有它的处理行为具体是什么怎么查看呢,我也挺好奇的
|
24
kkkbbb 2023-07-17 16:43:15 +08:00
@hopingtop 我比较好奇的是触发防火墙规则导致当前客户端无法访问能理解,但还能导致服务器断连?把其他所有正常的请求也给拒绝了?
|
25
Pythoner666666 2023-07-17 18:30:36 +08:00
有没有大佬出来解释下 这个很费解啊
|
26
documentzhangx66 2023-07-17 18:50:23 +08:00 1
1.楼主基础不牢。这种提问,至少需要提供网络拓扑图与系统架构图。
排查过程也很简单,先抓用户报文。nginx 报错抓不到,把 ningx 停了,改用 Client 跑 postman + Server 用 socat 监听,如果有其他用户请求干扰调试,用 iptables 筛选用户 IP 。通过这方式,试图把流量导入到 socat ,会发现 socat 也抓不到,继续考虑系统被破坏,或者用户到 Server 的链路有问题。拿一个干净系统过来 socat ,也会报错,那肯定是链路有问题。然后整个链路一环一环旁通,最后很容易定位到防火墙。 2.建议楼主认真补习一下计算机专业本科的网络原理与设计一课。 如果不喜欢学院派风格的课程方式,推荐 B 站视频教程: https://www.bilibili.com/video/BV1th4y1d7kR |
27
dust0522 OP @documentzhangx66 感谢,确实网络基础很差
|
29
dust0522 OP 防火墙规则确实看不了,我们没权限,但确定是防火墙的问题
|