返回列表 发新帖

[文摘] 记一次利用00进行短信轰炸的渗透手法

[复制链接]
灌水成绩
735
主题
754
帖子
5077
积分
等级头衔
积分成就
  • 威望: 0
  • 贡献: 4323
  • 金钱: 0
  • 违规:
  • 在线时间:255 小时
  • 注册时间:2019-3-9
  • 最后登录:2019-10-20
个人勋章

官方

联系方式
QQ
发表在  2019-10-4 23:32:56 | 显示全部楼层 | 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近在一次渗透测试过程中遇到了一个比较有意思的漏洞,可利用特殊字符构造手机号以绕过发送频率限制,进行短信轰炸。并且在RD同学改完后,仍然发现可被绕过,因此再次记录一番。(文中涉及站点的图片都已打码,只在分享渗透的思路)
空格绕过姿势
在对某站进行渗透测试过程中,发现该网站上有一处发送短信验证码功能,该功能数据包截图如下:
可以看到postdata里面是一个json类型,写入目标手机号,重放数据包,可以成功发送短信验证码。由于服务端对同一个手机号发送次数做了限制,正常情况下无法通过重放数据包进行短信轰炸。然而由于服务端对前端传入的手机号处理不当,可以通过在手机号后面添加空格符号绕过限制。如上图所示,可通过不断在手机号后面添加空格,服务端会认为这是不同的手机号,以此绕过手机唯一性的检测;由于服务端在发送短信验证码时去除了特殊字符并且没有对手机唯一性进行二次检测,因此可达到短信轰炸的效果。
00绕过的姿势
在研发同学修复完此漏洞后,我进行了一次复测,发现服务端在处理手机号时,只是过滤了首位空格符号。那么这样是否就安全了呢?接下来我用回车符等其他特殊符号进行了一轮尝试,发现都无法绕过检测。这时我想到了00大法,可以将空格的16进制20改成00。我先在电话后面输入一个空格,然后在16进制下将20改成00,便可绕过限制,如下图所示:
漏洞产生的原因
服务端在发送手机验证码时分成了两个步骤:第一步服务端在收到手机号码时进行了手机号的唯一性检测(用于判断60s内是否有重复发送),然而此时没有对手机号过滤一些特殊字符,导致添加了空格符号的字符串被当成一个新的手机号;第二步在发送验证码时,却把手机号进行了一些特殊字符过滤,导致最终发送的目标都是同一个手机号。
修复建议
不建议单单使用过滤的方式来修复(很容易被绕过),个人认为可以将判断与发送逻辑合成一个。比如:当服务端收到手机号码时可以进行判断,若传入的手机号码中存在除数字以外的字符,则返回错误;或者过滤特殊字符串后,对过滤后的目标进行唯一性检查,并进行短信验证码发送。
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6.添加QQ群随时获取新消息QQ群号:831240632

帖子地址: 

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表