part1
点击上方蓝字关注我们
往期推荐
将二进制空间安全设为"星标⭐️"
第一时间收到文章更新
摘要
居民代理是一种利用分配到实际居民IP地址的代理服务器来代表用户发起网络请求。这些IP地址属于真实的互联网服务提供商(ISP),因此被视为普通家庭用户的流量,而非数据中心代理或虚拟IP。这种技术有助于提高请求的隐匿性和可信度,因为目标网站看到的流量来自于真实的居民网络,而不是数据中心或商业服务器。
居民代理选择
对于 API 攻击者来说,居民代理至关重要,因为它们减少了被目标服务器阻止的风险——这些服务器通常会标记或限制可疑的 IP,尤其是与数据中心关联的 IP。使用居民代理和 Burp Suite,可以更有效地测试 API,因为攻击者可以保持对受限端点的访问,并在更真实的条件下观察响应。
Burp Suite是一款广泛用于网络安全领域的集成式Web应用程序安全测试工具,由PortSwigger公司开发。它帮助安全研究人员和渗透测试人员发现和分析Web应用中的安全漏洞,如SQL注入、跨站脚本攻击(XSS)、身份验证和授权漏洞等。
Burp Suite目前有三种版本,其中Community版是免费的基础版本, 包含手动测试的基本工具,如Proxy、Repeater、Decoder等,但缺少自动扫描等高级功能。
在选择居民代理提供商时, 要综合考虑IP池大小、覆盖地区和性能等因素, 以确保能够满足测试需求。
拥有一个大型、多样化的 IP 池可以帮助攻击者通过轮换不同的地址来避免检测,而广泛的地区覆盖可以模拟来自不同地区的流量,这在 API 测试中通常至关重要。除此之外,还要寻找高在线率和快速响应的提供商,还应考虑提供商的安全和隐私政策, 一些提供商可能会记录数据,这可能会暴露敏感信息。
最后,确保提供商能够与 Burp Suite 等工具顺利集成,因为便捷的集成可以简化工作流程。
可以参考的提供商包括: ProxyScrape、ProxyMesh、SmartProxy和ProxyEmpire
下面将利用Burp Suite和ProxyScrape代理提供商的组合来测试代理的工作原理和效果。
ProxyScrape代理配置
以下是ProxyScrape的代理配置界面:
(1).Proxy type设置
默认情况下,提供商会提供居民代理。但你可能会发现他们还提供移动代理。目前,这里选择使用居民代理,后面会讨论为何有时可能需要考虑使用移动代理。
(2).Country设置
默认情况下,这些提供商会随机化选择来源国家的流量。如果希望明确控制流量看起来来自哪个地区,则需要重新配置这一选项。
(3).Session Duration
根据实际需求, 可能会需要"粘性会话", 这是一项独特功能, 可以在一段设定的时间内保持相同的 IP 地址,而不是每次请求都轮换新的 IP。
在需要保持一致性的场景中,例如登录账户或进行多个请求时,需要这些请求看起来像是来自同一用户,粘性会话非常有用。它提供了对 IP 保持时长的控制,通常在轮换前可持续数分钟,从而确保会话稳定,不会频繁中断。
如今,大多数 Web 应用和 API 不再依赖此功能,因此最好在每个请求时轮换 IP。但如果在使用中发现遇到问题,可以根据需要调整持续时间。
ProxyScrape代理使用
在Burp Suite中设置ProxyScrape代理之前, 先通过简单的curl命令来看看实际效果,如图:
从上图可以看到, 连续的两个请求显示来自全球不同的 IP 地址。现在,开始配置 Burp Suite 使用居民代理。
虽然Burp Suite本身是一个攻击代理, 但可以将其配置为使用上游代理, 点击"Proxy"选项卡 -> 点击"Proxy settings"齿轮图标,打开设置对话框, 在左侧窗格中, 展开"Network"节点并选择"Connections", 向下滚动到"Upstream proxy servers"部分,如下图:
点击"Add"按钮添加一个新的上游代理服务器, 填写居民代理提供商的详细信息, 对于认证类型, 大多数提供商会使用 Basic,即使用 base64 编码的用户名/密码键值对。如图:
填写完成后, 点击"OK"按钮应用上游代理规则。
配置注意事项:
在配置过程中有一个选项可以设置“目标主机”, 这里将其留空, 以便 Burp Suite 将所有流量代理到上游居民代理。如果只想代理特定流量,可以在此进行配置。不过不建议这样做, 替代方式是可以在 Burp Suite 中使用 Target Scopes 来控制流量。
实际上将此上游代理配置为用户设置的一部分,这意味着所有后续流量都会通过居民代理,即使关闭并重新打开 Burp 后也是如此。
这可能并非我们想要的效果。不仅会增加成本,因为所有流量都经过上游代理,灵活性也会降低。并且此配置可能会导致额外的流量计费。
更好的方法是将其配置为项目设置,点击 Override options for this project only 滑块,将代理绑定到项目配置。这样,可以为每个客户项目设置特定的上游代理,并在需要时将费用转嫁给客户,方便在项目文件中进行管理。
项目文件是 Burp Suite 专业版的一个优势,而这正是一个很好的应用场景。
将外部工具代理到居民代理
现在 Burp Suite 代理已配置为将流量重定向到上游居民代理,现在可以使用任何支持代理的外部工具。例如:使用 feroxbuster 在使用居民代理的情况下大规模地对目标进行目录暴力枚举。只需在配置好上游居民代理后通过 Burp Suite 管道传输即可。
$ feroxbuster -u http://crapi.apisec.ai --proxy http://localhost:8080 -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -o dirscan.log
这样做非常有效,因为每个请求的负载分散到不同的居民 IP地址上来掩盖攻击者行为,从而显著降低 IP 被封禁的风险。
实用小技巧:
(1).考虑使用移动代理
居民代理效果固然好, 但如果发现目标仍然能够封锁请求,可以考虑使用移动代理。大多数提供商都提供此选项,但通常费用会稍高一些。在某些项目中,这可能是值得的选择。
在某些情况下,可能会更倾向于使用移动代理而不是居民代理,尤其当需要更高的合法性和匿名性时。移动代理通过真实的移动设备并使用 3G、4G 或 5G 网络路由流量,而这些 IP 地址是由移动运营商动态分配的。由于大量用户会共享这些移动 IP 地址,并且运营商会定期更换 IP,移动代理更不易被标记或拉黑,因此非常适合绕过严格的基于 IP 的限制。
移动代理在 API 测试中成功率很高,尤其是当想模拟移动应用行为或测试 API 在移动流量下的表现时。它们对于访问仅限移动端的内容、了解应用特定行为或研究不同于常规网络的移动网络限速非常有用。
这种额外的真实感使得移动代理在测试移动应用的 API 或评估目标在移动交互方面的防御效果时非常有效。
(2).某些国家比其他国家更适合作为代理节点
在某些国家,IP 地址的可用性受到限制,特别是移动设备的 IP 地址。所以,如果能找到“每千人独特 IP 数”较少的国家,使用这些国家的代理被 WAF 和 API 网关屏蔽的可能性会较小,因为封锁这些 IP 可能会影响其他合法用户。
例如,根据 ProxyEmpire 的数据,一些国家的 IP 覆盖率较低,比如墨西哥平均每千人拥有 224 个 IP,伊朗有 66 个,老挝只有 8 个。这主要归功于网络地址转换 (NAT) 和电信供应商及 ISP 的 IPv4 公共地址复用需求。
原文始发于微信公众号(二进制空间安全):利用居民代理绕过IP封锁进行API测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论