ssrf

SSRF形成的原因是服务端提供了从其他服务器应用获取数据的功能,在用户可控的情况下,未对目标地址进行过滤与限制,导致此漏洞的产生。

利用函数file_get_concents();fopen()和fpassthru();curl_exec();fsocksopen();

1.php

可利用file://    http://   ftp://   php://  zlib://   data://  phar://  expect://

exp  a=file:///c:/config.ini ; a=http://xx.xx.xx.xx:port/info ;a=php://filter/read=convert.base64-encode/resourse=xx.php

 此时allow_url_fopen必须打开

PHP 带有很多内置 URL 风格的封装协议,可用于类似 fopen()、 copy()、 file_exists() 和 filesize() 的文件系统函数。 除了这些封装协议,还能通过 stream_wrapper_register() 来注册自定义的封装协议。

Note: 用于描述一个封装协议的 URL 语法仅支持 scheme://... 的语法。 scheme:/scheme: 语法是不支持的。

Table of Contents

  • file:// — 访问本地文件系统
  • http:// — 访问 HTTP(s) 网址
  • ftp:// — 访问 FTP(s) URLs
  • php:// — 访问各个输入/输出流(I/O streams)
  • zlib:// — 压缩流
  • data:// — 数据(RFC 2397)
  • glob:// — 查找匹配的文件路径模式
  • phar:// — PHP 归档
  • ssh2:// — Secure Shell 2
  • rar:// — RAR
  • ogg:// — 音频流
  • expect:// — 处理交互式的流

2.php

curl所支持的协议dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp

exp  url=dict://127.0.0.1:port/info  可以查看某端口服务的banner信息

        url=file:///etc/passwd  读取文件信息

         gopher://有待研究。。。

3.php

这里的也可以产生

漏洞危害

1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

利用file协议读取本地文件等

以下还未接触

2.攻击运行在内网或本地的应用程序(比如溢出);
对内网web应用进行指纹识别,通过访问默认文件实现;
攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

 

 

 

 

 

 


 

你可能感兴趣的:(web安全学习)