白银网站网站建设,网站想举报怎么做,建设工程服务平台,广告设计图片大全 创意文章目录 一、什么是SSRF#xff1f;二、SSRF成因三、SSRF简析四、PHP存在SSRF的风险函数五、后台源码获取方式六、SSRF危害七、SSRF漏洞挖掘从WEB功能上寻找#xff0c;从URL关键字中寻找 八、SSRF具体利用ssrf常利用的相关协议PHP伪协议读取文件端口扫描 九、SSRF存在的必要… 文章目录 一、什么是SSRF二、SSRF成因三、SSRF简析四、PHP存在SSRF的风险函数五、后台源码获取方式六、SSRF危害七、SSRF漏洞挖掘从WEB功能上寻找从URL关键字中寻找 八、SSRF具体利用ssrf常利用的相关协议PHP伪协议读取文件端口扫描 九、SSRF存在的必要条件十、SSRF防御十一、SSRF绕过技巧利用符号添加端口号利用短地址利用特殊域名利用封闭式字母数字Enclosed Alphanumerics利用。绕过利用进制转换利用其它协议 十二、靶场参考 一、什么是SSRF
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击。 一般情况下SSRF攻击的目标是从外网无法访问的内部系统也就是内网。
利用一个可以发起网络请求的服务当做跳板来攻击其它服务 二、SSRF成因
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。ssrf是利用存在缺陷的web应用作为代理去攻击远程和本地的服务器。
也就是说对于为服务器提供服务的其他应用没有对访问进行限制如果我构造好我的访问包那我就有可能利用目标服务对他的其他服务器应用进行调用。 三、SSRF简析
SSRF漏洞就是通过篡改获取资源的请求发送给服务器
但是服务器并没有检测这个请求是否合法的
然后服务器以他的身份来访问其他服务器的资源。 四、PHP存在SSRF的风险函数
以下函数可以通过网络协议访问目标服务器上的资源 file_get_ contents() file_get_ contents函数可以读取本地和远程的文件支持多种协议如ftp,http,https还可以读取php源码 如php://filter/readconvert.base64-encode/resourcessrf.php就可以将后台当前目录下的ssrf.php文件的bs64编码返回。 fsockopen() fsockopen函数是文件指针 curl_exec() curl_exec函数将访问前端提交的url参数的网址。 五、后台源码获取方式
网上寻找开源的源码利用漏洞攻击获取源码 六、SSRF危害
可以对服务器所在内网、本地进行端口扫描获取一些服务的信息等。例如可以不断尝试对服务器的内网端口进行探测。目标网站本地敏感数据的读取。例如能读取服务器根目录下的敏感文件。内外网主机应用程序漏洞的利用内外网Web站点漏洞的利用 七、SSRF漏洞挖掘
从WEB功能上寻找
分享功能。网站能进行超链接的标题等内容进行显示在线翻译例如通过URL地址翻译对应文本的内容图片加载与下载。加载远程图片地址此功能用到的地方很多很大可能造成SSRF问题。例如编辑器处就会有远程文件加载。某些地方会进行远程加载头像。转码服务。通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览。未公开的API。API 应用程序编程接口实现以及其他调用URL的功能等。此处类似的功能有360提供的网站评分以及有些网站通过应用程序编程接口获取远程地址文件来加载内容。
SSRF通过远程加载来实现攻击。
从URL关键字中寻找
在对功能上存在SSRF漏洞中URL地址特征的观察通过收集大致有以下关键字 如果利用google 语法加上这些关键字去寻找SSRF漏洞耐心的验证现在还是可以找到存在的SSRF漏洞。
一切要你输入网址的地方和可以输入ip的地方都是ssrf的天下。 八、SSRF具体利用
ssrf常利用的相关协议
http://探测内网主机存活、端口开放情况gopher://发送GET或POST请求攻击内网应用dict://泄露安装软件版本信息查看端口操作内网远程访问等file://读取本地文件
#使用方法 内网访问 使用http协议对内网的Web应用进行访问 ?urlhttp://127.0.0.1/flag.php
PHP伪协议读取文件
PHP支持的伪协议
file:// — 访问本地文件系统http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — 访问各个输入/输出流I/O streamszlib:// — 压缩流data:// — 数据RFC 2397glob:// — 查找匹配的文件路径模式phar:// — PHP 归档ssh2:// — Secure Shell 2rar:// — RARogg:// — 音频流expect:// — 处理交互式的
在php.ini里有两个重要的参数allow_url_fopen、allow_url_include。
allow_url_fopen:默认值是ON。允许url里的封装伪协议访问文件
allow_url_include:默认值是OFF。不允许包含url里的封装伪协议包含文件
端口扫描
在SSRF中dict协议与http协议可以用来探测内网主机存活与端口开放情况。
例如 ?urldict://127.0.0.1:8000 ?urlhttp://127.0.0.1:8080 九、SSRF存在的必要条件
必须要有交互请求资源没有做限制。
以下例子是不存在SSRF漏洞的举例 http://www.douban.com/***/service?imagehttp://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发脾气直接告诉AC在哪里让A直接访问C这样子就不存在SSRF漏洞了。 十、SSRF防御
通常有一下 5 个思路
过滤返回信息验证远程服务器对请求的相应是比较容易的方法。如果 Web 应用获取某种类型的文件那么可以在把返回结果展示给用户之前先验证返回信息是否符合标准。统一错误信息避免用户根据错误信息来判断远程服务器端口状态。限制请求的端口为 HTTP 常用端口比如 80、443、8080、8090黑名单内网 IP避免应用被用来获取内网数据攻击内网。禁用不需要的协议。仅仅允许HTTP和HTTPS请求。可以防止类似于file://、ftp://等引起的问题 十一、SSRF绕过技巧
利用符号
SSRF绕过中我们通常使用符号进行绕过 例如http://example.com127.0.0.1
添加端口号
SSRF绕过中我们通常使用添加端口号绕过 例如http://127.0.0.1:8080
利用短地址
SSRF绕过中我们通常使用短地址进行绕过把目标网页变成短地址。
利用特殊域名
SSRF绕过中我们通常使用特殊域名进行绕过
利用封闭式字母数字Enclosed Alphanumerics
例ⓔ ⓧⓐ ⓜⓟ ⓛⓔ .ⓒ ⓞⓜ example.com 清单 ①② ③ ④ ⑤ ⑥ ⑦⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ ℗ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ ⓍⓎ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦⓧ ⓨ ⓩ 利用。绕过
SSRF绕过中我们通常使用。进行绕过 例如http//127。0。0。1
利用进制转换
把IP地址转换成八进制、二进制、十六进制
利用其它协议
Dict:// dict://user-authhost:port/d:word SFTP:// ssrf.php?urlsftp://example.com:11111/ TFTP:// ssrf.php?urltftp://example.com:12346/TESTUDPPACKET LDAP:// ssrf.php?urlldap://localhost:11211/%0astats%0aquit
更加具体可以参考这个网页https://www.secpulse.com/archives/65832.html
这里给出一个大牛的脚本可以很方便的探测ssrf的网段以及每个网段的端口甚至还有反弹shell的功能
地址: https://github.com/NoneNotNull/SSRFX 十二、靶场参考
链接: pikache靶场通关——SSRF攻击 链接: ctfhub靶场练习——SSRF攻击