原理:
前提攻击者可以访问A服务器,不能直接访问B服务器。而A服务器可以访问B服务器
访问A服务器,构造恶意url请求,让A服务器访问B服务器的资源,然后B服务器把资源给了A服务器,A服务器再给攻击者返回资源
http://xxx.xxx.com/api/readFiles?url=http://192.168.130.63/xx.png
SSRF存在的功能点:
但凡有参数是通过url请求资源的地方都可以测
当然了常见的功能有:图片转码、翻译、访问图片、收藏的地方
可能的参数
share、wap、url、link、src、source、target、u、3g、 display、sourceURI、imageURL、domain
绕过方法
绕过黑名单的一些方法:@ 。 编码 端口号
-
采用短网址绕过127.1,会自动填充缺少的两位八位字节
-
利用特殊域名,xip.io可以指向任意域名(原理是DNS解析),即 127.0.0.1.xip.io,可以解析为127.0.0.1
-
采用进制转换,127.0.0.1 八进制:
0177.0.0.1
;十六进制:0x7f.0.0.1
;十进制:2130706433
-
利用
[::]
,http://[::]:80/
会解析为http://127.0.0.1
-
添加端口号,
http://127.0.0.1:8080
-
利用句号,
127。0。0。1
会解析为 127.0.0.1 -
限制域名时添加@进行绕过。
如:http://baidu.com/?url=http://baidu.com@google.com/
SSRF伪协议
2.5.1.伪协议分类
file:/// 从文件系统中获取文件内容,如,file:///etc/passwd
dict:// 字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
sftp:// SSH文件传输协议或安全文件传输协议
ldap:// 轻量级目录访问协议
tftp:// 简单文件传输协议
gopher:// 分布式文档传递服务,可使用gopherus生成payload
| 端口号 | 端口说明 | 可能漏洞 | |------- |-------- |-------- | |21/22/69 |ftp/tftp:文件传输协议 |爆破\嗅探\溢出\后门| |22 |ssh:远程连接 |爆破OpenSSH;28个退格| |23 |telnet:远程连接 |爆破\嗅探| |25 |smtp:邮件服务 |邮件伪造| |53 |DNS:域名系统 |DNS区域传输\DNS劫持\DNS缓存投毒\DNS欺骗\利用DNS隧道技术刺透防火墙| |67/68 |dhcp |劫持\欺骗| |110 |pop3 |爆破| |139 |samba |爆破\未授权访问\远程代码执行| |143 |imap |爆破| |161 |snmp |爆破| |389 |ldap |注入攻击\未授权访问| |445 |SMB |远程代码执行| |512/513/514 |linux r|直接使用rlogin| |873 |rsync |未授权访问| |1080 |socket |爆破:进行内网渗透| |1352 |lotus |爆破:弱口令\信息泄漏:源代码| |1433 |mssql |爆破:使用系统用户登录\注入攻击| |1521 |oracle |爆破:TNS\注入攻击| |2049 |nfs |配置不当| |2181 |zookeeper |未授权访问| |3306 |mysql |爆破\拒绝服务\注入| |3389 |rdp |爆破\Shift后门| |4848 |glassfish |爆破:控制台弱口令\认证绕过| |5000 |sybase/DB2 |爆破\注入| |5432 |postgresql |缓冲区溢出\注入攻击\爆破:弱口令| |5632 |pcanywhere |拒绝服务\代码执行| |5900 |vnc |爆破:弱口令\认证绕过| |6379 |redis |未授权访问\爆破:弱口令| |7001 |weblogic |Java反序列化\控制台弱口令\控制台部署webshell| |80/443/8080 |web |常见web攻击\控制台爆破\对应服务器版本漏洞| |8069 |zabbix |远程命令执行| |9080 |websphere |远程命令执行| |9090 |websphere控制台 |爆破:控制台弱口令\Java反序列| |9200/9300 |elasticsearch |远程代码执行| |11211 |memcacache |未授权访问| |27017 |mongodb |爆破\未授权访问|