freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

挖洞经验 | 看我如何绕过某订阅端点的验证码
secist 2018-05-10 13:00:59 508668

关注我的朋友都知道,我已经有一段时间没有写过文章了,作为补偿我决定向大家分享一个我在私人项目中的有趣经历。

什么是验证码?

在我看来,验证码主要是用于避免机器人操作,并确保应用程序用户真实性的一个解决方案。

话不多说,下面进入我们的正题。

在测试应用程序时,我发现了一个带有验证码过滤器的订阅终端,如下所示:

http://example.com/captcha/captchaCheck?

挖洞经验:看我如何绕过某订阅端点的验证码

这很快引起了我的注意,因此我转到了src页面:

<form action=”/captcha/captchaCheck” method=”post”>
 <input name=”hash” value=”09573e52f752f3f5e6250b62aa34b8a8c08a4d22" type=”hidden”>
 <input name=”emailAddress” value=”test@email.com” type=”hidden”>
 <input name=”name” value=”” type=”hidden”>
 <input name=”enteredValue” size=”25" type=”text”> 
 <input value=”Subscribe” type=”submit”>
 </form>

如果你仔细查看表单,你可以发现这里有两个有趣的参数:

“hash”(加密哈希)和“enteredValue”(验证码的数值)

我填写了验证码并发送了表单:

在这一点上,我需要了解这个验证码的行为/功能,所以:

我需要做个简单的判断:

If “hash” == “enteredValue” ,那么请求被接受

If “hash” != “enteredValue”,则请求被阻止

很好,所以..这很简单:如果参数匹配:请求被接受..现在问题的复杂性在于:hash是否可以被解密? 接受挑战!

挖洞经验:看我如何绕过某订阅端点的验证码

我把哈希粘贴到了我的终端中,并尝试使用“dcipher”来解密:

(使用在线彩虹表[哈希工具包,GromWeb,MD5Hashing]和查找表攻击服务解密哈希。)

挖洞经验:看我如何绕过某订阅端点的验证码

太好了!成功解密! 可以看到6位被解密出来的数字与下面验证码图片上的数字是相等的:

挖洞经验:看我如何绕过某订阅端点的验证码

现在一切准备就绪,让我们来创建一个bot!

挖洞经验:看我如何绕过某订阅端点的验证码

我使用python创建了一个用于PoC目的的bot,以展示攻击者如何轻松绕过此验证码行为并滥用其功能:

  1. 首先,bot会向订阅页面发送一个携带验证码的请求 - > https://company.com/captcha/form/?
  2. Bot在页面上检索'hash'参数值。
  3. Bot解密哈希(dcipher)
  4. 通过解密后的值,bot会向http://company.com//captcha/captchaCheck创建一个POST请求,并自动填充随机值(电子邮件,名称,ipaddress等)的所有用户表单所需参数
  5. Bot发送POST请求并绕过验证码

视频演示:

bot虽然简单,但他的威力却不容小觑。因此,在发给该项目的PoC邮件中,我如下解释道:

攻击者可以创建一个绕过验证码的机器人,并自动化的完成这些任务,将无限制的请求发送到多个网址或包含随机/伪造用户,电子邮件,IP地址的列表......用于垃圾邮件或恶意目的(收集数据,分析流量行为等)

该项目厂商的反应也非常迅速,1小时之内便对我进行了回复。

TIMELINE

提交 2018-04-16 03:51:17 UTC

团队回复与赏金 2018-04-16 04:48:17 UTC

(赏金$ xxx

*参考来源:medium,FB小编 secist 编译,转载请注明来自FreeBuf.COM

# 验证码
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 secist 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
阅读学习干货
secist LV.9
每个人的心中都有一个梦。。
  • 369 文章数
  • 267 关注者
ATTCK-PenTester-Book:根据ATT&CK知识体系编制的长达400页的渗透手册
2020-02-10
Sniffle: 蓝牙5和4.x LE嗅探器
2019-11-23
Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload
2019-11-11
文章目录