狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

上傳漏洞-ASP 中 chr(0) 文件上傳漏洞原理及解決方法

admin
2011年1月31日 1:38 本文熱度 2916

我們在用 ASP 開發文件上傳功能的時候,為了防止用戶上傳木馬程序,常常會限制一些文件的上傳,常用的方法是判斷一下上傳文件的擴展名是否符合規定,可以用 right 字符串函數取出上傳文件的文件名的后四位,這樣很容易就能判斷了,但是這里面有一個漏洞,非常危險,就是 chr(0) 漏洞,詳情請接著往下看。


一、首先解釋下什么是 chr(0)?


在 ASP 中可以用 chr() 函數調用 ASCII 碼,其中 chr(0) 表示調用的是一個結束字符,簡單的說當一個字符串中包含 chr(0) 字符時,只能輸出 chr(0) 前面的字符,chr(0) 后面的字符將不被輸出。舉例如說明:


<%response.write "HTMer.com"&chr(0)&" 歡迎您 "%> 以上代碼你在 IIS 下運行下看看,是不是只會輸出“HTMer.com”呢?后面的“歡迎您”就沒有了,因為讀到 chr(0) 時就認為該語句結束了。


二、chr(0) 漏洞上傳原理:


假設我在 ASP 程序中已經設置只能上傳 jpg 文件,這里看我怎么利用 chr(0) 漏洞上傳 ASP 木馬的:


這里假設有一個 ASP 木馬文件為 htmer.asp,我把它改名為 htmer.asp .jpg,大家有沒有看到中間有一個空格?我們在獲取該文件名時,這個空格就被認為是 chr(0),當用 right("htmer.asp .jpg",4) 看的時候,確實是 .jpg,但是當實際讀取 htmer.asp .jpg,并生成文件的時候,系統讀到 chr(0) 就以為結束了,所以后面的 .jpg 就輸出不來了,上傳后的文件名被自動生成了 htmer.asp,這意味著什么?我想你應該知道了吧。(由于顯示的原因,文中“.jpg”前面的空格實際上代表 chr(0)。千一網絡編輯注)


三、解決 chr(0) 漏洞的方法


解決辦法是檢查上傳的文件名里面有沒有 chr(0),在 ASP 中直接用 replace 函數替換掉 chr(0) 字符即可。


(chr(0) 漏洞是在完全按客戶端的文件名來保存時才存在,如果文件標識符是系統決定的,而文件擴展名由客戶端文件名來提取,則不會出現安全問題。實際上,我們應用中不可能完全按照客戶端文件名來保存,因為這本身就是一種漏洞,因為這樣客戶端就可以上傳文件來覆蓋已經存在的文件了。)


該文章在 2011/1/31 1:38:36 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved