一、SSRF漏洞介绍
1、利用一个可以发起网络请求的服务,当做跳板来攻击其他服务。最常见的例子:通过Web Interface请求受保护网络内的资源。
2、穿越网络防火墙的通行证
二、SSRF漏洞的作用
1、扫描内部网络
2、向内部任意主机的任意端口发送精心构造的数据包
3、DOS(请求大文件,始终保持连接 Keep-AliveAlways)
4、暴力穷举(users/sirs/files)
5、两种情况会产生阻碍:
服务端开启OpenSSL无法进行交互利用;
服务端需要鉴权信息(Cookies& USER&Pass)不能完美利用
三、如何找到SSRF漏洞
1、能够对外发起网络请求的地方,就可能存在SSRF漏洞
2、从远程服务器请求资源(Upload from URL,import & Export RSS feed):Discuz,Web Bolg
3、数据库内置功能(Oracle、MongoDB、MSSQL、Postgres,CouchDB)
4、Webmail收取其他邮箱邮件(POP3、IMAP、SMTP)
5、文件处理、编码处理、属性信息处理(ffpmg,ImageM爱车,DOCX,PDF,XML处理器)
四、利用SSRF漏洞&利用技巧
1、漏洞利用条件
需要成功发送针对目标服务漏洞的数据包
2、漏洞利用遇到限制如何绕过
IP限制绕过(xip.io、十进制ip、八进制ip)
协议限制绕过(Redirect、CRLF header injection)
调用系统支持的协议和方法(Protocols & Wrappers)
五、能够用于SSRF利用的漏洞列表
jboss.py:Jboss远程invoker war导致命令执行
jdwp.py:java调试接口对外开放导致命令执行
shellshock.py:bash破壳导致远程命令执行
axis2.py:axis2-admin部署server导致命令执行
jenkins.py:jenkins scripts接口可命令执行
smtp.py:smtp服务器可暴力猜测用户密码
confluence.py:confluence ssrf可读取任意文件
struts2.py:struts2一堆命令执行漏洞
couchdb.py:counchdb web api远程命令执行漏洞
mogodb.py:mongodb ssrf漏洞
tftp.py:tftp协议,udp协议发送数据包的扩展利用
docker.py:docker API可以导致命令执行漏洞
php_fastcgi.py:php_fpm,fastcgi可执行任意命令
tomcat.py:tomcat、manager、HTML部署war间接命令执行
elasticsearch.py:es引擎groovy脚本命令执行
pop.py:pop3服务器可暴力猜测用户密码
webdav.py:WebDav PUT上传任意文件
ftp.py:ftp服务器可暴力猜测用户密码,上传文件
portscan.py:端口猜测指纹扫描
websphere.py:websphere admim可补助war间接命令执行
gopher.py:万金油协议,可以做任何事
pstack.py:apache hadoop远程命令执行
zentaomps.py:zentopms远程命令执行漏洞
hfs.py:hf远程命令执行漏洞
glassfish.py:galssfish通用文件读取漏洞和war文件部署