Duke大学漏洞实录:一次Open Redirect(开放重定向)的完整狩猎指南

4 阅读3分钟

漏洞概述:什么是开放重定向?

大家好,我是黑客Ashish Rai。今天要分享的是我在Duke University发现的一个开放重定向漏洞,编号 CVE-2018–1000671

开放重定向是一种常见的安全漏洞。简单来说,当应用程序允许用户控制重定向或跳转的目标URL,并且没有对不可信的用户输入进行有效验证时,攻击者就可以构造一个恶意链接,将毫无戒备的用户从合法的域名引导至攻击者的钓鱼网站。

漏洞挖掘实战:如何发现它?

在针对特定域名进行漏洞狩猎时,寻找开放重定向既可以手动操作,也可以借助自动化工具。

核心关注点:端点与参数

开放重定向漏洞通常存在于URL参数中,有时也会藏在URI的参数里。以下是一些典型的测试案例:

  • 直接跳转案例 http://victim.com/next=http://evil.com 这种形式最直接,极有可能触发重定向。

  • 参数值篡改案例 http://victim.com/next=index.php 这种场景下,即使参数值看起来是一个本地文件,我们也可以尝试将其篡改为外部域名,例如改成http://evil.com,从而测试是否存在重定向。

测试建议: 对每一个你发现的参数进行尝试,总有一个可能会成功。虽然这通常被视为低危漏洞,但它绝对是新手入门测试的绝佳切入点。

提升漏洞危害:组合拳打法

单个的开放重定向可能威力有限,但通过与其他漏洞结合,其危害性会大大增加:

  1. 升级为反射型XSS(跨站脚本):某些情况下,可以结合JavaScript伪协议,将重定向转化为XSS攻击。
  2. 窃取OAuth密钥:利用开放重定向,可以劫持OAuth流程中的回调URL,从而窃取用户的授权码或令牌。
  3. 漏洞链组合:搜索“Open Redirect chain”可以找到很多将开放重定向与其他漏洞(如CRLF注入、SSRF等)结合,形成更大杀伤力的攻击链。

学习资源推荐

  • HackerOne报告参考
    • [https://hackerone.com/reports/504751](https://hackerone.com/reports/504751)
    • [https://hackerone.com/reports/311330](https://hackerone.com/reports/311330)
    • [https://hackerone.com/reports/753399](https://hackerone.com/reports/753399)
    • [https://hackerone.com/reports/683298](https://hackerone.com/reports/683298)
  • Payload集锦
    • [https://github.com/payloadbox/open-redirect-payload-list](https://github.com/payloadbox/open-redirect-payload-list)

自动化工具与Google Dorking

如果你希望提高效率,可以尝试一些自动化扫描工具,例如openredirex

同时,利用Google Dorking语法也能有效定位可能存在漏洞的页面:

site:testphp.vulnweb.com/ inurl:redir | inurl:url | inurl:redirect | inurl:return | inurl:src=http | inurl:r=http

漏洞影响

URL重定向或未经验证的重定向漏洞通常被用于网络钓鱼攻击或恶意软件分发。其具体影响包括:

  1. 品牌信誉受损:攻击者可以将受害者重定向至低俗网站(如18+网站),由于重定向源自你的域名,这会严重损害你网站的信誉。
  2. 凭证窃取:攻击者可以在你的域名掩护下,投放恶意软件或钓鱼页面,从而窃取用户凭据。FINISHED CSD0tFqvECLokhw9aBeRqg7o9jUb9HTsfawRycLqmLpvnllLr2bhIHKqxnHIFDI4BkXN+G9B4H1u5uPJUwRAPmR7MMWayd4UfnJaoIlkprwjthPQ9q5qS1Czx6q5AvAF