CTF知识集-PHP特性

news2024/12/16 5:33:03

title: CTF知识集-PHP特性

写在开头可能会用到的提示

  • call_user_func 调用的函数可以不区分大小写
  • preg_match过滤存在长度溢出,长度超过100w检测失效。str_repeat(‘show’,250000); 生成100w个字符
  • preg_match是无法处理数组的,例如:preg_match( n u m ) , num), num),num[1]=1,这样子无法处理
  • intval()是可以检测十进制 | 八进制 | 十六进制的。如果字符串包括了 “0x” (或 “0X”) 的前缀,使用 16 进制 (hex);如果字符串以 “0” 开始,使用 8 进制(octal);否则,使用十进制
  • intval()。可以搭配的特殊字符是+和空格,当然也可以URL编码后提交。
  • highlight_file 包含的文件可以是全路径,可以接php://filter/resource=xxx
  • php的md5传入的是数组,那么md5一样,例如:a[]=1和b[]=2的md5值一样 补充:sha1可以
  • %00 可以截断
  • echo new DirectoryIterator(getcwd()); 遍历目录类 echo new filesystemIterator(getcwd()); 遍历文件类
  • var_dump($GLOBALS); 可以查看当前的全部变量
  • is_file() 检测文件函数,可以用伪协议来绕过
  • php会自动将不符合规范的变量(空格等特殊符号)转换为_,且只会转换一次,例如fl[ag.com,转换为fl_ag.com,后面的 . 不会被转换
  • 小知识点: ()是一个函数,()==gettext() 是gettext()的拓展函数
  • php里默认命名空间是\,所有原生函数和类都在这个命名空间中。 普通调用一个函数,如果直接写函数名function_name()调用,调用的时候其实相当于写了一个相对路 径; 而如果写\function_name()这样调用函数,则其实是写了一个绝对路径。 如果你在其他namespace里调用系统类,就必须写绝对路径这种写 法
  • file_get_contents可以使用伪协议,例如:file_get_contents( f i l e ) = = = " 123 " , file)==="123", file)==="123"file=data://text/plain,123;或者是php://input
  • curl 不仅支持http(s),而且支持file协议,例如: curl file:///home/sibei/test
  • P O S T [ c m d ] 可以写为 _POST[cmd]可以写为 POST[cmd]可以写为_POST{cmd}
  • php无论有没有上传文件的参数,如果强制上传文件,那么PHP会先保存到临时目录,待脚本执行结束后删除。linux的临时目录文件是/tmp/php???,问号代表任意字符。如果存在命令执行,那么就可以通过执行强制的临时文件来达到命令执行。linux通配符匹配 /???/???[@-[],这样可以匹配最后一位是大写字母的文件,贴个脚本
    image-20241212204856197

CVE收集

PHP5.5.9整数溢出漏洞

CVE收集

PHP5.5.9整数溢出漏洞

  • 当数组下标为4294967296时,等同于下标0,例如:maodoo[4294967296]等同于maodoo[0]

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

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

相关文章

Hadoop运行Mapreduce问题集锦——Ubuntu虚拟机配置

一、端口访问问题 问题描述 运行任务前一直重连。具体来说,错误发生在尝试从czs-virtual-machine虚拟机的127.0.1.1地址连接到同一台机器的8032端口时,连接被拒绝。 如下: 2024-11-17 23:05:45,800 INFO retry.RetryInvocationHandler: java…

【经验分享】搭建本地训练环境知识点及方法

最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…

流程引擎Activiti性能优化方案

流程引擎Activiti性能优化方案 基于关系型数据库层面优化 MySQL建表语句优化 Activiti在MySQL中创建默认字符集为utf8(即utf8mb3)格式,本文将默认字符集设置为utf8mb4,排序规则为utf8mb4_general_ci,并修改变量等类…

Unix 传奇 | 谁写了 Linux | Unix birthmark

注:本文为 “左耳听风”陈皓的 unix 相关文章合辑。 皓侠已走远,文章有点“年头”,但值得一阅。 文中部分超链已沉寂。 Unix 传奇 (上篇) 2010 年 04 月 09 日 陈皓 了解过去,我们才能知其然,更知所以然。总结过去…

TimerPickerDialog组件的用法

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Snackbar Widget相关的内容,本章回中将介绍TimePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里说的TimePickerDialog是一种弹出窗口,只不过窗口的内容固定显示为时间,它主…

大模型系列4--开源大模型本地部署到微调(WIP)

背景 一直想真正了解大模型对硬件资源的需求,于是准备详细看一篇视频,将核心要点总结记录下。本文内容参考视频:保姆级教程:6小时掌握开源大模型本地部署到微调,感谢up主 训练成本 训练 > 微调 > 推理训练GPT…

现代密码学总结(上篇)

现代密码学总结 (v.1.0.0版本)之后会更新内容 基本说明: ∙ \bullet ∙如果 A A A是随机算法, y ← A ( x ) y\leftarrow A(x) y←A(x)表示输入为 x x x ,通过均匀选择 的随机带运行 A A A,并且将输出赋给 y y y。 ∙ \bullet …

Python中opencv的一些函数及应用

Sobel 算子函数 功能: Sobel 算子用于计算图像的梯度(变化率),常用于边缘检测。它通过对图像应用一个基于一阶导数的滤波器来强调图像中的边缘部分,特别是水平和垂直方向上的边缘。通过计算图像的梯度,可以…

【docker】springboot 服务提交至docker

准备docker (不是docker hub或者harbor,就是可以运行docker run的服务),首先确保docker已经安装。 本文以linux下举例说明: systemctl stats docker ● docker.service - Docker Application Container EngineLoaded…

XDOJ 877 图的深度优先遍历

题目:图的深度优先遍历 问题描述 已知无向图的邻接矩阵,以该矩阵为基础,给出深度优先搜索遍历序列,并且给出该无向图的连通分量的个数。在遍历时,当有多个点可选时,优先选择编号小的顶点。(即…

大屏开源项目go-view二次开发1----环境搭建(C#)

最近公司要求做一个大屏的程序用于展示公司的产品,我以前也没有相关的经验,最糟糕的是公司没有UI设计的人员,领导就一句话要展示公司的产品,具体展示的内容细节也不知道,全凭借自己发挥。刚开始做时是用wpf做的&#x…

摆脱B端UI框架的桎梏,首先从布局开始

在 B 端开发中,UI 框架虽带来便利,但也可能形成桎梏。要摆脱这种束缚,首先从布局着手是个明智之举。传统的 B 端 UI 框架布局可能较为固定,缺乏灵活性。我们可以尝试创新的布局方式,如响应式设计,适应不同屏…

认识异常吧

在 Java 中,将程序执行过程中发生的不正常行为称为异常 。 异常的体系结构 1. Throwable : 是异常体系的顶层类,其派生出两个重要的子类 , Error(错误) 和 Exception(异常) 2. Error &…

Repo管理

文章目录 前言Repo介绍清单仓库清单仓库的组成 初始化Repo同步远程仓库Repo实际应用 前言 我们知道,Git是用来管理某一个仓库,那当一个项目用到了多个仓库时,怎么来同步管理这些仓库呢?这个时候就可以引入Repo管理。 Repo介绍 …

Spring Security6.3 自定义AuthorizationManager问题

项目环境: Springboot3.3.5, 对应的SpringFrameWork6.1,Security为6.3 问题:我想自定义AuthorizationManager接口实现类,在里面判断如果角色为amdin则放行请求; 在AdminAuthorizationManager类的check()方法中pass变量…

十二月第三周python

import tkinter as tk #安装图形窗口工具 import cv2 #处理视频工具 from tkinter import * #安装图形窗口工具 from PIL import Image, ImageTk#处理图形工具 roottk.Tk() #给工具起名字 root.title("子豪")#软件左上角名字 root.geometry("800x800500100&…

玉米叶病预测数据集,使用yolo,coco,voc格式人工标注,10046张原始图片,可识别叶枯病,普通锈病,灰叶斑病,健康的玉米叶

玉米叶病预测数据集,使用yolo,coco,voc格式人工标注,10046张原始图片,可识别叶枯病,普通锈病,灰叶斑病,健康的玉米叶 数据集分割 训练组87% 8790图片 有效集4% 419图片…

NAT网络地址转化技术

1.什么是NAT NAT技术是一种将自己内网的多个私有IP地址转换为一个公网IP进行访问互联网的一项技术,这个技术主要是用来解决IPv4地址不够的问题。 2.NAT技术的具体例子 如果我们用手机使用流量浏览一个网站,那么第一步手机会对这个域名进行DNS解析&#…

使用DuckDB 加载和清洗数据

DuckDB CLI是允许用户直接从命令行与DuckDB交互的工具。前文你看到了如何使用Python与DuckDB交互。但是,有时你只是想直接使用数据库—例如在创建新表、从不同数据源导入数据以及执行与数据库相关的任务时。在这种情况下,直接使用DuckDB CLI要有效得多。…

linux部署ansible自动化运维

ansible自动化运维 1,编写ansible的仓库(比赛已经安装,无需关注) 1、虚拟机右击---设置---添加---CD/DVD驱动器---完成---确定 2、将ansible.iso的光盘连接上(右下角呈绿色状态) 3、查看光盘挂载信息 df -h…