概念:服务器端请求伪造
SSRF是服务器对用户提供的可控URL地址过于信任,没有经过严格检测,导致攻击者可以以此为跳板攻击内网或其他服务器。

一般最最最常见于url跳转 redirect等地方。一般用来收集内网信息 探测内网ip 端口。利用ftp dict gopher等协议去请求。

file协议拿来进行本地文件的读取,http协议拿来进行内网的ip扫描、端口探测,如果探测到6379端口,那么可以利用http、gopher、dict这几个协议来打开放6379端口的redis服务(一般开放了这个端口的是redis服务),原理是利用他们以目标机的身份执行对开启redis服务的内网机执行redis命令,最后反弹shell到我们的公网ip机上。

如访问:/?url=http://127.0.0.1:8001 然后查看回显。如果返回响应码都是一样的 返回参数也一样可以考虑查看响应时间的变化(我不知道 我没试过 别人是这样写的)

如果完全没有回显 这个漏洞好像没有什么用 鸡肋至极

今天看见代码审计书上说可以通过短链接来绕过ssrf限制,所以就稍微收集了一下这个漏洞相关。
出现位置:

  1. 社交分享功能:获取超链接的标题等内容进行显示
  2. 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
  3. 在线翻译:给网址翻译对应网页的内容
  4. 图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
  5. 图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用具体验
  6. 云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
  7. 网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
  8. 数据库内置功能:数据库的比如mongodb的copyDatabase函数
  9. 邮件系统:比如接收邮件服务器地址
  10. 编码处理, 属性信息处理,文件处理:比如ffpmg,ImageMagick,docx,pdf,xml处理器等
  11. 未公开的api实现以及其他扩展调用URL的功能:可以利用google 语法加上这些关键字去寻找SSRF漏洞。
    一些的url中的关键字:share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain……

大家直接去看这篇文章好了 她写的非常好 我是知识收集者:
跳转绕过
绕开后端服务器的过滤以及HTTP的限制,这个时候可以使用跳转的方式来进行绕过
php: header(“Location: $scheme://$ip:$port/$data”);

大概相关资料看完了,redis是常规的ssrf利用就不说了。看完第一反应是这个漏洞有什么用,不就是能得到一个内网ip么,然后突然觉得自己这种想法很蠢虽然也真实。它是去可以访问内部资源。去探测内部资源能得到有效回显的情况下应该是能看到内部很多资源当然得有具体路径然后没有访问限制。而不仅仅是一个内部ip

别人总结的利用方式:

0x03 利用方式

1.让服务端去访问相应的网址 2.让服务端去访问自己所处内网的一些指纹文件来判断是否存在相应的cms 3.可以使用file、dict、gopher[11]、ftp协议进行请求访问相应的文件 4.攻击内网web应用(可以向内部任意主机的任意端口发送精心构造的数据包{payload}) 5.攻击内网应用程序(利用跨协议通信技术) 6.判断内网主机是否存活:方法是访问看是否有端口开放 7.DoS攻击(请求大文件,始终保持连接keep-alive always)

参考:http://blog.leanote.com/post/snowming/b654d901ff8a
https://www.cnblogs.com/-chenxs/p/11749367.html
https://imgconvert.csdnimg.cn/aHR0cHM6Ly9ibG9nLTEyNTE4MTYwOTguY29zLmFwLWJlaWppbmcubXlxY2xvdWQuY29tLzIwMTkwMzMwMDcucG5n?x-oss-process=image/format,png
https://xz.aliyun.com/t/2115