DVWA 之 命令注入 全等級

1、漏洞概述php

命令注入是指在易受攻擊的應用程序中注入和執行攻擊者指定的命令,執行的命令具備與web 服務相同的權限和環境。web

產生緣由:windows

web服務器沒有對用戶提交的參數進行有效的檢測過濾服務器

操做系統容許一條語句在使用鏈接符和管道符後執行多條命令函數

windows下幾種的管道符或者鏈接符:工具

command1&command2         不管command1是否執行成功都要執行command2測試

command1&&command2      只有command1執行成功後才執行command2spa

command1||command2         只有command1執行失敗後才執行command2操作系統

command1|command2           將command1的執行結果傳遞給command2firefox

2、工具

firefox

3、測試過程

一、級別:low

首先輸入一個IP觀察一下

clipboard

能夠看到在下方返回了對127.0.0.1進行Ping檢測的內容,所以猜想這裏有一個能夠執行系統命令的函數,則這裏可能存在命令注入漏洞,且執行的命令爲Ping 輸入的內容。

利用鏈接符&&進行測試,輸入127.0.0.1&&dir

clipboard

能夠看見這裏不單單返回了127.0.0.1的Ping檢測信息,還返回了剛剛拼接dir命令的結果。而後咱們就能夠經過拼接其餘命令進行攻擊。

Low級別代碼分析

clipboard

stristr(string,search,before_search)函數:搜索字符串在另外一字符串中的第一次出現。

php_uname(mode)函數:返回運行php的操做系統的相關描述,參數mode可取值

a:此爲默認,包含序列」s n r v m」裏的全部模式

s:返回操做系統名稱 n:返回主機名 r:返回版本名稱

v:返回版本信息            m:返回機器類型

這段代碼是判斷該操做系統爲哪一種操做系統並按操做系統的不一樣執行其對應的Ping命令。

 

 

二、級別MEDIUM

一樣先試一下輸入127.0.0.1&&dir,發現失敗了。

試一下利用&進行鏈接,咱們輸入127.0.0.1進行測試,發現下方成功顯示出了命令結果,表示注入成功。

clipboard

Medium級別代碼分析

clipboard

能夠發現比low級別多了一段代碼,這段代碼的做用就是對輸入的字符進行判斷若出現‘&&’或‘;’字符則用‘’代替。這是明顯的黑名單作法,仍是不能有效的阻擋命令注入。

 

 

三、級別High

依次使用不一樣的鏈接符或管道符進行測試,發現只有 ‘|’ 才能成功。

clipboard

High級別代碼分析

clipboard

發現同樣採用的是黑名單方法,只是擴大了限制的字符,仍是有效的阻擋命令注入。

 

 

四、級別Impossible

發現各類連接符都沒法成功

clipboard

Impossible級別代碼分析

clipboard

發現採用了白名單的作法,只有輸入的格式跟白名單的同樣才能經過驗證,其餘的都不行,這樣基本上杜絕了命令注入。

相關文章
相關標籤/搜索