欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何分析DVWA下的命令注入通關(guān)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何分析DVWA下的命令注入通關(guān),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、船營網(wǎng)站維護、網(wǎng)站推廣。

Command Injection命令注入

命令注入攻擊,是指由于Web應(yīng)用程序?qū)τ脩籼峤坏臄?shù)據(jù)過濾不嚴格,導致黑客可以通過構(gòu)造特殊命令字符串的方式,將數(shù)據(jù)提交至Web應(yīng)用程序中,并利用該方式執(zhí)行外部程序或系統(tǒng)命令實施攻擊,非法獲取數(shù)據(jù)或者網(wǎng)絡(luò)資源等。在命令注入的漏洞中,最為常見的是PHP的命令注入。PHP命令注入攻擊存在的主要原因是Web應(yīng)用程序員在應(yīng)用PHP語言中一些具有命令執(zhí)行功能的函數(shù)時,對用戶提交的數(shù)據(jù)內(nèi)容沒有進行嚴格的過濾就帶入函數(shù)中執(zhí)行而造成的。例如,當黑客提交的數(shù)據(jù)內(nèi)容為向網(wǎng)站目錄寫入PHP文件時,就可以通過該命令注入攻擊漏洞寫入一個PHP后門文件,進而實施下一步滲透攻擊。

常見的命令連接符:

命令連接符:

command1 && command2   先執(zhí)行command1后執(zhí)行command2

command1 | command2     只執(zhí)行command2

command1 & command2    先執(zhí)行command2后執(zhí)行command1

以上三種連接符在windows和linux環(huán)境下都支持

如果程序沒有進行過濾,那么我們就可以通過連接符執(zhí)行多條系統(tǒng)命令。

1、Low Command Injection Source(低級別的)

<?php
if( isset( $_POST[ 'Submit' ]  ) ) {
// Get input
$target = $_REQUEST[ 'ip' ];
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping  ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping  -c 4 ' . $target );
}
// Feedback for the end user
echo "<pre>{$cmd}</pre>";
}
?>

low級別的,沒有任何限制沒有任何過濾,所以隨便玩,就當熟悉命令連接符。

”| “符號的效果:

如何分析DVWA下的命令注入通關(guān)

burpsuite抓包:

如何分析DVWA下的命令注入通關(guān)

”&“符號的效果:

如何分析DVWA下的命令注入通關(guān)

burpsuite抓包:

如何分析DVWA下的命令注入通關(guān)

”&&“符號的效果:

如何分析DVWA下的命令注入通關(guān)

burpsuite抓包:

如何分析DVWA下的命令注入通關(guān)

2、Medium Command Injection Source(中難度的)

<?php
if( isset( $_POST[ 'Submit' ]  ) ) {
// Get input
$target = $_REQUEST[ 'ip' ];
// Set blacklist
$substitutions = array(
'&&' => '',
';'  => '',
);
// Remove any of the charactars in the array (blacklist).
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping  ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping  -c 4 ' . $target );
}
// Feedback for the end user
echo "<pre>{$cmd}</pre>";
}
?>

$substitutions = array(
'&&' => '',
';'  => '',

這段代碼表示過濾了“&&”和“;”,但沒有過濾“||”

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 &&ipconfig,但是沒顯示出命令執(zhí)行后的內(nèi)容。

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 &ipconfig,內(nèi)容就出來了,繼續(xù)嘗試

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 |ipconfig,也可以,說明medium級別的源代碼真的把”&&“字符過濾了,效果還很好,我們繼續(xù)下一關(guān)。

3、High Command Injection Source(高難度的)

<?php

if( isset( $_POST[ 'Submit' ]  ) ) {
// Get input
$target = trim($_REQUEST[ 'ip' ]);
// Set blacklist
$substitutions = array(
'&'  => '',
';'  => '',
'| ' => '',
'-'  => '',
'$'  => '',
'('  => '',
')'  => '',
'`'  => '',
'||' => '',
);
// Remove any of the charactars in the array (blacklist).
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping  ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping  -c 4 ' . $target );
}
// Feedback for the end user
echo "<pre>{$cmd}</pre>";
}
?>

high級別主要是完善了黑名單:

$substitutions = array(
'&'  => '',
';'  => '',
'| ' => '',
'-'  => '',
'$'  => '',
'('  => '',
')'  => '',
'`'  => '',
'||' => '',
);

看操作:

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 &&ipconfig,但是沒顯示出命令執(zhí)行后的內(nèi)容。

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 &ipconfig,但也沒顯示出命令執(zhí)行后的內(nèi)容。

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 |ipconfig,有內(nèi)容顯示了,終于有漏網(wǎng)之魚了。

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 ||ipconfig,也沒有顯示內(nèi)容。以上說明high級別的依舊可以命令注入成功。最后來試試

Impossible級別的。

4、Impossible Command Injection Source(不可能的)

<?php

if( isset( $_POST[ 'Submit' ]  ) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

// Get input
$target = $_REQUEST[ 'ip' ];
$target = stripslashes( $target );

// Split the IP into 4 octects
$octet = explode( ".", $target );

// Check IF each octet is an integer
if( ( is_numeric( $octet[0] ) ) && ( is_numeric( $octet[1] ) ) && ( is_numeric( $octet[2] ) ) && ( is_numeric( $octet[3] ) ) && ( sizeof( $octet ) == 4 ) ) {
// If all 4 octets are int's put the IP back together.
$target = $octet[0] . '.' . $octet[1] . '.' . $octet[2] . '.' . $octet[3];

// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping  ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping  -c 4 ' . $target );
}

// Feedback for the end user
echo "<pre>{$cmd}</pre>";
}
else {
// Ops. Let the user name theres a mistake
echo '<pre>ERROR: You have entered an invalid IP.</pre>';
}
}

// Generate Anti-CSRF token
generateSessionToken();
?>

以上源碼對輸入進行了嚴格限制,只有數(shù)字才行!那我們試試

輸入127.0.0.1 &&ipconfig:

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 &ipconfig:

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 |ipconfig:

如何分析DVWA下的命令注入通關(guān)

輸入127.0.0.1 ||ipconfig:

如何分析DVWA下的命令注入通關(guān)

全部通殺!其實看漏洞會覺得這個漏洞很厲害,這相當于拿到了一個shell,但最大的問題不是權(quán)限問題,最大的問題是這樣的漏洞很難見到啊,不像sql注入,xss這樣具有很強的通用性,畢竟sql查詢,留言等操作,基本上是web很常見的操作,而像這樣的cmd的操作,讓用戶輸入,然后把用戶輸入直接cmd運行很少見。

這個命令注入實驗操作,其實可以脫離DVWA進行練手的,自己在windows下cmd運行也可以的:

如何分析DVWA下的命令注入通關(guān)

如何分析DVWA下的命令注入通關(guān)

如何分析DVWA下的命令注入通關(guān)

如何分析DVWA下的命令注入通關(guān)

上述就是小編為大家分享的如何分析DVWA下的命令注入通關(guān)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:如何分析DVWA下的命令注入通關(guān)
網(wǎng)頁路徑:http://chinadenli.net/article8/gogoop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序網(wǎng)站內(nèi)鏈App設(shè)計網(wǎng)頁設(shè)計公司虛擬主機網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司