网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > 网络渗透测试

ssrf漏洞(上) · Farmsec Open Source(3)

ssrf测试代码:

<?php function curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); } $url = $_GET['url']; curl($url); ?> 7.1 http/https协议

当前应用获取用户传递过来的url参数后端发送请求,并且将最终的请求结果返回到html前端页面。

?url=http://www.baidu.com ?url=https://www.baidu.com

image-20220407165249756

image-20220407165711442

但这里需要注意的一点是,当前网站页面返回的内容并非是从当前用户pc端浏览器发送的,而是,服务器端接收到客户端传递过来的url参数,然后在后端服务器代码中通过构造请求发送,最终将结果返回到前端,如果在这里用户传递的是一个内网应用的ip,当前返回的结果:

192.168.10.1 为网关

?url=http://192.168.10.1

image-20220407170001347

ssrf漏洞服务器所在的内网大小,互通的网段,限制了当前能够获取到资源的数量。

如果当前服务器端对请求资源的协议做了限制,那么可以通过https协议进行绕过。

7.2 file协议

如果服务器端对请求资源所使用的协议方式没有进行限制,那么就可以通过file协议访问当前服务器的本地文件

?url=file:///etc/passwd

image-20220407170508624

7.3 dict协议

通过dict 协议可以远程访问一个指定的tcp 端口,并且会返回端口所提供的服务的部分组件信息

当目标端口开放(有服务信息显示,但会报错):

?url=dict://localhost:80

image-20220407171210337

当目标端口关闭(无任何显示):

?url=dict://localhost:8080

image-20220407171306127

通过差异的对比,可确认内网端口开放情况。

思考:实际干活时,ssrf漏洞该怎么利用来探测内网网段、开放端口及端口服务? 7.4 gopher 协议

Gopher 协议是 HTTP 协议出现之前,在 Internet 上常见且常用的一个协议。当然现在 Gopher 协议已经慢慢淡出历史。

(责任编辑:admin)