SSRF小结

文章介绍了SSRF(Server-SideRequestForgery)的概念,它是攻击者利用服务器发起请求的一种方式,常用于攻击内部系统。常见场景包括社交分享、转码服务等。检测SSRF漏洞可通过分析请求来源,防御措施包括验证响应、限制端口、黑名单内网IP及禁用非必要协议。

个人理解

  • 博主在学习SSRF时总有一些奇怪的既视感,经过亿秒的反应后,得出了CSRF是借助用户之手发送请求,SSRF是借助服务器之手发送请求的结论。博主新手上路,如有理解错误,欢迎各位指正。

场景

  • 外网无法直接访问的内部系统,攻击者通过伪造服务端的请求发起攻击,借由服务端为跳板来攻击目标系统。

渗透目的

  1. 内外网的端口和服务探测
  2. 主机本地敏感数据的读取
  3. 内外网主机应用程序漏洞的利用

漏洞发现

  • 根据第一条的说法,其实只要存在能够对外发起网络请求的地方,就可能存在SSRF漏洞。
  • 以下是一些实例:
    1. 社交分享功能:获取超链接的标题等内容进行显示;
    2. 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览;
    3. 网页内容翻译:给网址翻译对应网页的内容;
    4. 图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片;
    5. 图片/文章收藏功能:主要网站会取URL地址中title以及文本的内容作为显示以求一个好的用户体验;
    6. etc.

验证漏洞

  • 因为SSRF漏洞是构造服务器发送请求的安全漏洞,所以我们可以通过抓包分析发送的请求是否是由服务器端发送的来判断是否存在SSRF漏洞;

  • 在页面源码中查找访问的资源地址,如果该资源地址类型为http://www.xxx.com/a.php?image=(地址)的可能存在SSRF漏洞。

利用漏洞

  • 首先尝试是否通过服务器可以访问外网,如果服务器有其他服务只能本地访问,比如phpmyadmin,则可以构造ssrf.php?url=127.0.0.1、phpmyadmin并使用burp进行爆破,查找开放端口。

防御

  1. 过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准;

  2. 统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态;

  3. 限制请求的端口为http常用的端口,比如80,443,8080,8090;

  4. 黑名单内网ip。避免应用被用来获取内网数据,攻击内网;

  5. 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值