SSRF详解

SSRF

目录

SSRF

简介

危害

相关函数

相关协议

dict

file

gopher

一些绕过方式

点号绕过

添加@

进制转换

xip.io

短网址


简介

SSRF:服务端请求伪造

SSRF常出现在那些获取其他服务器上的资源又对用户的输入过滤不严的WEB应用

像获取网页内容、图片等

?url=

?image=

攻击者通过构造url以及image的参数,利用有SSRF漏洞的服务器发起自己构造的请求

危害

SSRF可以被用来:

1.获取服务器本地敏感文件(如源码、/etc/passwd等)

file://+要读取文件路径

2.探测内网的应用:

如dict://ip:port/info

比如常见的:redis默认的6379端口

用dict://ip:6379/info 根据回显查看是否有redis服务

进而确定是否存在redis未授权之类的漏洞

也可以使用http协议来探测

3.探测内网存活主机以及端口

向某主机某端口发送网络请求,根据响应来判断是否开放

相关函数

能够发起网络请求的一些函数,以php为例

curl_exec() :执行cURL会话

fsockopen():进行套接字连接

file_get_contents():获取指定文件或URL的内容,并将其作为字符串返回

...

...

相关协议

dict

该协议是一个字典服务器协议,通常用于让客户端使用过程中能够访问更多的字典源

dict://ip:port/path

file

file协议用于访问本地文件,不能访问远程文件(远程用FTP协议)

格式:

file:///文件路径

如:file:///c:/flash/cd

这里为什么三个斜杠,而http这些协议都是两个斜杠

因为url格式为:

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

由于file访问本地文件没有host那一部分,所以是三斜杠

而http要有一个主机ip或者域名,所以两个斜杠

file协议不受allow_url_include和allow_url_fopen的影响

gopher

gopher://ip:port/_数据包

gopher数据包要求:

要进行url编码

多个参数要用&隔开

回车换行用%0d%0a

请求数据末尾要加%0d%0a

在http数据包基础上就把%0a变为%0d%0a就可以了

# 该脚本用于构造gopher数据包
# -*- coding: utf-8 -*
​
import urllib.parse
data = ''#http包
data1 = data.replace('%0A','%0D%0A')#gopher协议要求把http数据的换行符换为%0d%0a,换行符的16进制为0A
data1+='%0D0A'#gopher要求在http数据末尾加%0D%0A
​
​
print(data1)

一些绕过方式

对于有过滤的情况

主要还是根据源码中的过滤规则来进行绕过

点号绕过

把ip的.变为句号

127.0.0.1==>127。0。0。1

添加@

比如目标url:?url=http://127.0.0.1

payload:?url=http://666@127.0.0.1

会返回@后面的ip

进制转换

把ip地址进行进制转化(十六进制、八进制等)

xip.io

xip.io 是一个特殊的域名,它可以将 IP 地址映射到域名上。通过在 IP 地址后追加 xip.io,可以直接访问该 IP 地址对应的服务器。

使用xip.io常是在测试过程,因为用这个无需在DNS服务器中配置域名解析

目标url:?url=http://127.0.0.1

payload:?url=http://127.0.0.1.xip.io

短网址

转换为短网址再请求(找在线工具转换)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ctfhub是一个CTF训练平台,提供了多个CTF挑战模块,其中包括了SSRF模块。SSRF(Server-Side Request Forgery)是一种攻击技术,可以利用服务器端请求伪造漏洞来发送恶意请求。在ctfhub的SSRF模块中,你可以学习和实践SSRF攻击技术,并利用平台上提供的漏洞来进行实验。 在SSRF中,有一个重要的点是请求可能会跟随302跳转。你可以尝试利用这个来绕过对IP的检测,访问位于127.0.0.1的flag.php文件,从而获取敏感信息。 此外,在SSRF中还可以使用Gopher协议来攻击内网的服务,例如Redis、Mysql、FastCGI、Ftp等等,并发送GET和POST请求。Gopher协议可以说是SSRF中的万金油,大大拓宽了SSRF的攻击面。你可以构造类似于"/?url=file:///var/www/html/flag.php"的本地地址来尝试攻击。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [network-security:学习web安全练习的靶场,以及总结的思维导图和笔记](https://download.csdn.net/download/weixin_42118423/15763452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [CTFHub—SSRF](https://blog.csdn.net/qq_45927819/article/details/123400074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [CTFHUB--SSRF详解](https://blog.csdn.net/qq_49422880/article/details/117166929)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值