SSRF漏洞
一、SSRF概述
1.1 概述
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。ssrf是利用存在缺陷的web应用作为代理攻击远程和本地的服务器
CSRF:
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你的名义发送邮件,发消息,盗用你的账号,甚至于购买商品,虚拟货币转账。。。
发生条件:
1、登录受信任网站A,并在本地生成Cookie。
2、在不登出A的情况下,访问危险网站B。
1.2 危害
1.绕过CDN找到真实ip,如果存在web漏洞,服务器发起请求连接,也能获得目标站点的真实IP
2.利用gopher或者file协议读取到有价值的东西探测内部资源。
url=file:////var/www/html/tp_5.0.24/application/config.php
3.配合redis打组合拳拿下shell
url=gopher://127.0.0.1:6379/info //利用gopher探测 url=dict://127.0.0.1:6379/info //利用dict url=dict://127.0.0.1:6379/set d '<?php phpinfo();?>' //写入
4.寻找通过get方法就能造成攻击的web内部资产,比如get型注入,strut2
5.探测内网信息、攻击内网或本地其他服务穿透防火墙
二、利用
2.1漏洞出现点
1.通过url分享网页
2.转码编码处
3.图片加载下载
4.在线翻译
5.图片文章收藏功能
6.从URL关键字中寻找
share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
2.2绕过方式
1.利用@ # 符号
http://abc@127.0.0.1:8080 http://127.0.0.1:8080#abc
2.利用 [::] 绕过localhost
http://[::]:80/ >>> http://127.0.0.1
3.利用短地址
http://dwz.cn/11SMa >>> http://127.0.0.1
4.转换进制
将IP转换为十六进制或八进制
5.可以指向任意IP的域名 xip.io
6.利用句号 。
127。0。0。1 >>> 127.0.0.1
三、防御方法
1.限制常用http请求的端口比如 80、443、8080、8090
2. 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
3.设置ulr白名单或者黑名单限制IP
4.过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。