弱类型解析

php中

== 转化为相同类型后比较

=== 先判断数据类型后比较数值

var_dump("asdf"==0);#bool(true)
var_dump("asdf"==1);#bool(false)
var_dump("0asdf"==0);#bool(true)
var_dump("1asdf"==1);#bool(true)

1、md5撞库

例:
<?php
include_once("flag.php");
if(isset($_GET['username'])&&isset($_GET['password'])){
$logined=true;
$username=$_GET['username'];
$password=$_GET['password'];
echo "username md5:";
print(md5($username));
echo "<br />"."password md5:";
print(md5($password));
echo "<br />";
if(!ctype_alpha($username)){$logined=false;}
if(!is_numeric($password)){$logined=false;}
if(md5($username)!=md5($password)){$logined=false;}
if($logined){
print($flag);
}else{
echo "falied";
}
}
?>

ctype_alpha函数,检验字符串是否为纯字母

is_numeric函数,校验字符串是否为纯数字或纯数字字符串

使用以0e开头的md5值即可绕过(0e科学计数);

tipes:md5等字符串处理函数没有对数组的处理能力且返回值为null;

例:
<?php
include_once("flag.php");
$a=$_GET['a'];
$b=$_GET['b'];
var_dump(md5($a));
var_dump(md5($b));
if(md5($a)===md5($b)){print($flag);//echo 'success';
}
var_dump(sha1($a));
?>

例:

<?php
$password="qaz123";
if(isset($_REQUEST['password'])){
if(strcmp($_REQUEST['password'],$password)==0){
echo "success";
exit();
}else{
echo "password wrong";
}
}
?>

该漏洞触发点为strcmp函数无法处理数组,导致了函数值会返回空

s w i t c h

json

<?php
if(isset($_POST['a'])){
$a=json_decode($_POST['a']);
$key="**********";
//var_dump("asdfaasdasdf"==0);#该问题核心
if($a->key == $key)
{
echo "flag";
}
}
else{
echo "on no!";
}
?>payload:a={"key":0} 

is_array array_search

<?php
if(!is_array($_GET['a'])){
echo "is not array!";
exit();}
$a=$_GET['a'];
for($i=0;$i<count($a);$i++){
if($a[$i]==="admin"){
echo "error1";
exit();
}
$a[$i]=intval($a[$i]);
}
if(array_search("admin",$a)===0){
echo "flag";
}
else{
echo "error2";
}
?>

上方代码先校验是否为数组,之后遍历数组,之后检查所有数组是否有admin字段,如果有则会退出, 之后对数组中的值进行了int整型强转,又要求再数组中必须有admin字段;

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

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

相关文章

【智能算法应用】模拟退火算法求解多车型车辆路径问题HFVRP

目录 1.算法原理2.多车型车辆路径HFVRP数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 模拟退火算法&#xff08;Simulated Annealing, SA&#xff09;是一种通用概率算法&#xff0c;用于在给定一个大的搜索空间内寻找问题的近似最优解。这种算法受到物理中退火过程的启…

ffplay 使用文档介绍

ffplay ffplay 是一个简单的媒体播放器,它是 FFmpeg 项目的一部分。FFmpeg 是一个广泛使用的多媒体框架,能够解码、编码、转码、复用、解复用、流化、过滤和播放几乎所有类型的媒体文件。 ffplay 主要用于测试和调试,因为它提供了一个命令行界面,可以方便地查看媒体文件的…

消息队列拉模式下的订阅关系不一致问题及解决方法

引言 在分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;MQ&#xff09;是一种常用的组件&#xff0c;用于解耦生产者和消费者&#xff0c;缓解系统负载&#xff0c;提升系统的可靠性和可扩展性。在Java行业中&#xff0c;常见的消息队列中间件有Apach…

烟囱ERP系统

一、烟囱系统定义 “烟囱式”系统&#xff0c;来自维基百科的解释是&#xff1a;一种不能与其他系统进行有效协调工作的信息系统&#xff0c;又称为孤岛系统。 二、烟囱系统的案例 比如&#xff1a;就像以下一样&#xff0c;各个系统之间是独立的&#xff0c;所有对接是通过…

深度学习复盘与小实现

文章目录 一、查漏补缺复盘1、python中zip()用法2、Tensor和tensor的区别3、计算图中的迭代取数4、nn.Modlue及nn.Linear 源码理解5、知识杂项思考列表6、KL散度初步理解 二、处理多维特征的输入1、逻辑回归模型流程2、Mini-Batch (N samples) 三、加载数据集1、Python 魔法方法…

【Android】安卓设备上的Fastboot模式详解与使用指南

原谅把你带走的雨天 在渐渐模糊的窗前 每个人最后都要说再见 原谅被你带走的永远 微笑着容易过一天 也许是我已经 老了一点 那些日子你会不会舍不得 思念就像关不紧的门 空气里有幸福的灰尘 否则为何闭上眼睛的时候 又全都想起了 谁都别说 让我一个人躲一躲 你的承诺 我竟然没怀…

c++笔记3

优先队列 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。优先队列是一种按照优先级决定出队顺序的数据结构&#xff0c;优先队列中的每个元素被赋予级别&#xff0c;队首元素的优先级最高。 例如&#xff1a;4入队&#xff0c…

多文件和静态/动态链接以及虚拟内存管理

多目标文件链接 //stack.c char stack[512]; int top -1; void push(char c){stack[top] c; }char pop(void){return stack[top--]; }int is_empty(void){return top 1; }// main.c #include <stdio.h> int a,b 1; int main(){ push(a); push(b); push(c); while(!is…

Vue项目中npm run build 卡住不执行的几种情况(实战版)

方法一 一&#xff1a;比较常见是镜像导致的原因 我们可以找到build/check-versions文件 将这段代码注释,重新运行就可以解决这个问题 if (shell.which(npm)) {versionRequirements.push({name: npm,currentVersion: exec(npm --version),versionRequirement: packageConfig.en…

MySQL 存储过程返回更新前记录

在MySQL中&#xff0c;如果我们想在存储过程中返回更新前的记录&#xff0c;这通常不是直接支持的&#xff0c;因为UPDATE语句本身不返回更新前的数据。但是&#xff0c;我们可以通过一些策略来实现这个需求。 1.MySQL 存储过程返回更新前记录常用的方法策略 以下是一个常见的…

应用程序图标提取

文章目录 [toc]提取过程提取案例——提取7-zip应用程序的图标 提取过程 找到需要提取图标的应用程序的.exe文件 复制.exe文件到桌面&#xff0c;并将复制的.exe文件后缀改为.zip 使用解压工具7-zip解压.zip文件 在解压后的文件夹中&#xff0c;在.rsrc/ICON路径下的.ico文件…

代码随想录-Day20

654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…

ROS | 激光雷达包格式

ros激光雷达包格式&#xff1a; C实现获取雷达数据 &#xff1a; C语言获取雷达数据&#xff1a; Python语言获取雷达数据&#xff1a; python不需要编译&#xff0c;但是需要给它一些权限 chmod x lidar_node.py(当前的文件名字&#xff09; C实现雷达避障&#xff1a; python…

【Xilinx】常用的全局时钟资源相关Xilinx器件原语

1 概述 常用的与全局时钟资源相关的Xilinx器件原语包括&#xff1a; IBUFGIBUFGDS、OBUFGDS 和 IBUFDS、OBUFDSBUFGBUFGPBUFGCEBUFGMUXBUFGDLLIBUFDS_GTXE1IBUFDS_GTE2IBUFDS_GTE3OBUFDS_GTE3IBUFDS_GTE4OBUFDS_GTE4DCM 刚开始看到这写源语&#xff0c;免不了好奇这些源语对应的…

IDEA如何对多线程进行debug

开发中使用到多线程的时候不少,但是debug起来还是比较困难的,因为默认每次只会进入一个线程,这样有些问题是发现不了的,其实IDEA也是支持进入每个线程来debug的 写一个简单的demo public class ThreadDebug {public static void main(String[] args) {MyThread myThread new…

c++ set/multiset容器

在C标准库中&#xff0c;set 和 multiset 是两种非常有用的关联容器&#xff0c;它们包含唯一元素&#xff08;对于set&#xff09;或可重复元素&#xff08;对于multiset&#xff09;&#xff0c;并且默认情况下这些元素都是自动排序的。它们通过键&#xff08;即存储的元素本…

异方差的Stata操作(计量114)

以数据集 nerlove.dta 为例&#xff0c;演示如何在 Stata 中处理异方差。 此数据集包括以下变量&#xff1a; tc ( 总成本 ) &#xff1b; q ( 总产量 ) &#xff1b; pl ( 工资率 ) &#xff1b; pk ( 资本的使用成本 ) &#xff1b; pf ( 燃料价格 ) &#xff1b; …

GESP等级大纲

CCF编程能力等级认证概述 CCF编程能力等级认证&#xff08;GESP&#xff09;为青少年计算机和编程学习者提供学业能力验证的规则和平台。GESP覆盖中小学阶段&#xff0c;符合年龄条件的青少年均可参加认证。C & Python编程测试划分为一至八级&#xff0c;通过设定不同等级…

[自动驾驶技术]-6 Tesla自动驾驶方案之硬件(AI Day 2021)

1 硬件集成 特斯拉自动驾驶数据标注过程中&#xff0c;跨250万个clips超过100亿的标注数据&#xff0c;无论是自动标注还是模型训练都要求具备强大的计算能力的硬件。下图是特斯拉FSD计算平台硬件电路图。 1&#xff09;神经网络编译器 特斯拉AI编译器主要针对PyTorch框架&am…

AI数据面临枯竭

Alexandr Wang&#xff1a;前沿研究领域需要大量当前不存在的数据&#xff0c;未来会受到这个限制 Alexandr Wang 强调了 AI 领域面临的数据问题。 他指出&#xff0c;前沿研究领域&#xff08;如多模态、多语言、专家链式思维和企业工作流&#xff09;需要大量当前不存在的数…