陣列返回NULL繞過

2022-05-04 04:51:08 字數 772 閱讀 6549

bugku:

還沒看完原始碼,我就直接加了乙個password=1結果就拿到flag了。然後再看原始碼我自己都搞不懂為什麼可以得到原始碼。真的,不信你看。

1

<?php

2 $flag = "

flag";

34if (isset ($_get['

password

']))

12 ?>

先來談論一下標準的答案:

第乙個條件:

必須以數字或者字母開頭(其實看到ereg就可以想到%00截斷)

第二個條件:

必須在password引數中找到--。

所以得出以下正解:

index.php?password=a%00--

那麼話又說回來了,為什麼直接password=a就可以繞過呢?

1.ereg只能處理字元,而你是陣列,所以返回的是null,三個等號的時候不會進行型別轉換。所以null不等於false。

2.strpos的引數同樣不能夠是陣列,所以返回的依舊是null,null不等於false也是正確。

所以可以拿到flag

小結:

1.倘若函式的引數不符合其函式要求的時候返回的是null值

bugku 陣列返回NULL繞過

flag flag if isset get password 1.isset 函式 檢測變數是否已設定並且非null2.ereg 函式 正規表示式匹配 3.strpos 函式對大小寫敏感。a za z0 9 方括號表示字符集,a za z0 9 匹配大小寫字母和數字其中乙個字元 a za z0 9...

springboot json返回null問題處理

在開發過程中,我們需要統一返回前端json格式的資料,但有些介面的返回值存在 null或者 這種沒有意義的字段。以上不僅影響理解,還浪費頻寬,這時我們可以統一做一下處理 不返回空欄位,或者把null轉成 spring 內建的json處理框架是jackson。我們可以對它配置一下達到目的,具體 如下....

AfxGetMainWnd返回NULL也是可能的

afxgetmainwnd返回null也是有可能的。因為 afxwin inline cwnd afxapi afxgetmainwnd 而cwnd cwinthread getmainwnd cwnd cwinthread getmainwnd 而m pmainwnd有時候的值如果還沒有被設定,a...