群发站内信设计缺陷(理论上可拒绝服务)
只需一条发送请求(无需全站遍历id),就可发送消息至全站用户,且每个用户收到n条垃圾信息。发送的数量太大,可对服务器造成拒绝服务~~~
漏洞标题:一条发送请求,可发送站内信到全站用户,且每个用户n条相同垃圾信息,严重可造成服务端拒绝服务
问题模块:[消息通知设置]---[群发消息]
问题URL:
http://www.example.com/system/messenger/sendGroup
post数据:
sendto=A964815&type=1&content=just4test
说明:原本意图应为 给所属经销商群发站内信,但未限制收件用户的范围,可导致全站发送信息,且参数复用导致同时发送n条信息到目标用户。
设计缺陷1:在发送请求时,使用逗号分割收件用户。如:sendto=A964815,A764025,A964815,A374613 ……乃至全站用户id……
设计缺陷2:参数复用,如果有10个 type=1 ,那么同样的信息可发送10次给目标用户。
漏洞证明:
给两个用户发站内信,且同样的信息发送40条。
发送请求时:
发送完成后,两个用户收到的信息
本文迁移自知识星球“火线Zone”