PHP提權之非同步執行

來源:互聯網
上載者:User

標籤:

在伺服器上都會定時運行一些指令碼以完成周期性的任務. 而這些指令碼往往是以root許可權啟動的, 替換或者改變其中的內容就可以完成提權.而今天在這要講解的就是php提權中的非同步執行方法.

在php中一般大家都用下面四個函數來調用系統命令,或者外部程式:

<?
echo exec("dir");
echo shell_exec("dir");
echo system("dir");
echo passthru("dir");
echo `dir`;
?>

linux下可以通過在執行的命令後加上>/dev/null 2>&1 & 來丟棄所有的輸出資訊, 並在將此行命令單獨開出一個進程放到後台執行, 從而不會阻塞當前指令碼往下繼續執行.

<?
.....
exec("tar cjf /root && >/dev/null 2>&1 &);
......
?>

但是在windows的cmd中並沒有提供後台執行這個功能(&). 這時候除了使用at命令來添加定時執行任務外(很多時候定時服務是未開啟的), 就只能用popen加上 start /b來完成使命了.

<?
#經過實驗只有popen函數可以
#popen("start /b s..bat","r"); #成功
#exec("start /b s..bat");#失敗
popen("start /b ping -n 10 www.baidu.com && echo \"1111\" > ok.txt && ping -n 10 www.baidu.com && echo \"2222\" > ok2.txt && ping -n 10 www.baidu.com && echo \"3333\" > ok3.txt ","r");
echo "ALL is finish until here!!!";
?>

轉自天國哥哥的部落格。

PHP提權之非同步執行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.