首页 > 技术文章 > ssrf漏洞

ophxc 2020-05-10 22:25 原文

ssrf

SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源,例如www.xxx.com/2.php?img=www.xxx.com/xxx/7/gif.
我们可以利用ssrf漏洞进行内外网的端口服务扫描,目标主机数据读取,内外网站点漏洞利用比如说xxe等,只要是有调用外部资源,那么他一定程度上就可能存在ssrf漏洞,ssrf漏洞利用的就是两个服务器之间的信任关系。
对于SSRF过滤的绕过: 开发者会对url进行过滤,将传过来的url参数进行正则表达式匹配,从而去除掉内网的ip,这样攻击就打不到内网了,例如^192\.168(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}$
对于这种正则表达式的匹配我们有些时候可以进行八进制,十六进制的转换。
对于192.168.3.6:

8进制格式:0300.0250.3.6

16进制格式:0xC0.0xA8.3.6

10进制整数格式:3232235521

16进制整数格式:0xC0A80306  

利用302跳转:http://xip.io

网络上的一个服务xip.io,我们访问这个服务时,就如果在本地,192.168.3.6.xip.io我们还是会被重定向到192.168.3.6,这样我们就绕过了正则匹配。

利用协议:file协议,GOPHER协议

Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。在WWW出现之前,Gopher是Internet上最主要的信息检索工具  
Gopher协议没有默认端口,需要制定POST方法,回车换行使用%0d%0a,参数之间的分隔符也用URL编码,其他与HTTP协议类似。

https://www.jianshu.com/p/ce3bd1db0a46
https://blog.csdn.net/a3320315/article/details/102880329

一个非常有用的例子: https://www.cnblogs.com/HYWZ36/p/10295548.html

利用url解析: http://www.baidu.com@192.168.0.1/,此时服务器正则表达式判断到www.baidu.com就结束了,但实际我们访问的是我们本地的内网。
DNS重绑定攻击:DNS重绑定攻击是指攻击者欺骗用户的设备或浏览器来绑定到一个恶意的DNS服务器,从而使设备访问非预期的域名。DNS重绑定攻击通常用于入侵设备,然后将其作为中继设备访问内部网络。

 

推荐阅读