DVWA命令執行漏洞詳解

2021-09-25 09:54:10 字數 2077 閱讀 2639

0x01 級別low

1.原始碼

command execution source

<?php

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

} ?>

2.說明:

stristr函式

stristr(string,search,before_search)

引數

描述string

必需。規定被搜尋的字串。

search

必需。規定要搜尋的字串。

如果該引數是數字,則搜尋匹配該數字對應的 ascii 值的字元。

before_search

可選。預設值為 "false" 的布林值。

如果設定為 "true",它將返回 search 引數第一次出現之前的字串部分。

php_uname函式 是返回有關系統資訊

3.分析

基本上沒有什麼防護機制 可輕鬆使用 "&&"或者";"字元進行連線命令

如:在輸入框輸入 127.0.0.1 && net user 、127.0.0.1 ; cd help && dir

0x02 級別medium

1.原始碼

command execution source

<?php

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

} ?>

2.說明

array_keys(array,value,strict)

引數描述

array

必需。規定陣列。

value

可選。您可以指定鍵值,然後只有該鍵值對應的鍵名會被返回。

strict

可選。與 value 引數一起使用。可能的值:

str_replace(find,replace,string,count)

引數描述

find

必需。規定要查詢的值。

replace

必需。規定替換 find 中的值的值。

string

必需。規定被搜尋的字串。

count

可選。乙個變數,對替換數進行計數。

3.分析

$substitutions = array(

'&&' => '',

';' => '',

); $target = str_replace( array_keys( $substitutions ), $substitutions, $target );

加入了黑名單機制 替換了"&&" ";" 這樣的連線字元

繞過方法

如:127.0.0.1 | dir、127.0.0.1 & dir 、 127.0.0.1 &; dir

0x03 級別high

1.源**

command execution source

<?php

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

} else

} ?>

2. 說明

stripslashes(string)

引數描述

string

必需。規定要檢查的字串。

返回值:

返回剝離了反斜槓的字串。

explode(separator,string,limit)

引數描述

separator

必需。規定在**分割字串。

string

必需。要分割的字串。

limit

可選。規定所返回的陣列元素的數目。 可能的值:

3. 分析

這個暫時不知道繞過的方法,希望大佬能指出來,謝謝了

0x04 結語

引用:

dvwa命令注入漏洞

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

2 DVWA親測命令執行漏洞

先看low級 提示讓我們輸入乙個ip位址來實現ping,猜測會是在系統終端中實現的,我們正常輸入127.0.0.那我們就可以利用這個使用其他cmd命令 我們輸入127.0.0.1 net user 我們順便看一下源 if isset post submit else feedback for the...

DVWA 命令執行審計

使用post方式接受表單,isset 判斷是否傳入,將傳入的 ip賦值給 target 使用php name獲取主機資訊,用 stristr 判斷是否是 win系統 通過if進行判斷是否為空後,使用shell exec 執行並將所有輸出流作為字串返回 此執行過程無任何過濾。將ip的值賦給變數targ...