URL伪协议有如下这些:dict的使用curl -v ‘http://a.com/ssrf.php?url=dict://172.0.0.1:22/info'
file:// 从文件系统中获取文件
dict:// 引用允许通过DICT协议使用的定义或单词列表
sftp:// Sftp代表SSH文件传输协议
ldap:// 轻量级目录访问协议 管理和访问分布式目录信息服务
tftp:// 简单文件传输协议 允许客户端从远程主机获取文件或将文件上传
gopher:// 一种分布式文档传递服务 用户可以无缝地浏览、搜索和检索驻留在不同位置的信息
file伪协议可以读取系统内的文件,使用dict伪协议可以查看内网存活主机和端口探测,使用gopher伪协议反弹shell,配合redis写shell操作。
302跳转又称暂时性转移,当网页临时移到新的位置,而浏览器的缓存没有更新时,就出现了302跳转。不过这里可以忽略。post请求,但是要127.0.0.1,本题我们使用gopher协议来做,gopher可以理解为古早版本的http请求,格式如下
客户端将命令作为Bulk Strings的RESP数组发送到Redis服务器。利用条件:能未授权或者能通过弱口令认证访问到Redis服务器
服务器根据命令实现回复一种RESP类型。
- 绕过限制为某种域名:
利用@,网站限制只能访问 http://www.xxx.com类型的域名。在对@解析域名中,不同的处理函数存在处理差异,例如:http://www.aaa.com@www.bbb.com@www.ccc.com
在PHP的parse_url中会识别 www.ccc.com,而libcurl则识别为 www.bbb.com
- 绕过限制请求IP不为内网地址:
1. 采用短网址绕过
2.利用特殊域名,xip.io可以指向任意域名(原理是DNS解析),即 127.0.0.1.xip.io,可以解析为127.0.0.1
3. 采用进制转换,127.0.0.1 八进制:0177.0.0.1;十六进制:0x7f.0.0.1;十进制:2130706433
4. 添加端口号,http://127.0.0.1:8080
5. 利用句号,127。0。0。1 会解析为 127.0.0.1
6. 采用302跳转
7. Enclosed alphanumerics绕过
8. 利用http://xip.io和xip.name绕过
- 限制请求只为http协议:
1. 采用302跳转
2. 采用短地址
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |