赞
踩
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击。
一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,也就是内网。
利用一个可以发起网络请求的服务,当做跳板来攻击其它服务
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。ssrf是利用存在缺陷的web应用作为代理去攻击远程和本地的服务器。
也就是说,对于为服务器提供服务的其他应用没有对访问进行限制,如果我构造好我的访问包,那我就有可能利用目标服务对他的其他服务器应用进行调用。
SSRF漏洞就是通过篡改获取资源的请求发送给服务器;
但是服务器并没有检测这个请求是否合法的;
然后服务器以他的身份来访问其他服务器的资源。
以下函数可以通过网络协议访问目标服务器上的资源:
file_get_ contents()
file_get_ contents函数可以读取本地和远程的文件,支持多种协议,如ftp,http,https还可以读取php源码;
如:php://filter/read=convert.base64-encode/resource=ssrf.php,就可以将后台当前目录下的ssrf.php文件的bs64编码返回。
fsockopen()
fsockopen函数是文件指针
curl_exec()
curl_exec函数将访问前端提交的url参数的网址。
SSRF通过远程加载来实现攻击。
在对功能上存在SSRF漏洞中URL地址特征的观察,通过收集,大致有以下关键字:
如果利用google 语法加上这些关键字去寻找SSRF漏洞,耐心的验证,现在还是可以找到存在的SSRF漏洞。
一切要你输入网址的地方和可以输入ip的地方,都是ssrf的天下。
#使用方法
内网访问:
使用http协议对内网的Web应用进行访问
?url=http://127.0.0.1/flag.php
PHP支持的伪协议:
在php.ini里有两个重要的参数allow_url_fopen、allow_url_include。
allow_url_fopen:默认值是ON。允许url里的封装伪协议访问文件;
allow_url_include:默认值是OFF。不允许包含url里的封装伪协议包含文件;
在SSRF中,dict协议与http协议可以用来探测内网主机存活与端口开放情况。
例如:
?url=dict://127.0.0.1:8000
?url=http://127.0.0.1:8080
以下例子是不存在SSRF漏洞的,举例:
http://www.douban.com/***/service?image=http://www.baidu.com/img/bd_logo1.png
假如通过抓包,发现服务器请求地址是:www.baidu.com
或者右键查看图片的存放地址是:http://www.baidu.com/img/bd_logo1.png,这两种情况,是不存在
SSRF漏洞的。
因为请求的地址都是baidu的服务器,而URL里面的拼接地址也是baidu的地址。SSRF存在的前提是A让B帮忙访问C,现在这相当于是B发脾气,直接告诉A,C在哪里,让A直接访问C,这样子就不存在SSRF漏洞了。
通常有一下 5 个思路:
SSRF绕过中我们通常使用@符号进行绕过
例如:http://example.com@127.0.0.1
SSRF绕过中我们通常使用添加端口号绕过
例如:http://127.0.0.1:8080
SSRF绕过中我们通常使用短地址进行绕过,把目标网页变成短地址。
SSRF绕过中我们通常使用特殊域名进行绕过
例:ⓔ ⓧⓐ ⓜⓟ ⓛⓔ .ⓒ ⓞⓜ >>> example.com
清单:
①② ③ ④ ⑤ ⑥ ⑦⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇
⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛
⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵
Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ ℗ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ ⓍⓎ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦⓧ ⓨ ⓩ
。
绕过SSRF绕过中我们通常使用。进行绕过
例如:http://127。0。0。1
把IP地址转换成八进制、二进制、十六进制
Dict:// dict://<user-auth>@<host>:<port>/d:<word>
SFTP:// ssrf.php?url=sftp://example.com:11111/
TFTP:// ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
LDAP:// ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
更加具体可以参考这个网页:https://www.secpulse.com/archives/65832.html
这里给出一个大牛的脚本,可以很方便的探测ssrf的网段以及每个网段的端口,甚至还有反弹shell的功能:
地址: https://github.com/NoneNotNull/SSRFX
链接: pikache靶场通关——SSRF攻击
链接: ctfhub靶场练习——SSRF攻击
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。