極客大挑戰 2019 BuyFlag

2022-06-19 09:48:11 字數 1147 閱讀 2950

先抓個包吧

發現了tip

分析一下,

is_numeric()函式用於檢測變數是否為數字或數字字串。

後面是弱型別比較,用404abc便可繞過

將user=1試試

數值太長,用科學計數法試試

還可用strcmp函式特性繞過的辦法

php strcmp()漏洞

注:這乙個漏洞適用與5.3之前版本的php

我們首先看一下這個函式,這個函式是用於比較字串的函式

int strcmp ( string $str1 , string $str2 )

引數 str1第乙個字串。str2第二個字串。如果 str1 小於 str2 返回 < 0; 如果 str1 大於 str2 返回 > 0;如果兩者相等,返回 0。

可知,傳入的期望型別是字串型別的資料,但是如果我們傳入非字串型別的資料的時候,這個函式將會有怎麼樣的行為呢?實際上,當這個函式接受到了不符合的型別,這個函式將發生錯誤,但是在5.3之前的php中,顯示了報錯的警告資訊後,將return 0 !!!! 也就是雖然報了錯,但卻判定其相等了。這對於使用這個函式來做選擇語句中的判斷的**來說簡直是乙個致命的漏洞,當然,php官方在後面的版本中修復了這個漏洞,使得報錯的時候函式不返回任何值。但是我們仍然可以使用這個漏洞對使用老版本php的**進行滲透測試。

極客大挑戰 2019 PHP

開啟以後,是三個php原始碼,其中最重要的是class.php,如下 include flag.php error reporting 0 class name function wakeup function destruct if this username admin else 看了一下,這個...

極客大挑戰 2019 HardSQL wp

有過濾,抓個包fuzz一下 等號,空格等被過濾 發現可以用報錯注入,空格可以用括號代替 查表名username admin or extractvalue 1,concat 0x7e,select group concat column name from information schema.co...

極客大挑戰 2019 PHP

剛進入 我們可以看到這樣的乙個介面 根據內容提示,有備份 的習慣 日常後台掃瞄,發現有www.zip檔案,我們進行解壓得到 看到flag.php開啟檢視,發現沒有什麼有用的資訊。我們開啟index.php看看 我們可以看到通過get方式傳入引數select,並對引數select進行反序列化。接下來,...