电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP安全-文件系統跨越

瀏覽:127日期:2022-09-12 08:01:32
文件系統跨越

無論你用什么方法使用文件,你都要在某個地方指定文件名。在很多情況下,文件名會作為fopen()函數的一個參數,同時其它函數會調用它返回的句柄:

<?php

$handle = fopen(’/path/to/myfile.txt’, ’r’);

?>

當你把被污染數據作為文件名的一部分時,漏洞就產生了:

<?php

$handle = fopen('/path/to/{$_GET[’filename’]}.txt', ’r’);

?>

由于在本例中路徑和文件名的前后兩部分無法由攻擊者所操縱,攻擊的可能性受到了限制。可是,需要緊記的是有些攻擊會使用NULL(在URL中表示為%00)來使字符串終止,這樣就能繞過任何文件擴展名的限制。在這種情況下,最危險的攻擊手段是通過使用多個../來方問上級目錄,以達到文件系統跨越的目的。例如,想像一下filename的值被指定如下:

http://example.org/file.php?file ... nother/path/to/file

與許多攻擊的情況相同,在構造一個字串時如果使用了被污染數據,就會給攻擊者以機會來更改這個字串,這樣就會造成你的應用以你不希望方式運行。如果你養成了只使用已過濾數據來建立動態字串的習慣,就可以防止很多類型包括很多你所不熟悉的漏洞的出現。

由于fopen()所調用的文件名前導的靜態部分是/path/to,所以上面的攻擊中向上跨越目錄的次數比所需的更多。因為攻擊者在發起攻擊前無法察看源碼,所以典型的策略是過多次地重復../字串。../字串使用太多次并不會破壞上面的攻擊效果,所以攻擊者沒有必要猜測目錄的深度。

在上面的攻擊中使fopen()調用以你不希望方式運行,它簡化后等價于:

<?php

$handle = fopen(’/another/path/to/file.txt’, ’r’);

?>

在意識到這個問題或遭遇攻擊后,很多開發者都會犯試圖糾正潛在的惡意數據的錯誤,有時根本不會先對數據進行檢查。正如第一章所述,最好的方法把過濾看成檢查過程,同時迫使使用者遵從你制定的規則。例如,如果合法的文件名只包含字母,下面的代碼能加強這個限制:

<?php

$clean = array();

if (ctype_alpha($_GET[’filename’]))

{

$clean[’filename’] = $_GET[’filename’];

}

else

{

/* ... */

}

$handle = fopen('/path/to/{$clean[’filename’]}.txt', ’r’);

?>

并沒有必要對filename值進行轉義,這是因為這些數據中只用在PHP函數中而不會傳送到遠程系統。

basename( )函數在檢查是否有不必要的路徑時非常有用:

<?php

$clean = array();

if (basename($_GET[’filename’]) == $_GET[’filename’])

{

$clean[’filename’] = $_GET[’filename’];

}

else

{

/* ... */

}

$handle = fopen('/path/to/{$clean[’filename’]}.txt', ’r’);

?>

這個流程比只允許文件名是字母的安全性要差了一些,但你不太可能要求那樣嚴格。比較好的深度防范流程是綜合上面的兩種方法,特別是你在用正則表達式檢查代碼合法性時(而不是用函數ctype_alpha( ))。

當文件名的整個尾部是由未過濾數據組成時,一個高危漏洞就產生了:

<?php

$handle = fopen('/path/to/{$_GET[’filename’]}', ’r’);

?>

給予攻擊者更多的靈活性意味著更多的漏洞。在這個例子中,攻擊者能操縱filename參數指向文件系統中的任何文件,而不管路徑和文件擴展名是什么,這是因為文件擴展名是$_GET[’filename’]的一部分。一旦WEB服務器具有能讀取該文件的權限,處理就會轉向這個攻擊者所指定的文件。

如果路徑的前導部分使用了被污染數據的話,這一類的漏洞會變得甚至更加龐大。這也是下一節的主題。

標簽: PHP
相關文章:
主站蜘蛛池模板: RFID电子标签厂家-上海尼太普电子有限公司 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 定坤静电科技静电消除器厂家-除静电设备 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 福建珂朗雅装饰材料有限公司「官方网站」| 今日热点_实时热点_奇闻异事_趣闻趣事_灵异事件 - 奇闻事件 | 剪刃_纵剪机刀片_分条机刀片-南京雷德机械有限公司 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 纯化水设备-EDI-制药-实验室-二级反渗透-高纯水|超纯水设备 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 旋转滴界面张力仪(张力测定仪器)-百科| 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 优宝-汽车润滑脂-轴承润滑脂-高温齿轮润滑油脂厂家 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 |