成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP偽協(xié)議總結(jié)

huaixiaoz / 2860人閱讀

摘要:參考了這篇文章偽協(xié)議實(shí)現(xiàn)命令執(zhí)行的七種姿勢(shì),并根據(jù)自己理解進(jìn)行了總結(jié),也算是加深一下印象,方便以后使用。說(shuō)明文件系統(tǒng)是使用的默認(rèn)封裝協(xié)議,展現(xiàn)了本地文件系統(tǒng)。允許直接訪問(wèn)指定的文件描述符。

參考了這篇文章:php偽協(xié)議實(shí)現(xiàn)命令執(zhí)行的七種姿勢(shì),并根據(jù)自己理解進(jìn)行了總結(jié),也算是加深一下印象,方便以后使用。
file:// 協(xié)議

條件

allow_url_fopen:off/on

allow_url_include :off/on

作用
用于訪問(wèn)本地文件系統(tǒng),在CTF中通常用來(lái)讀取本地文件的且不受allow_url_fopenallow_url_include的影響。
include()/require()/include_once()/require_once()參數(shù)可控的情況下,如導(dǎo)入為非.php文件,則仍按照php語(yǔ)法進(jìn)行解析,這是include()函數(shù)所決定的。

說(shuō)明
file:// 文件系統(tǒng)是 PHP 使用的默認(rèn)封裝協(xié)議,展現(xiàn)了本地文件系統(tǒng)。當(dāng)指定了一個(gè)相對(duì)路徑(不以/、、或 Windows 盤符開頭的路徑)提供的路徑將基于當(dāng)前的工作目錄。在很多情況下是腳本所在的目錄,除非被修改了。使用 CLI 的時(shí)候,目錄默認(rèn)是腳本被調(diào)用時(shí)所在的目錄。在某些函數(shù)里,例如 fopen()file_get_contents()include_path 會(huì)可選地搜索,也作為相對(duì)的路徑。

用法

/path/to/file.ext
relative/path/to/file.ext
fileInCwd.ext
C:/path/to/winfile.ext
C:path	owinfile.ext
smbserversharepath	owinfile.ext
file:///path/to/file.ext

示例

file://[文件的絕對(duì)路徑和文件名]

http://127.0.0.1/include.php?file=file://E:phpStudyPHPTutorialWWWphpinfo.txt

[文件的相對(duì)路徑和文件名]

http://127.0.0.1/include.php?file=./phpinfo.txt

[http://網(wǎng)絡(luò)路徑和文件名]

http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

參考:http://php.net/manual/zh/wrappers.file.php

php:// 協(xié)議

條件

allow_url_fopen:off/on

allow_url_include :僅php://input php://stdin php://memory php://temp 需要on

作用
php:// 訪問(wèn)各個(gè)輸入/輸出流(I/O streams),在CTF中經(jīng)常使用的是php://filterphp://input,php://filter用于讀取源碼,php://input用于執(zhí)行php代碼

說(shuō)明
PHP 提供了一些雜項(xiàng)輸入/輸出(IO)流,允許訪問(wèn) PHP 的輸入輸出流、標(biāo)準(zhǔn)輸入輸出和錯(cuò)誤描述符,
內(nèi)存中、磁盤備份的臨時(shí)文件流以及可以操作其他讀取寫入文件資源的過(guò)濾器。

協(xié)議 作用
php://input 可以訪問(wèn)請(qǐng)求的原始數(shù)據(jù)的只讀流,在POST請(qǐng)求中訪問(wèn)POST的data部分,在enctype="multipart/form-data" 的時(shí)候php://input 是無(wú)效的。
php://output 只寫的數(shù)據(jù)流,允許以 print 和 echo 一樣的方式寫入到輸出緩沖區(qū)。
php://fd (>=5.3.6)允許直接訪問(wèn)指定的文件描述符。例如 php://fd/3 引用了文件描述符 3。
php://memory php://temp (>=5.1.0)一個(gè)類似文件包裝器的數(shù)據(jù)流,允許讀寫臨時(shí)數(shù)據(jù)。兩者的唯一區(qū)別是 php://memory 總是把數(shù)據(jù)儲(chǔ)存在內(nèi)存中,而 php://temp 會(huì)在內(nèi)存量達(dá)到預(yù)定義的限制后(默認(rèn)是 2MB)存入臨時(shí)文件中。臨時(shí)文件位置的決定和 sys_get_temp_dir() 的方式一致。
php://filter (>=5.0.0)一種元封裝器,設(shè)計(jì)用于數(shù)據(jù)流打開時(shí)的篩選過(guò)濾應(yīng)用。對(duì)于一體式(all-in-one)的文件函數(shù)非常有用,類似 readfile()、file()file_get_contents(),在數(shù)據(jù)流內(nèi)容讀取之前沒(méi)有機(jī)會(huì)應(yīng)用其他過(guò)濾器。

php://filter參數(shù)詳解

該協(xié)議的參數(shù)會(huì)在該協(xié)議路徑上進(jìn)行傳遞,多個(gè)參數(shù)都可以在一個(gè)路徑上傳遞。具體參考如下:

php://filter 參數(shù) 描述
resource=<要過(guò)濾的數(shù)據(jù)流> 必須項(xiàng)。它指定了你要篩選過(guò)濾的數(shù)據(jù)流。
read=<讀鏈的過(guò)濾器> 可選項(xiàng)。可以設(shè)定一個(gè)或多個(gè)過(guò)濾器名稱,以管道符(* *)分隔。
write=<寫鏈的過(guò)濾器> 可選項(xiàng)??梢栽O(shè)定一個(gè)或多個(gè)過(guò)濾器名稱,以管道符( )分隔。
<; 兩個(gè)鏈的過(guò)濾器> 任何沒(méi)有以 read=write= 作前綴的篩選器列表會(huì)視情況應(yīng)用于讀或?qū)戞湣?/td>

可用的過(guò)濾器列表(4類)

此處列舉主要的過(guò)濾器類型,詳細(xì)內(nèi)容請(qǐng)參考:https://www.php.net/manual/zh/filters.php

字符串過(guò)濾器 作用
string.rot13 等同于str_rot13(),rot13變換
string.toupper 等同于strtoupper(),轉(zhuǎn)大寫字母
string.tolower 等同于strtolower(),轉(zhuǎn)小寫字母
string.strip_tags 等同于strip_tags(),去除html、PHP語(yǔ)言標(biāo)簽
轉(zhuǎn)換過(guò)濾器 作用
convert.base64-encode & convert.base64-decode 等同于base64_encode()base64_decode(),base64編碼解碼
convert.quoted-printable-encode & convert.quoted-printable-decode quoted-printable 字符串與 8-bit 字符串編碼解碼
壓縮過(guò)濾器 作用
zlib.deflate & zlib.inflate 在本地文件系統(tǒng)中創(chuàng)建 gzip 兼容文件的方法,但不產(chǎn)生命令行工具如 gzip的頭和尾信息。只是壓縮和解壓數(shù)據(jù)流中的有效載荷部分。
bzip2.compress & bzip2.decompress 同上,在本地文件系統(tǒng)中創(chuàng)建 bz2 兼容文件的方法。
加密過(guò)濾器 作用
mcrypt.* libmcrypt 對(duì)稱加密算法
mdecrypt.* libmcrypt 對(duì)稱解密算法

示例

php://filter/read=convert.base64-encode/resource=[文件名]讀取文件源碼(針對(duì)php文件需要base64編碼)

http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php

php://input + [POST DATA]執(zhí)行php代碼

http://127.0.0.1/include.php?file=php://input
[POST DATA部分]

若有寫入權(quán)限,寫入一句話木馬

http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
"); ?>

參考:https://php.net/manual/zh/wrappers.php.php

zip:// & bzip2:// & zlib:// 協(xié)議

條件

allow_url_fopen:off/on

allow_url_include :off/on

作用zip:// & bzip2:// & zlib:// 均屬于壓縮流,可以訪問(wèn)壓縮文件中的子文件,更重要的是不需要指定后綴名,可修改為任意后綴:jpg png gif xxx 等等。

示例

zip://[壓縮文件絕對(duì)路徑]%23[壓縮文件內(nèi)的子文件名](#編碼為%23)

壓縮 phpinfo.txt 為 phpinfo.zip ,壓縮包重命名為 phpinfo.jpg ,并上傳

http://127.0.0.1/include.php?file=zip://E:phpStudyPHPTutorialWWWphpinfo.jpg%23phpinfo.txt

compress.bzip2://file.bz2

壓縮 phpinfo.txt 為 phpinfo.bz2 并上傳(同樣支持任意后綴名)

http://127.0.0.1/include.php?file=compress.bzip2://E:phpStudyPHPTutorialWWWphpinfo.bz2

compress.zlib://file.gz

壓縮 phpinfo.txt 為 phpinfo.gz 并上傳(同樣支持任意后綴名)

http://127.0.0.1/include.php?file=compress.zlib://E:phpStudyPHPTutorialWWWphpinfo.gz

參考:http://php.net/manual/zh/wrappers.compression.php

data:// 協(xié)議

條件

allow_url_fopen:on

allow_url_include :on

作用:自PHP>=5.2.0起,可以使用data://數(shù)據(jù)流封裝器,以傳遞相應(yīng)格式的數(shù)據(jù)。通常可以用來(lái)執(zhí)行PHP代碼。

用法

data://text/plain,
data://text/plain;base64,

示例

data://text/plain,

http://127.0.0.1/include.php?file=data://text/plain,

data://text/plain;base64,

http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

http:// & https:// 協(xié)議

條件

allow_url_fopen:on

allow_url_include :on

作用:常規(guī) URL 形式,允許通過(guò) HTTP 1.0 的 GET方法,以只讀訪問(wèn)文件或資源。CTF中通常用于遠(yuǎn)程包含。

用法

http://example.com
http://example.com/file.php?var1=val1&var2=val2
http://user:[email protected]
https://example.com
https://example.com/file.php?var1=val1&var2=val2
https://user:[email protected]

示例

http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

phar:// 協(xié)議

phar://協(xié)議與zip://類似,同樣可以訪問(wèn)zip格式壓縮包內(nèi)容,在這里只給出一個(gè)示例:

http://127.0.0.1/include.php?file=phar://E:/phpStudy/PHPTutorial/WWW/phpinfo.zip/phpinfo.txt

另外在 Black Hat 2018 大會(huì)上,研究人員公布了一款針對(duì)PHP應(yīng)用程序的全新攻擊技術(shù):phar://協(xié)議對(duì)象注入技術(shù)。

因?yàn)樵摾命c(diǎn)需要滿足一定的條件才能利用,可以參考下面這篇文章,里面的demo也非常詳細(xì),留作以后專門研究一下。

參考文章:seebug - 利用 phar 拓展 php 反序列化漏洞攻擊面

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31340.html

相關(guān)文章

  • php+nodeJs+thrift協(xié)議,實(shí)現(xiàn)zookeeper節(jié)點(diǎn)數(shù)據(jù)自動(dòng)發(fā)現(xiàn)

    摘要:可以在主進(jìn)程中拋出一個(gè)子進(jìn)程,子進(jìn)程中實(shí)現(xiàn)的自動(dòng)發(fā)現(xiàn),子進(jìn)程偵察到節(jié)點(diǎn)數(shù)據(jù)變化時(shí),主動(dòng)通知主進(jìn)程。架構(gòu)的整體思路是子進(jìn)程實(shí)現(xiàn)的自動(dòng)發(fā)現(xiàn),主進(jìn)程維護(hù)一個(gè)節(jié)點(diǎn)數(shù)據(jù)的共享變量,其他服務(wù)要想使用節(jié)點(diǎn)數(shù)據(jù)時(shí),從主進(jìn)程中獲取。 php是當(dāng)下最流行的web服務(wù)器端語(yǔ)言,zookeeper是大型分布式協(xié)同工具,本文在這里介紹一種架構(gòu)實(shí)現(xiàn)php服務(wù)器對(duì)于zookeeper數(shù)據(jù)變化的自動(dòng)監(jiān)聽(tīng) 一.問(wèn)題背景...

    MingjunYang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<