這是乙個比較老的漏洞了,不過漏洞原理還是挺有意思的。
漏洞位於search.php
檔案中。
首先包含了common.php
, 這個檔案裡面做了一些初始化工作,其中最重要的是對提交引數的處理。
註冊提交的引數為系統全域性變數,很容易出現變數覆蓋漏洞。
下面回到search.php
, 之後對變數進行處理以及過濾。
然後會$searchtype
的值來選擇渲染內容的模板。
之後就是對模板檔案中的內容進行替換。
然後進入$mainclassobj->parseif
解析if
語句
$mainclassobj->parseif
最後會呼叫eval
解析。
我們的目標就是 汙染eval
的引數。
輸入這個之後,首先閉合前面乙個"=="time"}
然後在parseif
提取if
語句對應標籤內容時,可以看到我們的輸入被識別成了標籤。
最後在eval
時,執行的其實是
if(1)print_r($_post[func]($_post[cmd]));//)else
使用searchtype=5
是為了使用cascade.html
最為模板,因為這裡面才有if
標籤
而用order
來傳遞payload
, 原因在於order
變數沒有做過濾處理,而且order
的值會用來替換掉.
$content = str_replace("",$order,$content);
參考 命令執行漏洞
命令執行漏洞 命令執行漏洞是指攻擊者可以隨意執行系統命令。os命令執行漏洞 部分web應用程式提供了一些命令執行的操作。例如,想要測試是否可以正常連線,那麼web應用程式底層就很可能去呼叫系統操作命令,如果此處沒有過濾好使用者輸入的資料,就很有可能形成系統命令執行漏洞 在windows中,的作用是將...
命令執行漏洞
原理 由於開發人員在編寫源 時,沒有對源 中可執行的特殊函式入口做過濾,導致客戶端可以提交一些cmd命令,並交由伺服器程式執行。導致攻擊者可以通過瀏覽器或者其他客戶端軟體提交一些cmd命令 或者bash命令 至伺服器程式,伺服器程式通過system eval exec等函式直接或者間接地呼叫cmd....
命令執行漏洞
目前已爆出的命令執行漏洞web應用程式給使用者提供指定的遠端命令操作介面,在呼叫這些函式時,將使用者的輸入作為系統命令引數拼接到命令列中,如果對使用者輸入的引數過濾不嚴格,就到造成命令執行漏洞。1.以當前 的許可權去執行系統命令。2.繼承web服務程式許可權,向伺服器寫檔案,讀取敏感資料等。3.sh...