1.原理
SSRF服务器端请求伪造是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定 URL 地址获取网页文本内容,加载指定地址的图片,下载等等。
2.漏洞点
有服务器请求的需求的地方
如远程图片加载,文件收藏下载,翻译,转码等功能
share,url,link,target,source,image等参数
?source=x.x.x.x/1.php
?url=127.0.0.1
3.常出现点
ssrf知识点总结-安全客 - 安全资讯平台 (anquanke.com)
1.社交分享功能:获取超链接的标题等内容进行显示
2.转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
3.在线翻译:给网址翻译对应网页的内容
4.图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
5.图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验
6.云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
7.网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
8.数据库内置功能:数据库的比如mongodb的copyDatabase函数
9.邮件系统:比如接收邮件服务器地址
10.编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
等
4.利用
端口扫描
?xx=http://127.0.0.1:3306/
?xx=http://127.0.0.1:8081/
内网扫描
服务器自己可以连接到内网
?xx=http://192.168.46.148:xx
伪协议玩法
PHP伪协议总结 - 个人文章 - SegmentFault 思否
上传后门
http://x.x.x.x/shell.php
5.防御
1.端口白名单,http常用的端口,比如,80,443,8080,8090
2.内网ip黑名单
3.禁用不需要的协议,防止伪协议