SSRF学习记录

什么是SSRF?

官方解释:

SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种网络安全攻击技术,攻击者利用服务器上的程序向另一个服务器发送请求,通常是为了访问或操作攻击者自身无法直接接触的资源。

人话:隔山打牛

就是通过一个可以访问到的服务器去对另一个内网服务器发起攻击。

利用SSRF+为协议 来进行内网信息收集

file://伪协议

可以通过file:///proc/net/arp显示arp列表,加上bp扫描内网所有存活主机

具体:

先使用http://+ip去访问一个网段所有的ip,再使用file:///proc/net/arp显示所有存活主机。

dict:// 伪协议

 可以通过dict://+ip,加上bp扫描内网所有主机开放的端口

http://伪协议

gopher:// 伪协议

作用:可以通过gopher伪协议让外部公网服务器向内网服务器发送post请求传入数据。(一般不单独使用,大多配合其他漏洞比如sql注入,XXE等需要使用公网服务网向内网服务器发起请求的场景)

利用时注意的要点:

1.bp提交需要经过两次url编码。

2.传入数据第一个字符不会被传输,所以一般添加一个"_“来占位。

gopher构造get请求:

gopher构造post请求:

POST /n&me.php HTTP/1.1
Host: 172.250.250.4
Content-Type: application/x-www-form-urlencoded
Content-Length:15

name=benben2222

 302重定向绕过:

 DNS重绑定绕过:

当服务器端使用这样的防护策略:

 服务器端先检测url中的host,如果是域名将通过DNS协议解析得到ip,再进行判断是否为内网ip,如果是则不予访问,不是则服务端响应请求,响应过程会再次DNS解析,我们可以在第二次的DNS解析中放入内网地址实现访问。

原理:

利用服务器两次解析同一域名的间隙,更换域名背后的ip从而绕过SSRF的防御机制。

 我们可以通过对一个域名设置两个记录,一个A内网地址,一个B外网正常地址,再访问的时候会随机访问这两条记录,这样就有机会成功实现:在务器两两次解析同一域名的间隙,更换域名背后的ip。

https://lock.cmpxchg8b.com/rebinder.html

注意:

此绕过方法存在运气成分,当DNS中的TTL越趋近于0,越容易成功。 (国内成功率很小,因为一般情况下的DNS的TTL最小一分钟)

利用SSRF漏洞,进行内网的sql注入

大体sql注入流程不在赘述只是要注意:

1.使用SSRF是在一个url栏输入,要想在目标内网主机成功解析执行,需要经过两次URL编码,所以使用sql注入应该将空格换成%20,注释符为:“--%20”,注释本质上是--空格。 

2.直接在URL栏提交只需要做一次URL编码即可,若是利用hackbar,就要URL编码两次.原因是URL栏提交会自动编码一次,hackbar则不会编码。

利用SSRF漏洞,进行内网文件上传

场景:有一台可达公网服务器并且该服务器存在SSRF漏洞。另一台内网目标机存在文件上传漏洞,但是是内网服务器无法直接访问。

分析:首先是利用存在SSRF漏洞的服务器,访问内网包含文件上传漏洞的页面。

但是我们无法通过点击来选择文件并上传,这就很难受了,漏洞在面前,看得见却无法直接利用。

查看源码:

 得到post属性:Content-Type:multipart/form-data

构造pyload:

POST /Pass-01/index.php HTTP/1.1
Host: 172.250.250.14
Content-Type:multipart/form-data;boundary=feng-ge-fu
Content-Length:305

--feng-ge-fu
Content-Disposition: form-data; name="upload_file"; filename="phpinfo.php'
Content-Type:image/jpeg

<?php phpinfo();?>
--feng-ge-fu
Content-Disposition:form-data;name="submit'

上传
--feng-ge-fu--

要点:

1.boundary=feng-ge-fu这段是定义分隔符,可以自己定义随便字符我这例子是:feng-ge-fu

2.分隔符使用的是--feng-ge-fu,在最后的结束符是--feng-ge-fu--

3.具体修改长度Content-Length:305

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值