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

news2024/11/17 4:36:55

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.coloradmin.cn/o/1567981.html

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

相关文章

计算机网络:局域网的数据链路层

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

【2024红明谷】三道Web题目的记录

红明谷 文章目录 红明谷Web1 | SOLVED LaterWeb2 | UNSOLVEDWeb3 | SOLVED 容器已经关咯,所以有些场景只能靠回忆描述啦,学习为主,题目只是一个载体~ 本次比赛学习为主,确实再一次感受到久违的web题目的魅力了,可能也是…

C++实现二叉搜索树的增删查改(非递归玩法)

文章目录 一、二叉搜索树的概念结构和时间复杂度二、二叉搜索树的插入三、二叉搜索树的查找四、二叉搜索树的删除(最麻烦,情况最多,一一分析)3.1首先我们按照一般情况下写,不考虑特殊情况下4.1.1左为空的情况&#xff…

小波降噪基础-python版本

这篇小文将使用小波多分辨分析对一个简单信号进行降噪,主要是降噪流程,为以后的小波更复杂的降噪算法打下良好的基础。降噪算法流程大致如下: (1)去趋势项(如直流电流),并将数据归一…

词向量模型评估

一、既有范式 词向量的语言学特性:这部分主要通过一些具体的指标来评估词向量是否能捕捉到语言的内在规律,包括: 相似度评价指标:检查词向量空间中距离近的词是否与人类直觉一致,例如,利用余弦相似度来评估…

【嵌入式智能产品开发实战】(十三)—— 政安晨:通过ARM-Linux掌握基本技能【运行环境】

目录 简述 开始 操作系统环境下的程序运行 裸机环境下的程序运行 程序入口main()函数分析 BSS段的小提示 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品开发实战 希望政安晨的博客能够对您有所裨益,如有不…

基于Java的高校成绩报送系统的设计与实现

基于Java的高校成绩报送系统的设计与实现 获取源码——》哔站搜:计算机专业毕设大全 获取源码——》哔站搜:计算机专业毕设大全

计算机基础入门7:大学计算机基础

第1章 计算机的基本概念 1.1 计算机概述 1、 电子计算机{电子模拟计算机,电子数字计算机} 2、 计算机之父——冯诺依曼(J. Von Neumann),奠定现代计算机的体系结构。 3、 冯诺依曼在EDVAC设计方案中提出了“存储程序”原理 4、 计算机的三个特征&…

【Spring】SpringBoot整合Redis,用Redis实现限流(附Redis解压包)

📝个人主页:哈__ 期待您的关注 本文介绍SpringBoot整合Redis并且进行接口的限流,文章主要介绍的是一种思想,具体代码还要结合实际。 一、Windows安装Redis Redis的解压包我放在了百度网盘上,有需要的可以下载。 R…

java自动化测试-03-05java基础之字符串

1、字符串的定义 String是变量类型,表示字符串类型 name是给这个变量起的名字,这个是可以随意取的,只要不是java的关键字就可以了 表示赋值,右边的的内容表示 变量值,对字符串变量进行 赋值,需要用双引号…

C++模板实参推断

模板实参推断 我们已经看到,对于函数模板,编译器利用调用中的函数实参来确定其模板参数。 从函数实参来确定模板实参的过程被称为模板实参推断。 也就是说,只有函数参数才配有模板实参推断,函数返回类型是不配有的 在模板实参…

每日面经分享(python part1)

Python中的深拷贝和浅拷贝的区别是什么? a. 浅拷贝创建一个新的对象,但其中的可变元素仍然共享引用。只有对象的第一层被复制,而更深层次的嵌套对象仍然是引用。更改其中一个对象的属性会影响到其他对象。 b. 深拷贝创建一个完全独立的新对象…

营销中的归因人工智能

Attribution AI in marketing 归因人工智能作为智能服务的一部分,是一种多渠道算法归因服务,根据特定结果计算客户互动的影响和增量影响。有了归因人工智能,营销人员可以通过了解每个客户互动对客户旅程每个阶段的影响来衡量和优化营销和广告…

MT3017 上色

思路&#xff1a;使用分治&#xff0c;在每个连续区域递归调用heng()和shu() #include <bits/stdc.h> using namespace std; int n, m; int h[5005];int shu(int l, int r) {return r - l 1; } int heng(int l, int r) {int hmin 0x3f3f3f3f;for (int i l; i < r;…

银行数字化转型导师坚鹏:银行数字化转型给总行带来的9大价值

银行数字化转型给总行带来的9大价值 银行数字化转型对总行的深远影响是多方面的&#xff0c;银行数字化转型导师坚鹏从以下9个方面进行详细分析&#xff0c;相信能够给您带来重要价值。 1. 客户价值 银行数字化转型可以利用大数据、智能化风控模型为客户设计、提供“千人千面…

多模态系列-综述Video Understanding with Large Language Models: A Survey

本文是LLM系列文章,针对《Video Understanding with Large Language Models: A Survey》的翻译。 论文链接:https://arxiv.org/pdf/2312.17432v2.pdf 代码链接:https://github.com/yunlong10/Awesome-LLMs-for-Video-Understanding 大型语言模型下的视频理解研究综述 摘要…

Python学习笔记-Flask接收post请求数据并存储数据库

1.引包 from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy 2.配置连接,替换为自己的MySQL 数据库的实际用户名、密码和数据库名 app Flask(__name__) #创建应用实列 app.config[SQLALCHEMY_DATABASE_URI] mysqlpymysql://ro…

Linux笔记之制作基于ubuntu20.4的最小OpenGL C++开发docker镜像

Linux笔记之制作基于ubuntu20.4的最小OpenGL C开发docker镜像 —— 2024-04-03 夜 code review! 文章目录 Linux笔记之制作基于ubuntu20.4的最小OpenGL C开发docker镜像1.这里把这本书的例程代码放在了Dockerfile所在的文件夹内以使镜像预装例程代码2.创建Dockerfile3.构建Do…

c++前言

目录 1. 什么是 C 2. C 发展史 3. C 的重要性 4. 如何学习 C 5. 关于本门课程 1. 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的 程序&#xff0c;需要高度的抽象和建模时&#xff0c; C 语言则不合适…

ShardingJdbc+Mybatis实现多数据源

Mybatis多数据源 这个是对shardingjdbc应用的一个升级&#xff0c;如果对于shardingjdbc的整合还没看过之前的文章的&#xff0c;可以先看看文章https://blog.csdn.net/Think_and_work/article/details/137174049?spm1001.2014.3001.5501 整合步骤 1、依赖 和全新项目的单…