Pikachu漏洞练习平台之SSRF(服务器端请求伪造)

注意区分CSRF和SSRF:

CSRF:跨站请求伪造攻击,由客户端发起;

SSRF:是服务器端请求伪造,由服务器发起。

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

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

PHP中下面函数的使用不当可能会导致SSRF:

file_get_contents()
fsockopen()
curl_exec()

关于第一题,curl包含了用于程序开发的libcurl,libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap协议。  

点击之后正常情况是会出来一首诗,我这里可能搭建的靶场存在点问题;

影响不大,可以看到它请求了一个参数url

那么我们尝试请求其他服务,比如MySQL所在端口3306

构造payload

/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1:3306

可以探测出3306端口是处于开放状态,并且获取到了MySQL的版本号相关信息。

接下来我们使用file协议进行文件读取:

file://协议,需要填写绝对路径,很多时候只能读取txt文件,后面直接跟绝对路径。

构造payload

(针对Linux系统)

/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd

回显成功

 

接下来我们看第二个:file_get_contents函数

file_get_contents() 函数用于将文件的内容读入到一个字符串中,和file() 一样,不同的是 file_get_contents() 把文件读入到一个字符串。

这个函数就很熟悉了,因为在CTF的PHP代码中很常见;看到这个函数就该想到文件包含,利用php伪协议。

使用php://filter(用于读取源码)

比如我们尝试读取这道题目 ssrf_fgc.php 的内容

构造payload

/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf_fgc.php

回显base64编码

解码即可得到php文件的源代码内容

想第一题那样读取etc下的passwd

(用file协议同样可以读取成功)

构造payload

/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=/etc/passwd

发现也是可行的 

同理,解base64即可得到相关内容

CTF的赛题中有时候会对编码进行限制过滤,可以换用其他编码格式,比如:

/vul/ssrf/ssrf_fgc.php?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=/etc/passwd

尝试使用伪协议php://input执行php代码,但是没有成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/188590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科创达:坚定看好未来十五年的大模型机遇

中科创达是一家成立于2008年的智能操作系统产品和技术提供商,15年前公司成立的时候正赶上了安卓操作系统将功能手机推向了智能手机,截至目前,已赋能超过近9亿台手机走向市场。2014年中科创达开始拓展智能汽车方向,2015年拓展物联网…

鸿蒙APP外包开发上线流程

鸿蒙系统的上线流程可能会根据具体的版本和平台要求而略有不同。在进行上线之前,开发人员应该详细了解并遵循鸿蒙生态系统的相关规定和要求。鸿蒙(HarmonyOS)应用的上线流程通常包括以下步骤,希望对大家有所帮助。北京木奇移动技术…

Transformers实战——Datasets板块

文章目录 一、基本使用1.加载在线数据集2.加载数据集合集中的某一项任务3.按照数据集划分进行加载4.查看数据集查看一条数据集查看多条数据集查看数据集里面的某个字段查看所有的列查看所有特征 5.数据集划分6.数据选取与过滤7.数据映射8.保存与加载 二、加载本地数据集1.直接加…

鞋业生产制造用什么ERP软件?能为企业带来哪些好处

鞋服这类商品的种类众多,同时也是我们生活当中较为常见的产品,各个制鞋企业有差异化的营销渠道和经营模式,日常生产过程存在的问题呈现多样化。 有些制鞋企业依然采用传统的管理方式,在这种模式之下,企业并不能随时掌…

一文了解ChatGPT Plus如何完成论文写作和AI绘图

2023年我们进入了AI2.0时代。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车,就有可能被淘汰在这个数字化时代,如何能高效地处理文本、文献查阅、PPT…

渗透测试--实战若依ruoyi框架

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

【超好用的工具库】hutool-all工具库的基本使用

简介(可不看): hutool-all是一个Java工具库,提供了许多实用的工具类和方法,用于简化Java开发过程中的常见任务。它包含了各种模块,涵盖了字符串操作、日期时间处理、加密解密、文件操作、网络通信、图片处…

河北大学选择ZStack Cube超融合一体机打造实训云平台

河北大学通过云轴科技ZStack Cube超融合一体机构建校园实训云平台,部署测试仅耗时1天,该平台能够更快地为学生提供高性能、高可用的云主机、云存储和云网络服务;同时也能满足日常运维管理要求,为学生提供更好的实训环境。 河北省…

【Mysql学习笔记】1 - Mysql入门

一、Mysql5.7安装配置 下载后会得到zip 安装文件解压的路径最好不要有中文和空格这里我解压到 D:\hspmysql\mysql-5.7.19-winx64 目录下 【根据自己的情况来指定目录,尽量选择空间大的盘】 添加环境变量 : 电脑-属性-高级系统设置-环境变量,在Path 环境变量增加mysq…

CMakeLists.txt基础指令与cmake-gui生成VS项目的步骤

简介 本博客主要介绍cmake的基本指令,同时,很多使用Visual Studio小白从Gitbub下载项目源码后,看到CMakeLists.txt,不知道如何使用Visual Studio编译源码;针对以上问题,做一下简单操作与解释,方…

centos7安装keepalived 保证Nginx的高可用

keepalived工作在虚拟路由器冗余协议 VRRP (Virtual Router Redundancy Protocol) 上,它允许一个静态 IP 在两个 Linux 系统之间进行故障转移。 环境准备: 两台虚拟机centos7,IP:192.168.213.4(backup) 192.168.213.6(master) 安…

解决更换NodeJs版本后npm -v返回空白

一、问题描述 win11电脑上输入cmd进入控制台,输入 node --version 有正常返回安装的nodejs的版本号 再输入 npm -v 返回空白。正常情况应该是要返回版本号。 二、问题背景 最近准备学习vue,在不久前已经安装了NodeJs和python。运行了好几个开源项…