simple_php - is_numeric() 繞過與 ==的繞過


simple php

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

"=="繞過

php中有兩種比較符號
=== 會同時比較字符串的值和類型
== 會先將字符串換成相同類型,再作比較,屬於弱類型比較
== 對於所有0e開頭的都為相等

is_numeric() 判斷變量是否為數字或數字字符串

        is_numeric() 函數會判斷如果是數字和數字字符串則返回 TRUE,否則返回 FALSE,且php中弱類型比較時,會使('1234a' == 1234)為真,或者'12345%00',該函數還可能造成sql注入,例如將‘1 or 1'轉換為16進制形式,再傳參,就可以造成sql注入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM