弱類型解析

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.pswp.cn/bicheng/16380.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16380.shtml
英文地址,請注明出處:http://en.pswp.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;需要大量當前不存在的數…