首页 > 技术文章 > SSRF学习笔记

domb2235 2021-12-14 20:58 原文

SSRF(Sever-Side Request Forgery)服务器端请求伪造对比CSRF:

SSRF ==>> 让服务器帮我们发送数据(欺骗服务器)

CSRF ==>> 利用JS代码让浏览器发送数据(欺骗浏览器)

 

具体有什么作用呢?

1、探测内网

2、做攻击跳板(借刀sha人)

3、探测“本机”

 

 

先来举一个例子:

有道翻译(可以翻译网页)https://fanyi.youdao.com/

站长工具-ip地址查询 http://mip.chinaz.com/

 

我先查询了我自己的公网ip

 

有道翻译可以在线翻译,可以输入文字;也可以输入网址,输入网址的话在右边他会给你提供一个新的网址,点进去之后就是翻译好的页面了

 

 

 

那么我把查询ip地址的网址放进去,翻译好之后的页面显示的ip地址和我的ip还会不会一样呢?

结果这里显示的是一个浙江杭州的ip地址,why?

这里就要想一下有道翻译是怎么翻译的:当你提供网址给它的时候它是自己去访问了这个网址,然后再将翻译后的结果发送给你。所以当有道的服务器访问我们填入的网址的时候查询出来的ip地址肯定是有道服务器的IP地址呀,最后我们看到的翻译后的界面的ip地址和我们自己的IP地址肯定就不同了。通过这个办法就可以判断是否存在SSRF

Tips:

1、http://www.baidu.com@127.0.0.1访问的是我们的本机,也就是说加@之后,只访问@后面的内容

2、ip可以转化成纯数字

3、http://dnslog.cn/网站可以获取域名,访问的到的域名和访问127.0.0.1的效果是一样的

 

 

然后我们来到靶场,没啥好说的,先爆破端口(注意:协议用dict://)

然后发现80,81,3306端口开放了

 

想要从公网访问是不行的,所以就要麻烦靶场自带的SSRF功能输入http://127.0.0.1:81,页面显示空白,但是暗藏玄机,查看网页源代码flag就出来了

总结:靶场就是一个提供网页显示的页面,我们在框中搜索什么,就会显示什么页面,服务器先去访问,然后再将访问得到的内容送回给浏览器,然后我们就能看见,这就是典型的SSRF,所以我们就可以探测服务器本机的端口,爆破出开放的端口之后,flag就藏在81端口中。

 

推荐阅读