跳转至

SSRF相关

SSRF之PHP

filter_val parse_url 限定host bypass

利用条件:

  • 使用filter_val
  • 用parse_url限定host
  • 限定host时使用了正则表达式

filter_var($url, FILTER_VALIDATE_URL)返回$url是否是一个有效的url payload:

  • url=0://evil.com:80,felinae.cn:80/
  • url=0://evil.com:23333;felinae98.cn:80/

Reference:

libcurl parse_url()

利用条件:

  • 用parse_url限制host
  • 限制了schema(不然可以使用上一个)

原理http://u:p@a.com:80@b.com/

parse_url解析结果:

schema: http 
host: b.com
user: u
pass: p@a.com:80
libcurl解析结果:
schema: http
host: a.com
user: u
pass: p
port: 80
@b.com会被忽略