欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

intval()

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

簡(jiǎn)單來(lái)說(shuō)就是讓輸入的數(shù)字變成整數(shù),下面我們舉個(gè)例子:

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

可以發(fā)現(xiàn)只對(duì)有小數(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)過(guò)intval函數(shù)又要等于1145,這不和前面的矛盾了,我們要怎樣做呢?

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

sum=1145a

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

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

strpos()

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

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

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

sha1

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

數(shù)組比較

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

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

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

a[]=1
b[]=2

強(qiáng)類型

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

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ù)它的語(yǔ)法:

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

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

結(jié)語(yǔ)

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

相關(guān)文章

  • CodeIgniter框架常見(jiàn)用法工作總結(jié)

    CodeIgniter框架常見(jiàn)用法工作總結(jié)

    這篇文章主要介紹了CodeIgniter框架常見(jiàn)用法,結(jié)合簡(jiǎn)單實(shí)例形式總結(jié)分析了CodeIgniter框架控制器、表單、數(shù)據(jù)庫(kù)等常見(jiàn)操作技巧,需要的朋友可以參考下
    2017-03-03
  • PHP實(shí)現(xiàn)偽靜態(tài)方法匯總

    PHP實(shí)現(xiàn)偽靜態(tài)方法匯總

    PHP偽靜態(tài)的使用主要是為了隱藏傳遞的參數(shù)名,下面給大家介紹php實(shí)現(xiàn)偽靜態(tài)的方法,對(duì)php實(shí)現(xiàn)偽靜態(tài)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 淺談PHP正則中的捕獲組與非捕獲組

    淺談PHP正則中的捕獲組與非捕獲組

    下面小編就為大家?guī)?lái)一篇淺談PHP正則中的捕獲組與非捕獲組。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • ecshop適應(yīng)在PHP7的修改方法解決報(bào)錯(cuò)的實(shí)現(xiàn)

    ecshop適應(yīng)在PHP7的修改方法解決報(bào)錯(cuò)的實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇ecshop適應(yīng)在PHP7的修改方法解決報(bào)錯(cuò)的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)(php)

    ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)(php)

    直接給出源代碼,可自行分析,寫(xiě)的不好請(qǐng)留言指正,謝謝!
    2010-07-07
  • QQ登錄 PHP OAuth示例代碼

    QQ登錄 PHP OAuth示例代碼

    申請(qǐng)是立即通過(guò)的 目前騰訊僅開(kāi)放獲取昵稱和頭像的API,以后會(huì)陸續(xù)推出其他API 頭像是QQ空間的,官方文檔都是寫(xiě)QQ空間登錄
    2011-07-07
  • Yii中創(chuàng)建自己的Widget實(shí)例

    Yii中創(chuàng)建自己的Widget實(shí)例

    這篇文章主要介紹了Yii中創(chuàng)建自己的Widget實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式較為詳細(xì)的分析了Yii中創(chuàng)建Widget的步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-01-01
  • php 分頁(yè)類 擴(kuò)展代碼

    php 分頁(yè)類 擴(kuò)展代碼

    采用url傳遞參數(shù)的方式,可能會(huì)有一定的影響或者叫已知的bug,這次做了一些擴(kuò)展,同時(shí)兼容了以前的模式
    2009-06-06
  • php使用cookie實(shí)現(xiàn)記住用戶名和密碼實(shí)現(xiàn)代碼

    php使用cookie實(shí)現(xiàn)記住用戶名和密碼實(shí)現(xiàn)代碼

    這篇文章主要介紹了php使用cookie實(shí)現(xiàn)記住用戶名和密碼實(shí)現(xiàn)代碼,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • PHP爬蟲(chóng)框架盤點(diǎn)

    PHP爬蟲(chóng)框架盤點(diǎn)

    大數(shù)據(jù)分析必定少不了數(shù)據(jù)抓取,只有擁有海量的數(shù)據(jù)才能對(duì)數(shù)據(jù)進(jìn)行對(duì)比分析。因此,網(wǎng)頁(yè)爬蟲(chóng)是作為程序員必須要懂得技能,下文我將通過(guò)文字形式記錄下php的爬蟲(chóng)框架的一些內(nèi)容。需要的小伙伴可以借鑒一下
    2023-04-04

最新評(píng)論