ctf_show笔记篇(web入门---SSRF)

ssrf简介

ssrf产生原理:

  1. 服务端存在网络请求功能/函数,例如:file_get_contens()这一类类似于curl
  2. 这种函数传入的参数用户是可控的
  3. 没有对用户输入做过滤导致的ssrf漏洞


ssrf利用:

  1. 用于探测内网服务以及端口
  2. 探针存活主机以及开放服务
  3. 探针是否存在redis服务(未授权访问, 相当于是可以访问到redis服务并且开发人员不严谨没有设置密码,  因为默认是没有密码的,  或者说开发者设置了密码但是是弱口令),  利用定时任务反弹shell

目录

ssrf简介

web351:

web352-353:

web353:

web355-web356:

web357:

web358:

web359:

web360:


web351:

简单的无过滤的ssrf,  利用file协议去读取本地文件

web352-353:

必须以http或者https开头不能用127.0.0或者localhost

可以利用进制绕过0x开头是16进制

注意,  这里的16进制不是把127.0.0.1直接转成16进制,  而是127=7F  0=0  0=0  1=1直接串起来

这里使用127.0.0.1是因为很多文件是不能直接去访问的,  没有权限,  通过ssrf让他自己访问他自己然后在输出出来,  那这就不是我们去访问的了,  就是他自己拿出来给我们的

payload:

0x7F000001

web353:

这里利用其他网站域名指向ip 127.0.0.1绕过

payload:

http://safe.taobao.com/flag.php

web355-web356:

在linux中0指向自己的本地ip127.0.0.1

parse_url()是PHP中用于解析URL并返回其组成部分的函数。可以提取URL中的各个部分,如协议(scheme)、主机(host)、端口(port)、用户信息(user、pass)、路径(path)、查询字符串(query)以及片段(fragment)

以类似字典的方式保存

这里要求host部分小于五个字符

payload:

http://0/flag,php

web357:

gethostbyname()是PHP中的一个函数,用于获取指定主机名的IP地址。这个函数可以通过给定主机名,返回相应主机的IPv4地址。如果主机名无效,则函数返回主机名本身

在PHP中,filter_var()函数结合FILTER_VALIDATE_IP过滤器可以用来验证一个IP地址的有效性。在这个例子中,FILTER_FLAG_NO_PRIV_RANGEFILTER_FLAG_NO_RES_RANGE是额外的标志,用于指定不接受私有IP地址和保留IP地址。

  • FILTER_VALIDATE_IP:指定要验证的过滤器类型,用于验证IP地址。
  • FILTER_FLAG_NO_PRIV_RANGE:指示filter_var()函数不接受私有IP地址。私有IP地址范围包括:
    • 10.0.0.0 至 10.255.255.255
    • 172.16.0.0 至 172.31.255.255
    • 192.168.0.0 至 192.168.255.255
  • FILTER_FLAG_NO_RES_RANGE:指示filter_var()函数不接受保留IP地址。保留IP地址范围包括:
    • 0.0.0.0 至 0.255.255.255
    • 169.254.0.0 至 169.254.255.255
    • 127.0.0.0 至 127.255.255.255
    • 224.0.0.0 至 239.255.255.255

利用302重定向访问127.0.0.1的原理获得flag绕过过滤


302重定向是HTTP状态代码之一,表示临时性的重定向。当服务器收到客户端的请求后,如果需要将请求的资源临时重定向到另一个URL,但未来可能会恢复到原始URL时,就会返回302状态码。这意味着客户端应该继续使用原始URL进行后续请求,因为重定向是暂时的。302重定向常用于网站维护、临时性更改或者流量控制等场景。

相当于是123.com指向ip172.16.X.X,  但是访问以后重定向了127.0.0.1,  通过这个绕过

我这里在自己的主机写了个重定向脚本,  利用小米球开一个公网域名给自己的机子让靶场来访问重定向

web358:

这一题写了必须以http://ctf.开头以show结尾,  结尾倒是好弄?show或者#show都可以,  前面呢就利用@符号就可以绕过

payload:

http://ctf.@127.0.0.1/flag.php?show

web359:

这里提示了打没有密码的mysql

这一题就要用到ssrf里的万精油gopher协议了

使用 gopherus工具去构造攻击语句

抓包测试,  这里明显已经提示了,  直接尝试访问www.百度

直接使用gopheros构造攻击语句注入一句话木马

这个工具可以构造很多模块的工具,  不止mysql,  redis也可以,  但前提是有未授权访问

这里不知道是没有url加密好还是怎么回事,  需要在 拿去url加密一次

看跟目录的时候出现两个flag.  直接一起读取了

web360:

这里就是redis服务了,  这个服务最开始的ssrf简介有说过

这里还是利用工具构造payload

这里会让你选是要反弹服务器shell还是直接phpshell,  反弹shell的化他会将你写的监听的ip和端口写到定时任务里,  攻击机用nc监听,  过一会儿就能拿到shell

这里有提示写入文件

成功写入

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

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

相关文章

常用的深度学习自动标注软件

0. 简介 自动标注软件是一个非常节省人力资源的操作,而随着深度学习的发展,这些自动化标定软件也越来越多。本文章将会着重介绍其中比较经典的自动标注软件 1. AutoLabelImg AutoLabelImg 除了labelimg的初始功能外,额外包含十多种辅助标注…

Java+BS +saas云HIS系统源码SpringBoot+itext + POI + ureport2数字化医院系统源码

JavaBS saas云HIS系统源码SpringBootitext POI ureport2数字化医院系统源码 医院云HIS系统是一种运用云计算、大数据、物联网等新兴信息技术的业务和技术平台。它按照现代医疗卫生管理要求,在特定区域内以数字化形式收集、存储、传递和处理医疗卫生行业的数据。通…

llama-factory SFT系列教程 (一),大模型 API 部署与使用

文章目录 背景简介难点 前置条件1. 大模型 api 部署下一步阅读 背景 本来今天没有计划学 llama-factory,逐步跟着github的文档走,发现这框架确实挺方便,逐渐掌握了一些。 最近想使用 SFT 微调大模型,llama-factory 是使用非常广泛…

java八股——消息队列MQ

上一篇传送门:点我 目前只学习了RabbitMQ,后续学习了其他MQ后会继续补充。 MQ有了解过吗?说说什么是MQ? MQ是Message Queue的缩写,也就是消息队列的意思。它是一种应用程序对应用程序的通信方法,使得应用…

【Java+Springboot】------ 通过JDBC+GetMapping方法进行数据select查询、多种方式传参、最简单的基本示例!

一、JDBC如何使用、PostGresql数据库 1、在pom.xml 先引用jdbc组件。 <!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency> 2、在pom.xml 再引用p…

每天学点儿Python(6) -- 列表和枚举

列表是Python中内置的可变序列&#xff0c;类使用C/C中的数组&#xff0c;使用 [ ] 定义列表&#xff0c;列表中的元素与元素之间用英文逗号&#xff08; , &#xff09;分隔&#xff0c; 但是Python中列表可以存储任意类型的数据&#xff0c;且可以混存&#xff08;即类型可以…

Spring项目的创建和简单使用

目录 一.Spring项目的创建 二.存储Bean 2.1创建Bean对象 2.2Bean注入 三.读取Bean 3.1得到Spring上下文 3.2获取指定Bean对象 3.3为什么不使用new呢&#xff1f; 四.获取Bean的三种方式 4.1 BeanFactory类 4.2两者区别 4.3获取Bean的优化操作 五.总结 一.Spring项目…

海山数据库(He3DB)Redis技术实践:继承开源Redis精髓,强化升级企业级服务

数字化转型中的企业数据的处理速度和效率直接关系到企业的竞争力&#xff0c;Redis作为业界广泛使用的开源键值对存储系统&#xff0c;以其卓越的性能和丰富的数据结构&#xff0c;成为了众多开发者和企业的首选。然而&#xff0c;近期Redis开源社区对Redis协议进行了变更&…

基于SSM+Jsp+Mysql的快递管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

工作流引擎常见API(以camunda为例)

在Camunda中&#xff0c;API的继承关系主要体现在各个服务接口之间。以下是Camunda中一些常见服务接口的继承关系&#xff1a; ProcessEngineServices 接口&#xff1a; RepositoryService&#xff1a; 负责管理流程定义和部署。RuntimeService&#xff1a; 负责管理流程实例的…

植物大战僵尸Python版,附带源码注解

目录 一、实现功能 二、安装环境要求 三、如何开始游戏 四、怎么玩 五、演示 六、部分源码注释 6.1main.py 6.2map.py 6.3Menubar.py 七、自定义 7.1plant.json 7.2zombie.json 一、实现功能 实施植物&#xff1a;向日葵、豌豆射手、壁桃、雪豆射手、樱桃炸弹、三…

Linux下批量的批量操作

批量删除docker 镜像 docker images | grep ent-form-web |awk ‘{print $3}’ | xargs docker rmi docker images: 列出所有的docker 镜像 docker images | grep ent-form-web : 选取出结果带 ent-form-web的信息 docker images | grep ent-form-web |awk ‘{print $3}’ 选取…

YOLOv5实战记录05 Pyside6可视化界面

个人打卡&#xff0c;慎看。 指路大佬&#xff1a;【手把手带你实战YOLOv5-入门篇】YOLOv5 Pyside6可视化界面_哔哩哔哩_bilibili 零、虚拟环境迁移路径后pip报错解决 yolov5-master文件夹我换位置后&#xff0c;无法pip install了。解决如下&#xff1a; activate.bat中修改…

wsl 2在windows11上的设置

详细参考&#xff1a;Manual installation steps for older versions of WSL | Microsoft Learn 1.系统组件要打开 分别是&#xff1a;Hyper-V、虚拟机平台、适用于Windows的Linux子系统 2.以管理员方式运行命令行&#xff0c;逐步执行下面的命令 update to WSL 2, you must…

js爬虫puppeteer库 解决网页动态渲染无法爬取

我们爬取这个网址上面的股票实时部分宇通客车(600066)_股票价格_行情_走势图—东方财富网 我们用正常的方法爬取会发现爬取不下来&#xff0c;是因为这个网页这里是实时渲染的&#xff0c;我们直接通过网址接口访问这里还没有渲染出来 于是我们可以通过下面的代码来进行爬取: …

PowerJob 分布式任务调度简介

目录 适用场景 设计目标 PowerJob 功能全景 任务调度 工作流 分布式计算 动态容器 什么是动态容器? 使用场景 可维护性和灵活性的完美结合 实时日志&在线运维 PowerJob 系统组件 PowerJob 应用场景 PowerJob 的优势 PowerJob&#xff08;原OhMyScheduler&…

无法用raven-js,如何直接使用TraceKit标准化错误字符串(一次有趣的探索)

引子&#xff1a;网上三年前&#xff08;2020&#xff09;的文章介绍了一个raven-js 简单说就是把堆栈信息格式化兼容各浏览器&#xff0c;便于查看错误来源。 **but&#xff1a;**到处找了一下raven-js&#xff0c;已经没有官方出处了&#xff0c;只在Sentry的源码仓库里发现…

Docker使用— Docker部署安装Nginx

Nginx简介 Nginx 是一款高性能的 web 服务器、反向代理服务器以及电子邮件&#xff08;IMAP/POP3/SMTP&#xff09;代理服务器&#xff0c;由俄罗斯开发者伊戈尔塞索耶夫&#xff08;Igor Sysoev&#xff09;编写&#xff0c;并在2004年10月4日发布了首个公开版本0.1.0。Nginx…

简单了解JVM

一.JVM简介 jvm及Java virtual machineJava虚拟机&#xff0c;它是一个虚构出来的计算机&#xff0c;一种规范。其实抛开这么专业的句子不说&#xff0c;就知道 JVM 其实就类似于一台小电脑运行在 windows 或者 linux 这些操作系统环境下即可。它直接和操作系统进行交互&#…

【VS2019】x64 Native Tools Command Prompt for Vs 2019使用conda命令进入环境

【VS2019】x64 Native Tools Command Prompt for Vs 2019使用conda命令进入环境 安装完VS2019后,打开终端x64 Native Tools Command Prompt for Vs 2019,直接运行conda会出现‘conda’ 不是内部或外部命令,也不是可运行的程序 原因分析:这是因为没有设置anaconda的环境变…