本文仅用于交流学习使用,请勿用于非法用途,否则后果作者概不负责。
随便点开一个新闻,例如《
Exploit前有1510个赞:
Exploit后有2065个赞:
开始Exploit
注意到现在有1510个赞,
-
我们在火狐浏览器启动FoxyProxy代理,代理设置为127.0.0.1:8080
-
打开burp,启动抓包
-
在网站点个赞,得到此过程的数据包
-
对抓到的报文,右键发送到intruder界面准备去爆破
-
在burp的intruder界面,观察报文,发现请求参数{"contId":24823041,"origPraiseNum":"1510"},其中的"origPraiseNum":"1510"就是当前点赞数。我们用burp对1510进行add $操作
-
在Positions界面,我们将Attack type设置为Sniper。
然后编辑intruder参数,分别设置参数一(即$1510$)为number型,从1510增长到2023,步长为1,然后点击"start attack"
-
Exploit完成,状态码均为200
-
查看成果
我的目标是点2023-1510=513个赞,已成功,结合其他用户点的赞,现已有2065个赞。
对该漏洞的优化建议
本文的方法是众多实际场景下的缩影,凡是有关浏览量、阅读量的地方都可能存在重放攻击。例如刷微博帖子访问量、QQ空间访客数、在学习通里刷学分和刷众多评论... 有些我老师干过,有些我干过,确实可行。
-
-
使用加密和数字签名:对点赞请求进行加密,并使用数字签名来验证请求的完整性和真实性。服务器在接收到请求时,验证数字签名的有效性,确保请求没有被篡改或伪造。
-
在每个点赞请求中包含一个唯一性标识符 :例如一个随机生成的令牌或一个递增的序列号。服务器在接收到请求时,检查该标识符是否已经被使用过,如果是,则拒绝处理该请求。
-
使用时间戳和过期时间:在每个点赞请求中包含一个时间戳和一个过期时间。服务器验证时间戳是否在合理范围内,并确保请求未过期。如果请求的时间戳过旧或已经过期,服务器可以拒绝处理该请求
-
共有 0 条评论