亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

CTF中的PHP特性函數解析之中篇

瀏覽:233日期:2022-06-06 15:55:04
目錄
  • 前言
  • intval()
  • strpos()
  • sha1
    • 數組比較
    • 強類型
  • array_push()
    • 結語

      前言

      上篇文章給大家帶來了PHP中最基本的特性,不知道大家學習的怎樣了,回顧上文,我們講了MD5強弱碰撞以及正則匹配的繞過,總體來看還是很簡單的,下面給大家帶來新的PHP特性講解,會稍微比上一篇難一些。

      intval()

      上一篇在最后時簡單介紹了一下這個函數,我們看看官方是怎樣定義的:

      簡單來說就是讓輸入的數字變成整數,下面我們舉個例子:

      echo intval(1145.14);     // 1145echo intval("114514");    // 114514

      可以發現只對有小數點的數字起作用,正常的整數還是照常輸出,那么它在CTF中是如何考察的呢,查看下面代碼:

      if($num==="1145"){die("no no no!");    }    if(intval($num,0)===1145){echo $flag;    }

      要我們強類型傳入的不能等于1145,但后面經過intval函數又要等于1145,這不和前面的矛盾了,我們要怎樣做呢?

      這里介紹一下intval的特性,如果我們在函數里傳入字符串,那么該函數就會返回不是數字的字符之前的數字,也就是說我們傳入:

      sum=1145a

      intval就會判斷我們傳入的是1145,從而實現了繞過,還有另一種繞過方法:

      當base為0時,intval會自動進行進制轉換,我們可以傳入1145的十六進制形式來繞過。

      strpos()

      根據手冊可以看到,該函數以及與其類似的函數,作用都是匹配第一個或者最后一個字符,根據該函數特性,題目會經常圍繞它作為一個限制頭部的點,比如上面那題可能會增加限制:

       if(!strpos($num, "0")){die("no no no!");

      因為八進制開頭通常為0,檢測到的話就不能通過進制轉換來繞過了。

      sha1

      p>該函數的利用以及繞過方法類似于MD5函數,都是運用了PHP特性來做,這里簡單看一下:

      數組比較

      類似于MD5,在SHA1里我們也可以使用數組繞過,具體可以看下面例子:

      if(sha1($a)==sha1($b) && $a!=$b){  	echo $flag;}

      可以看到,也是一個弱比較,根據PHP特性sha1函數無法對數組進行處理,,于是我們傳入數組來使結果為NULL:

      a[]=1b[]=2

      強類型

      與MD5相同,當然也存在強類型比較,我們不能用數組來進行繞過了:

      if(sha1($a)===sha1($b) && $a!=$b){  	echo $flag;}

      這里同樣有類似于MD5函數的解決方法:

      a=aaK1STf    //0e7665852665575620768827115962402601b=aaO8zKZF   //0e89257456677279068558073954252716165

      array_push()

      可以理解為向數組尾部插入參數,我們看看是如何考察的:

      <?phphighlight_file(__FILE__);$allow = array();for ($i=36; $i < 0x36d; $i++) {     array_push($allow, rand(1,$i));}if(isset($_GET["n"]) && in_array($_GET["n"], $allow)){    file_put_contents($_GET["n"], $_POST["content"]);}?>

      可以看到題目先向數組里插入隨機數,in_array()是搜索數組中是否存在指定的值,根據它的語法:

      type會判斷類型是否匹配,這就是我們利用的點,因為數組里數據為int型,根據PHP特性比較后字符串會轉成int型,也就是說我們傳入1.php也是沒有問題的,后面有個寫入文件操作,正好可以設置一句話木馬連接后門,或者進行命令執行:

      get:  n=1.phppost: content=&lt;?=`tac f*`;

      結語

      今天這篇文章可能有的地方不是很好理解,但總體來說還是很簡單的,PHP特性很多以至于只能挑出一些著名的來說,更多關于CTF PHP特性函數的資料請關注其它相關文章!

      標簽: PHP
      主站蜘蛛池模板: 一区二区三区免费 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片毛片 | 成熟女人特级毛片www免费 | 久久精品a| 人人干人人插 | 日韩一级片视频 | 欧美久色 | 国产乱码一区二区三区四川人 | 日本亚洲中午字幕乱码 | 久久国产精品久久精品国产 | 美女被拍拍拍拍拍拍拍拍 | 国产一级二级三级毛片 | 91精品成人免费国产片 | 欧洲成人爽视频在线观看 | 亚洲视频在线免费播放 | 高清国产美女一级a毛片在线 | 色综合久久中文色婷婷 | 免费欧美黄色网址 | 久久婷婷五月综合色丁香 | 欧美日韩高清在线 | 亚洲黄色中文字幕 | 欧美黄色一级大片 | 在线观看麻豆 | 成人va| 美国一级特黄aa大片 | 婷婷综合久久 | 欧美一级视频精品观看 | 欧美日韩在线精品成人综合网 | 国产日产精品久久久久快鸭 | 欧美成人a级在线视频 | 国产欧美日韩精品一区二区三区 | 91精品久久久久亚洲国产 | 亚洲人体一区 | 欧美中文综合在线视频 | 欧美激情精品久久久久久久 | 视频一区 欧美 | 中文字幕亚洲欧美日韩不卡 | 国产美女福利在线 | 国产亚洲欧美在线观看的 | 狠狠插入视频 | 我要看一级黄色录像 |