[转-SSRF]什么是SSRF

这些天专注了解了SSRF攻击(Server-side Request Forgery,服务器端请求伪造),对这类攻击有了自己的一些总结与看法,老外取这个名字是挺不错的,我很喜欢,这让我想到了CSRF(Cross-site Request Forgery,跨站请求伪造),前者是在服务器端发出了伪造的请求,后者是在浏览器端发出伪造请求。

@riyazwalikar的三篇实战文章不错:
http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-1.html
http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-2.html
http://www.riyazwalikar.com/2012/11/cross-site-port-attacks-xspa-part-3.html

我上篇文章(http://evilcos.me/?p=206)提到的Alexander这个人,他在上面这三篇文章中有和@riyazwalikar进行讨论,建议@riyazwalikar说的XSPA攻击叫做SSRF更合适,这三篇文章提到了可以进行的攻击类型有:
1. 可以对外网、内网、本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306的);
2. 攻击运行在内网或本地的有漏洞程序(比如溢出);
3. 可以对内网Web应用进行指纹识别,原理是通过请求默认的文件得到特定的指纹,这点和我2012年在kcon v1(知道创宇第一届的“知道Web安全论坛”)上分享的《JavaScript安全从浏览器到服务端》(http://vdisk.weibo.com/s/mernF)里提到的内网Web应用指纹识别思路类似,大家可以对照的看;
4. 攻击内网或外网有漏洞的Web应用,这点也在我的《JavaScript安全从浏览器到服务端》可以看到类似思路,不过我用的都是JavaScript:);
5. 使用file:///协议读取本地文件,类比下本地文件读取漏洞?;

大家可以根据上面这几点进行发散,SSRF很好理解。

最后摘录上篇文章(http://evilcos.me/?p=206)里的文字总结下SSRF攻击:
利用这个漏洞,可以从漏洞服务器发出伪造的请求到目标服务上,目标服务可以是内网的各类服务,可以使用不一样的协议,并根据回显来判断攻击是否成功(如果是盲打的话,就不用回显了:))。

by 知道创宇安全研究团队 余弦

转载于:https://www.cnblogs.com/NBeveryday/p/6281760.html

SSRF (Server Side Request Forgery) 测试是一个用于检测服务器端请求伪造漏洞的工具,它是一种常见的安全测试技术。为了安装 SSFRT 这一工具,你可以按照以下步骤操作: ### 安装依赖 首先,确保你的系统已安装 Python 和 pip(Python 的包管理器)。在命令行界面输入: ```bash pip install -r requirements.txt ``` 如果你是使用基于 Debian 或者 Ubuntu 的 Linux 发行版,则需要先安装 `libffi-dev`、`libssl-dev`、`python-dev` 等库,可以通过运行以下命令完成: ```bash sudo apt-get update sudo apt-get install libffi-dev libssl-dev python-dev ``` 接着,在你的项目目录中创建一个名为 `requirements.txt` 的文件,并添加所需的依赖(通常包括 `requests` 库),然后再次使用 `pip` 来安装: ```txt # requirements.txt 文件内容示例 requests==2.26.0 pip install -r requirements.txt ``` ### 安装 SSFRT 工具 使用 Git 克隆 SSFRT 的仓库到本地: ```bash git clone https://github.com/ssertool/ssftrt.git cd ssftrt pip install . ``` 或者从 PyPI 直接安装(如果已发布): ```bash pip install ssftrt ``` ### 使用 SSFRT 一旦 SSFRT 成功安装,你可以在 Python 脚本中导入并使用它来进行 SSRF 测试。典型的用法如下: ```python from ssertool.ssftrt import SSFRT ssf = SSFRT() results = ssf.scan('http://example.com', {'param': 'http://target.example.com'}) print(results) ``` 在这个例子中,我们尝试通过 `http://example.com` 的 URL 发起请求,其中 `param` 参数指向了目标 URL `http://target.example.com`。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值