探究使用 Gopher 协议的 SSRF 的运用
使用 Gopher 通信规范可以进行信息传输,用于在Internet 协议网络中分发、搜索和检索文档。Gopher 协议和用户界面的设计是菜单驱动的,并在早期阶段提出了万维网的替代方案,但最终不受欢迎,让位于HTTP。Gopher 生态系统通常被认为是万维网的有效前身。 发起POST请求时,回车换行需要使用%0d%0a代替,结尾也要加上%0d%0a 参数之间的&需要进行URL编码 参数以_开头 ,否则第一个字符会被吞掉 支持Gopher协议的环境 PHP —write-curlwrappers且PHP版本至少为5.3 Java 小于JDK1.7 Curl 低版本不支持 Perl 支持 ASP.NET 小于版本3 为什么要使用Gopher协议 在思考这个问题的时候我们可以看见这样的答案: Gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,再构成符合Gopher协议的请求。其中Gopher所用的协议技术是SSRF分布式利用中最强大的协议。 我总结的话,就一句话:支持多种协议且灵活,或者也可以说其没有固定的格式要遵守(这里所谓的格式指的是数据包的格式,必须在TTP数据包中必须携带哪些参数)。 我们做这样一个实验,在一台虚拟机上通过nc监视3333端口,然后分别通过http协议和gopher协议去访问这个端口: http://172.16.12.155:3333/abc 那么此时对端收到的是(我们通过curl请求)带有HTTP的请求包格式:有可能会说比如说UA什么的完全可以不带,但是GET的请求包是一定要有的吧!一般情况下,我们会使用curl来处理这些请求,因为它的速度是最快的,并且不需要额外的服务器资源。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |