vlambda博客
学习文章列表

CSRF和SSRF不只一字之差

Web安全领域有太多的攻击方式,SQL注入、文件上传等等,大家都已经耳熟能详,今天主要想讲讲CSRF和SSRF,为什么要讲它们呢?因为它们名字太相似,笔者经常一时想不起它们的区别。


0x01

CSRF


CSRF,即Cross-Site Request Forgery(跨站请求伪造),是通过从其他网站(跨站)引发伪造请求来实现攻击,这里强调几个关键字“A网站登录未失效”“恶意链接”“不知情”,它们分别描述了攻击的前提、过程和结果。攻击过程如下图:

举个实际的例子,假设A是一个可以进行转账且存在CSRF风险的网站,小明登录A网站后,在没有退出登录的情况下访问了被植入恶意元素的B网站,小明在打开B网站的同时,B网站会在加载网页时偷偷的向A网站发送另一个转账请求,小明就在不知情的情况下给小偷转了5000元。


B网站恶意元素<img src=”https://A?account=xiaoming&to=xiaotou&amount=5000”>


A网站的请求链接(https://A?account=xiaoming&to=xiaohua&amount=5000)。


0x02

 SSRF


SSRF,即Server-Side Request Forgery(服务器端请求伪造),是攻击者利用服务器发起伪造请求来实现攻击。其实,在笔者眼里,一般的网站服务器很少会存在接受用户指定访问目标且对访问目标不做限制的需求,但是如果网站真的存在这样的风险,攻击者可以利用存在SSRF漏洞的服务器A,以它为跳板对A所在内网服务器B展开进一步攻击和入侵。


通过下面这张图,小编来告诉各位看官SSRF都做了些什么。

CSRF和SSRF不只一字之差

举个例子,A网站允许用户指定想请求的对象,如果黑客向A发送的请求不是访问A服务器上的对象,而请求的是访问B网站,会怎么样呢?收到这个请求后,A会向内网服务器B请求B上的文件,这就直接导致了黑客对内网的攻击。


访问A服务器上,如某个用户上传的文件,访问链接为http://A?Url=A/upload/XX.doc


黑客向A请求访问B网站,链接为:http://A?Url=B/etc/passwd。


0x03 

它们的区别


根据以上对CSRF和SSRF的介绍,笔者总结了一些两者的区别:

CSRF和SSRF不只一字之差



CSRF和SSRF不只一字之差


FCC30+

长按左边二维码