SSRF攻击服务器请求伪造攻击
CSRF攻击跨站请求伪造攻击也称客户端请求伪造攻击
两种攻击最主要的区别是一个在服务器,一个在客户端。
文章目录
前言 什么是SSRF攻击?
1.分类:
针对服务器的 SSRF 攻击:
针对后端系统的SSRF攻击:
2.SSRF攻击的绕过
url解析绕过:
ip地址进制转换:
指向任意IP的域名xip.io
协议限制绕过
3.ssrf攻击的防护:
总结
前言 什么是ssrf攻击?
由hacker构造请求,利用存在缺陷的Web应用作为代理,让服务端发起请求。
1.分类:
针对服务器的 SSRF 攻击:
攻击的定义:
由hacker构造请求,利用存在缺陷的Web应用服务器作为代理,让服务器发起请求的攻击。
这种攻击允许攻击者绕过对源IP地址的检查,访问受限的内网资源,甚至从内部系统中窃取数据、执行远程代码或对特定服务发起拒绝服务攻击
攻击的步骤:
1.发现漏洞:首先识别出可以触发服务器发起HTTP请求的点,如图片加载、文件下载、API请求等功能。
2.请求构造:创建一个精心设计的请求,这个请求将由服务器发送,目的可能是与服务器的内部网络或者外部恶意服务器通信。
3.执行与利用:将构造的请求发送到漏洞点,让服务器不自觉地执行该请求,将结果返回给攻击者或影响内部系统。
举例:burp靶场-针对本地服务器的基本 SSRF
描述:
步骤:
1.访问某个商品,点击“检查库存”,在 Burp Suite 中拦截该请求,并将其发送给 Burp Repeater。
2.将参数中的 URL 更改stockApi=http://localhost/admin,这应该会显示管理界面,表名我们ssrf成功,验证访问admin。
3.阅读 HTML 以识别要删除目标用户的 URL,
即:http://localhost/admin/delete?username=carlos
修改请求头:
Send 返回界面:表明我们已经发起SSRF攻击,删除成功
总结:针对本地服务器的基本 SSRF
就是对服务器发出一个正常的请求,bp抓包截取服务器对我们的回复,对内容进行修改,让服务器执行的正常的请求->异常请求,进而影响其内部系统,如本题,就是将查询库存->删除用户。
针对后端系统的SSRF攻击:
攻击的定义:
hacker利用后端系统中未严格校验用户输入或存在其他漏洞的功能,如文件包含、URL重定向等,通过构造恶意的URL或请求,诱使后端系统向攻击者指定的目标发送请求。
攻击的影响:
请求是由后端系统发起的,因此可以绕过针对客户端的直接防护措施,很难被用户直接察觉,一旦中招,会导致用户敏感信息泄露、未授权访问控制系统资源等后果。
甚至hacker还可以利用SSRF漏洞作为跳板,进一步发起其他类型的攻击,如SQL注入、命令执行等。
攻击的步骤:
1.请求构造:攻击者可以构造一个指向内部数据库的URL或指向恶意服务的URlL并提交给后端系统。
2.执行与利用:后端系统在处理该请求时,会尝试访问该URL指向的资源,从而触发SSRF攻击。
举例:burp靶场-针对后端服务器的基本 SSRF
描述:
1.访问某个商品,点击“检查库存”,在 Burp Suite 中拦截该请求,并将其发送给 Burp Intruder。
2.单击“清除§”,更改参数stockApi,http://192.168.0.1:8080/admin
然后突出显示 IP 地址的最后一个八位字节(数字1),单击“添加§”。
3.切换到Payloads选项卡,将payload类型改为Numbers,
ip地址只可能在1~255之间,所以我们在From和To框中分别输入1、255,至于以及Step停顿时间自己来定,但绝不能是0,因为这会对服务器造成极大的伤害,导致网站挂掉,通常Step停顿时间是1。
注意:最底下把勾去掉
4.点击“开始攻击”。
单击“length”列,可以看到一个状态为 200 的条目,说明http://192.168.0.135:8080/admin是爆破成功的服务器url
5.点击这个请求,发送给Burp Repeater.
并将其中的路径改为stockApi:/admin/delete?username=carlos(识别要删除的目标用户)
点击send。
返回正常数据,说明我们成功进行ssrf攻击
2.SSRF攻击的绕过
url解析绕过:
http://域名.com@10.10.10.10
ip地址进制转换:
举例:192.168.0.1
8进制格式:0300.0250.0.1
16进制格式:0xC0.0xA8.0.1
10进制整数格式:3232235521
指向任意IP的域名xip.io
举例:10.0.0.1.xip.io resolves to 10.0.0.1
协议限制绕过
当url协议限定只为http(s)时,可以利用follow redirect 特性构造3o2跳转服务结合合dict:// fle:/ gopher://
3.ssrf攻击的防护:
1.黑名单验证:过滤内网地址,过滤部分协议,对返回的内容进行识别,内网服务开启鉴权。
2.严格校验用户输入的URL:对所有用户提交的URL参数进行严格的白名单验证,只允许访问预定义的可信域名或路径。例如,限制请求的协议(HTTP、HTTPS)、主机名和端口号,通常只开放80、443等常用端口。
3.对返回内容进行识别:首先禁用URLOPT FOLLOWLOCATION;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致。
总结
ssrf攻击运行在内网或本地的应用程序,利用fle协议读取本地文件,可以对内网,本地进行端口扫描,获取一些服务(banner)的信息,仅仅使用get参数就可以实现对内外网的攻击。