上一篇博客我讲了下CSRF,这一篇我们就来说下SSRF,别看这两者名字很像,但是其实差别还是有点大的。
CSRF是伪造客户端的请求,为了绕开服务端的检测,在上一篇中我们运用了提交表单的方式去跳向被攻击网站的方式去伪造请求,从某种意义上说,就是A页面无法访问B服务,但是B页面可以访问B服务,于是乎A页面就访问了B页面并通过B页面去访问B服务以完成不可告人的目的。
SSRF差不多也是这么个情况,只不过这里充当B页面的是个服务器,比方说A服务和B服务可相互访问,但是A页面只能访问A服务不能访问B服务,这种情况大多出现在B页面处在内网环境下,在这种情况下A页面可以通过A服务去获取B服务的内容。当然这种获取的方式分为合法和不合法,合法的就是SNAT技术,不合法的就是SSRF攻击。
此外还有一个叫做XXE的攻击,在服务器上很多信息其实是不开放的,但是有些请求和响应的过滤做的不完全的服务会被利用,插入一些脚本的请求可以读取服务器上的数据,而利用XML中的DTD的语句制造的攻击名为XXE攻击
其实关于SSRF、XXE攻击我真的没有什么特别想讲的,因为我所有了解和知道的东西几乎来源于https://www.kanxue.com/book-6-108.htm,看雪论坛,而和前两篇自己测试的情况不同,SSRF和XXE其实不是那么容易测试(测试环境比较复杂,而且有相当需要的脚本功底)
这里之所以讲一下这两种攻击,因为我发觉这两种攻击本质是一样的,都是由于攻击者只能访问A资源不能访问B资源,但 A资源可以访问B资源,且A资源对请求、响应的检测不全面,被攻击者利用以脚本为请求参数,利用A执行自己的攻击脚本去访问B资源。不同的是,AB是否在同一主机上?脚本是DTD还是Http、File、FTP链接。
至于具体的攻击测试,如果以后我可以遇到比较好的攻击例子再说吧。