PHP特性总结(有空更新)

preg_match绕过

 

数组绕过

preg_match只能处理字符串,当传入的subject是数组时会返回false

PCRE回溯次数限制

参考p神文章:https://www.leavesongs.com/PENETRATION/use-pcre-backtrack-limit-to-bypass-restrict.html

intval函数

非空数组

结合例题

<?php

include("flag.php");
highlight_file(__FILE__);

if(isset($_GET['num'])){
    $num = $_GET['num'];
    if(preg_match("/[0-9]/", $num)){
        die("no no no!");
    }
    if(intval($num)){
        echo $flag;
    }
}

payload:

url?num[]=1

无意间尝试发现 url?num[] 也能通过

feng师傅解答了这个问题

 

原来php还是会创建一个大小为1的数组。

空格

==(等)和===(恒等)的区别

== 只进行数值判断

=== 进行数值加变量类型判断

科学计数法

1e5 == 100000

进制转换

0x117c == 4476

010574 == 4476

0b1000101111100 == 4476

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-03-03 20:37  fallingskies  阅读(119)  评论(0编辑  收藏  举报