SSRF 服务器端请求伪造

文章目录

SSRF(Server-Side Request Forgery:服务器端请求伪造)

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

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样

php 复制代码
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()        

如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤

SSRF(curl)

cURL函数菜鸟教程用法

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。

libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。


libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

点击链接,看看会发生什么变化

http://192.168.80.139/pikachu/vul/ssrf/ssrf_curl.php

地址栏的url多了一个?url参数

?url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

curl支持很多协议我们可以通过以下几个方法来测试:

网址访问

?url=https://github.com/

通过file协议访问本地文件

?url=file:///c:/test/www.txt

dict协议扫描内网主机开放端口

使用dict协议可以获取内网主机开放端口相应服务的指纹信息

?url=dict://192.168.80.139:80 pikachu靶场地址

?url=dict://192.168.80.141:80

?url=dict://192.168.80.141:22

SSRF(file_get_content)

file_get_content菜鸟教程


http://192.168.80.139/pikachu/vul/ssrf/ssrf_fgc.php

点击链接,观察地址栏的url变化

发现 ?url参数变成了?file参数,可以试着访问百度页面

网站访问

?file=http://www.baidu.com

http协议请求内网资源

也可以访问?file=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

通过file协议访问本地文件

?file=file:///c:/test/www.txt

相关推荐
其实防守也摸鱼10 天前
upload-labs靶场的pass-13~21的解题步骤及原理讲解
python·安全·网络安全·靶场·二进制·文件上传漏洞·文件包含漏洞
皓月盈江12 天前
Linux Ubuntu系统如何编辑Docker容器内的文件
linux·ubuntu·docker·容器·靶场·vulhub·编辑docker内文件
淼淼爱喝水14 天前
DVWA 文件上传漏洞实验%00 截断实验与.htaccess 文件攻击实验
网络·安全·靶场
见青..15 天前
JAVA安全靶场环境搭建
java·web安全·靶场·java安全
其实防守也摸鱼17 天前
DVWA--Brute Force (暴力破解)通关指南
服务器·网络·安全·靶场·教程·工具·dvwa
mooyuan天天1 个月前
AI辅助生成靶场源码指南:大模型自动化生成靶场skills技巧详解
web安全·渗透测试·靶场·ai安全
路baby2 个月前
Pikachu安装过程中常见问题(apache和MySQL无法正常启动)
计算机网络·mysql·网络安全·adb·靶场·apache·pikachu
ShirleyWang0123 个月前
PIKACHU靶场问题解决+部分知识点
靶场
QuantumRedGuestk5 个月前
Xss-Labs靶场通关详细教程【文图】
靶场·xss·xss-labs·web渗透
Bug.ink5 个月前
BUUCTF——WEB(6)
数据库·sql·网络安全·靶场·buuctf