国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

解析web文件操作常見安全漏洞(目錄、文件名檢測漏洞

2024-05-04 21:53:58
字體:
供稿:網(wǎng)友

 做web開發(fā),我們經(jīng)常會做代碼走查,很多時候,我們都會抽查一些核心功能,或者常會出現(xiàn)漏洞的邏輯。隨著技術(shù)團(tuán)隊的壯大,組員技術(shù)日益成熟。 常見傻瓜型SQL注入漏洞、以及XSS漏洞。會越來越少,但是我們也會發(fā)現(xiàn)一些新興的隱蔽性漏洞偶爾會出現(xiàn)。這些漏洞更多來自開發(fā)人員,對一個函數(shù)、常見 模塊功能設(shè)計不足,遺留下的問題。以前我們能夠完成一些功能模塊,現(xiàn)在要求是要安全正確方法完成模塊才行。 接下來,我會分享一些常見功能模塊,由于設(shè)計原因?qū)е侣┒闯霈F(xiàn)。下面,我們先看下,讀取文件型功能漏洞。

  我們先看下下面一段代碼,通過用戶輸入不同目錄,包含不同文件

<?php///讀取模塊名稱$mod = isset($_GET['m'])?trim($_GET['m']):'index';///過濾目錄名稱不讓跳轉(zhuǎn)到上級目錄$mod = str_replace("..",".",$mod);///得到文件$file = "/home/www/blog/".$mod.".php";///包含文件@include($file);

  這段代碼,可能在很多朋友做的程序里面有遇到過,對于新人來說,也是很容易出現(xiàn)這樣問題,記得走查遇到該代碼時候,我問到,你這個代碼安全方面能做到那些?

答:1. 對”..”目錄有做替換,因此用戶傳入模塊名里面有有..目錄都會被替換掉了。

         2.構(gòu)造拼接file名稱,有前面目錄限制,有后面擴(kuò)展名限制,包含文件就會限制在該目錄了

  • 這段代碼真的做到了目錄安全檢測嗎?

我們來測試下,如果$mod傳入這個值將會是什么樣的結(jié)果。

image

$mod 通過構(gòu)造輸?mod=…%2F…%2F…%2F…%2Fetc%2Fpasswd%00 ,我們看結(jié)果將是:

image

居然include(“/etc/passwd”)文件了。

  • 怎么逃脫了我參數(shù)限制呢?

 

  首先:做參數(shù)過濾類型去限制用戶輸入本來就不是一個好方法,一般規(guī)則是:能夠做檢測的,不要做替換 只要是檢測不通過的,直接pass 掉!這是我們的一個原則。過濾失敗情況,舉不勝舉,我們來看看,實際過程。

1、輸入”…/…/…/” 通過把”..” 替換為”.”后

2、結(jié)果是”../../../” 就變成了這個了

有朋友就會說,如果我直接替換為空格是不是就好了?在這個里面確實可以替換掉。但是不代表以后你都替換為空格就好了。再舉例子下。如:有人將字符串里面javascript替換掉。代碼如下:

……

$msg = str_replace(“javascript”,””,$msg);

看似不會出現(xiàn)了javascript了,但是,如果輸入:jjavascriptavascript 替換,會替換掉中間一個變?yōu)榭蘸蟆G懊娴?rdquo;j” 跟后面的會組成一個新的javascript了。

  其次:我們看看,怎么逃脫了,后面的.php 限制呢。用戶輸入的參數(shù)有:”etc/passwd

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔西| 萨嘎县| 吉首市| 登封市| 福州市| 东源县| 张家川| 阳春市| 宿州市| 邯郸市| 高陵县| 昔阳县| 于都县| 金阳县| 晋州市| 岚皋县| 正镶白旗| 铅山县| 三明市| 绥化市| 广饶县| 高陵县| 会昌县| 耒阳市| 双辽市| 静乐县| 莱芜市| 周至县| 嵩明县| 乌鲁木齐市| 泸水县| 会宁县| 新郑市| 上高县| 河西区| 正安县| 山阳县| 斗六市| 明溪县| 本溪市| 诏安县|