亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP安全性初探

2020-07-27 21:51:00
字體:
來源:轉載
供稿:網友
綜述:有幾種辦法可以暴露JSP代碼,不過經過大量測試,這和WEB SERVER的配置有絕對的關系,就拿IBM Websphere Commerce Suite而言,還有別的方法看到JSP源代碼,但相信是IBM HTTP SERVER的配置造成的。

  如果想發現JSP暴露源代碼的BUG的話,首先需要了解JSP的工作原理。

  JSP和其它的PHP、ASP工作機制不一樣,雖然它也是一種web編程語言。首次調用JSP文件其實是執行一個編譯為Servlet的過程。注意我們就要在這上邊做文章,明白嗎?我們要干的事情是,讓JSP在編譯前被瀏覽器當作一個文本或其它文件發送給客戶端,或在JSP裝載的時候不去執行編譯好的Servlet而直接讀JSP的內容并發送給客戶端。

  明白了道理及所要達到的目的就好下手了,仔細觀察調用及返回過程可以發現:JSP被編譯為了Servlet保存在指定的目錄下,如:http://www.x.com/lovehacker/index.jsp很可能存放在X:/IBM/WAServer/temp/default_host/default_app/pagecompile/_lovehacker_index_xjsp.class,這是已經編譯過的index.jsp。_lovehacker_index_xjsp.class顯然是我們不需要的文件,而且我們得到它的可能性也不大,我們要干的是不去執行_lovehacker_index_xjsp.class而是直接讀index.jsp的內容。

  據分析最初的xxx.JSP暴露源代碼也是因為前邊的這種想法造成的,本來目錄中存放了一個_xxx_xjsp.class,但訪問xxx.JSP本來是個合法的請求,而又找不到對應的Servlet所以就把xxx.JSP當做一個文本或其它文件發送給了用戶。

  也許這是因為IBM HTTP SERVER配置不當造成的,但相信如果能成功的話,會有一種成就感,很爽的哦!

  順便說一下暴露文件存放真實路徑可能會帶來的危害:

  1.先會讓入侵者了解磁盤配置情況
  2.明的入侵者甚至可以分析出管理員的水平高低
  3.為入侵者修改你的首頁提供了方便(起碼不用在找你的WEB目錄在那個磁盤了)
  4.可能被利用一些其它的CGI的漏洞查找到Web目錄下的文件如XX.ASP、XX.JSP、XX.PHP等

  JSP安全問題主要有哪幾方面?

  本節重點在于對jsp安全問題進行分類闡述和提出解決的建議,所以每種類型的安全問題只采用了一個例子,對于其它各種漏洞的具體細節如涉及到何種軟件版本何種操作系統等就不一一進行闡述了,有興趣的讀者可以到jsp愛好者(http://jspbbs.yeah.net)或者國外的安全站點(http://www.securityfocus.com)進行查看和參考。

  根據目前已經發現的jsp安全問題,不妨將它們分為以下幾類,源代碼暴露類、遠程程序執行類和其他類別, 下面來看看具體的東西吧。

  一、源代碼暴露類

  源代碼暴露類別主要指的是程序源代碼會以明文的方式返回給訪問者。
  我們知道不管是jsp還是asp、php等動態程序都是在服務器端執行的,執行后只會返回給訪問者標準的html 等代碼。這是理論上的東西,實際運行起來由于服務器內部機制的問題就有可能引起源代碼暴露的漏洞,簡單的例子只要在程序文件名后加幾個簡單的字符就可能獲得程序代碼,如常見微軟asp 的global.asa+.htr、XXXX.asp%81等等漏洞。

  1.添加特殊后綴引起jsp源代碼暴露

  在jsp中也存在著和asp這些漏洞類似的問題,如IBM Websphere Application Server 3.0.21、BEA Systems Weblogic 4.5.1、Tomcat3.1等jsp文件后綴大寫漏洞;jsp 文件后加特殊字符如Resin1.2的%82、../漏洞;ServletExec的%2E、+漏洞等等。

  例子:舉個老一點的JSP大寫例子,Tomcat3.1下在瀏覽器中本來是http://localhost:8080/inde.jsp,可以正常解釋執行,但是如果將inde.jsp改為inde.JSP或者inde.Jsp等等試試看,你會發現瀏覽器會提示你下載這個文件,下載后源代碼可以看個一干二凈。

  原因:jsp是大小寫敏感的,Tomcat只會將小寫的jsp后綴的文件當作是正常的jsp文件來執行,如果大寫了就會引起Tomcat將index.JSP當作是一個可以下載的文件讓客戶下載。老版本的WebLogic、WebShpere等都存在這個問題,現在這些公司或者發布了新版本或者發布了補丁解決了這問題。

  解決辦法:一是在服務器軟件的網站上下載補??;因為作者以前用過asp 一段時間,接觸了很多IIS的漏洞,它的有效解決方法是去掉不必要的映射如htr、htx等,在jsp 中我們同樣可以參考IIS的解決方法,不同的是不是去掉而是添加映射,方法為在服務器設置中添加一些映射如.JSP 、.Jsp、.jsp%2E等,將他們映射到一個自己寫的servlet,這個Servlet的唯一功能就是將請求導向一個自定義的類似404 not found的出錯頁面,不同的服務器設置的地方也不同,請參考相應的文檔。第二種解決方法可以在沒有補丁的時候采用。

  2.插入特殊字符串引起jsp源代碼暴露

  還有一種是插入特殊字符串引起的漏洞,BEA WebLogic Enterprise 5.1文件路徑開頭為 "/file/" 的漏洞、IBM WebSphere 3.0.2的"/servlet/file/"文件開頭漏洞等等。

  例子:如IBM WebSphere 3.0.2中,如果一個請求文件的 URL為"login.jsp":http://site.running.websphere/login.jsp,那么訪問http://site.running.websphere/servlet/file/login.jsp將看到這個文件的源代碼。

  原因:因為IBM WebSphere 3.0.2是調用不同的 servlets 對不同的頁面進行處理,如果一個請求的文件是未進行注冊管理的,WebSphere 會使用一個默認的 servlet 調用。如果文件路徑以"/servlet/file/"作開頭這個默認的 servlet 會被調用這個請求的文件會未被分析或編譯就顯示出來。

  解決方法:在服務器軟件的網站下載最新的補丁。

  3.路徑權限引起的文件jsp源代碼暴露

  我們知道,大部分的jsp應用程序在當前目錄下都會有一個WEB-INF目錄,這個目錄通常存放的是JavaBeans編譯后的class 文件,如果不給這個目錄設置正常的權限,所有的class就會曝光。

  例子:如果采用的是Apache1.3.12加上第三方jsp軟件形式的WEB服務器,因為Apache1.3.12默認的設置是可以讀取目錄的,如果程序在http://site.running.websphere/login.jsp,只要修改一下http://site.running.websphere/WEB-INF/所有這個目錄下以及這個目錄下的子目錄中的class文件可以看個一干二凈的,還可以下載到本機上。

  也許有人會說class是經過編譯的,就算被人下載也沒有什么關系,但是現在class 反編譯為Java代碼的軟件也很多,有人曾經采用JAD軟件對下載的class文件反編譯了一下,居然和原始的Java文件幾乎一模一樣,變量名都沒有變,更驚奇的是還可以重新編譯為class文件正常使用。

  安全問題更大的就是,網頁制作者開始把數據庫的用戶名密碼都寫在了Java代碼中,現在一反編譯誰都能看到數據庫的重要信息。通過數據庫的遠程連接功能,可以輕松的進入到你的數據庫中,所有信息全部在他手中。附帶說一句,如果用戶能獲得SQL Server的用戶名口令,進入數據庫中可以執行任意的dos命令如查看c:/文件、建立和刪除目錄等,那樣整個Windows系統都不安全了。

  解決方法:IIS以前一個有效地解決asp漏洞的方法,就是將asp程序單獨放置一個目錄,目錄設置上用戶權限只能執行不能讀取。在jsp環境下同樣可以通過設置服務器的環境來解決這個問題,簡單的說,就是將一些比較重要的目錄如WEB-INF、classes等設置上訪問的權限,不允許讀而取只允許執行。以apache 下解決為例,可以在httpd.conf文件中添加一目錄WEB-INF并設置Deny from all等屬性。

  另一種比較笨的解決方法就是在每個重要目錄下添加一個默認起始頁面如index.htm等,這樣讀取目錄就會返回給訪問者這個文件而不是其它了。建議采用的一種方法。

  更為重要的是密碼的保存問題。在jsp中可以寫一個property文件,放置在WINNT系統目錄下,然后用Bean來讀取數據庫信息,這樣通過源代碼知道了數據庫信息存在WINNT中的.property文件里面,但也很難訪問它,這樣就算源代碼被人知道起碼數據庫是安全的。

  4.文件不存在引起的絕對路徑暴露問題

這個問題相信大家都比較熟悉了,因為微軟IIS 中也有比較多的類似問題。如微軟IIS5.0中的*.idc暴露絕對路徑漏洞。同樣的這些問題現在也轉到了jsp環境中,這個漏洞暴露了web程序的絕對硬盤地址,和其他漏洞結合就具有比較大的危害了

  例子:在特定的服務器軟件下,訪問一個不存在的jsp文件如 http://localhost:8080/fdasfas.jsp,就會返回Java.servlet.ServletEception: Java.io.FileNotFoundEception: c:/web/app/fadssad.jsp (???????????)這樣的錯誤,這樣就可以知道網站在c:/web/app目錄下,也許一般人不太在意,但是對于一個黑客來說就是很有幫助了。

  原因:負責jsp 執行的相關Servlet中處理異常的時候沒有過濾掉這種情況。

  解決方法:一是下載最新的補??;如果當時的web 服務器軟件沒有這個補丁,可以找到服務器軟件的jsp 執行映射Servlet文件(當然是class 后綴的),將它用JAD軟件反編譯,在反編譯后的源代碼中找到處理Exception的方法,然后將方法中的處理部分全部注釋掉,并將請求導向到一個自定義的出錯頁面中,這樣問題就解決了。

  二、遠程程序執行類

  這類漏洞的特點就是可以通過url 地址在瀏覽器中執行任意服務器上的命令和程序,從而引起安全問題。如Allaire JRUN 2.3 遠程執行任意命令漏洞、iPlanet Web Server 4.x存在一個緩沖區溢出漏洞等等。
例子:Allaire 的 JRUN 服務器 2.3上輸入下面的url地址http://jrun:8000/servlet/jsp/../../path/sample.txt,可以訪問到WEB目錄以外的文件,如果是exe文件,還有可能會引起執行。

  原因:如果URL請求的目標文件使用了前綴"/servlet/",則JSP 解釋執行功能被激活。這時在用戶請求的目標文件路徑中使用"../",就有可能訪問到 WEB 服務器上根目錄以外的文件。目標主機上利用該漏洞請求用戶輸入產生的一個文件,將嚴重威脅到目標主機系統的安全。

  解決方法:安裝最新的補丁。

  三、其他類別

  這些類別的范圍就有點大了,可以包括數據庫如SQL Server、Oracle 、DB2等的漏洞,也可以包括操作系統如WindowsNT/2000、Linu等的漏洞。這些東西的漏洞可以說都是致命的,如利用Linux的某些漏洞可以輕易獲得管理員權限來遠程控制服務器,獲得系統的完全控制權限,這樣要獲得jsp源代碼或者摧毀服務器比踩死一只螞蟻還要輕松的多。

  四、全文總結

  通過上面內容可以看出jsp同asp一樣還是存在著很多安全上的問題的,客觀的說,服務器軟件的開發商在內部測試中不可能將系統中的所有bug 找出來,即使發布了軟件后,被發現的漏洞也只會是其中的很小一部分,將來還會不斷的有新的安全問題出現,所以我們必須時刻提高警惕,并注意自己網站的安全。

  一個好的建議就是多看安全文章,這些安全文章一般都會有詳細的信息如軟件的版本號、漏洞原因等等,最重要的是還附帶了解決辦法或者是補丁的下載鏈接,推薦的安全站點是國內的安全站點www.cnns.net或者國外的http://www.securityfocus.com站點;另外一個好的建議就是多裝補丁程序,訪問自己所使用的軟件公司主頁,從那上面獲得最新的補丁程序,做得比較好的就是微軟的站點,安全公告和補丁都特別及時。

  最后想用一句話作為全文的結尾:一個優秀的黑客不一定是個好的jsp 程序員,一個優秀的jsp程序員一定要是個好的準黑客。

  哪些方式可實現Java Servlet及JSP的應用安全?

  一個web 應用程序可擁有多種資源,經常有許多敏感的信息在沒有保護措施的情況下在開放性網絡上傳輸。在這種環境下,實際上許多web 應用程序有一定程度的安全性要求。大多數的servlet 容器有明確的機制和結構來達到這種安全要求。雖然保證和執行的細節可能有些不同,但是,都具有下面的特點:

  1.Authentication:通訊實體相互驗證對方的行為是以一個明確的身份在進行的一種機制。
  2.Access control for resources:對某組用戶來說,對數據庫的某些操作是受到限制的,或對有些程序強調可用性,完整性或保密性的一種機制。
  3.Data Integrity:數據在傳遞過程中保證不被第三方修改的一種機制。
  4.Confidentiality or Data Privacy:保證數據只被那些授權使用的用戶使用,能被安全傳遞的一種機制。

  Java Servlet,JSP中安全性通過如下幾種方式實現:

  一、 Declarative Security

  Declarative security指的是表達一個應用的安全結構,包括角色,存取控制,和在一個應用的外部表單所要求的驗證。在web application中發布描述器是實施declarative security的一種主要的工具。

  發布者把application所要求的邏輯完整性映射為在特定運行環境下的安全策略。在運行時,servlet container使用這些策略來強迫驗證。

  二 、Programmatic Security

  當declarative security不能夠完全表達一個application的安全模型時,就可以使用programmatic Security。Programmatic Security包括HttpServletRequest接口的下列方法:
  getRemoteUser
  isUserInRole
  getUserPrincipal

  getRemoteUser方法返回經過客戶端驗證的用戶名。IsUserInRole向container的安全機制詢問一個特定的用戶是否在一個給定的安全角色中。GetUserPrinciple方法返回一個Java.security.Pricipal對象。這些APIs根據遠程用戶的邏輯角色讓servlet去完成一些邏輯判斷。它也可以讓servlet去決定當前用戶的主要名字。如果getRemoteUser返回null值(這意味著沒有用戶被驗證),那么isUserInRole就總會返回false,getUserPrinciple總會返回null。

  三 、Roles

  一個Roles就是由Application Developer和Assembler所定義的一個抽象的邏輯用戶組。當一個application被發布的時候,Deployer就把這些角色映射到在運行環境中的安全認證,例如組或規則。

  一個servlet container能夠為規則執行一些說明或編程安全,這些規則是與調用這些principal的安全屬性所輸入的要求相聯系的。例如:

  1.當deployer把一個安全角色映射為操作環境下的一個用戶組,調用principle所屬的用戶組就從安全屬性中獲得。如果principle的用戶組與在操作環境下的用戶組相匹配,那么principle 就是一個安全角色。
  2.當deployeer把一個安全角色映射為一個在安全方針域中的principle名時,調用principle的確principle名就被從安全屬性中提取出來。如果兩者相同的話,調用的principle就是安全的。

  四、Authentication

  一個web 客端能夠使用下面的一種機制來對web 服務器驗證一個用戶。

  HTTP Digest Authentication
  HTTPS Client Authentication
  HTTP Basic Authentication
  HTTP Based Authentication

  五、HTTP Basic Authentication

  HTTP Basic Authentication是一個定義在HTTP/1.1規范中的驗證機制。這種機制是以用戶名和密碼為基礎的。一個web server要求一個web client去驗證一個用戶。作為request的一部分,web server 傳遞被稱之為realm的字符串,用戶就是在它里面被驗證的。注意:Basic Authentication機制的realm字符串不一定反映任何一種安全方針域。Web client得到這些用戶名和密碼,然后把它傳遞給web server。Web server然后在一個特定的領域驗證這些用戶。

  由于密碼是使用一種64位的編碼來傳遞,而且目的server沒有驗證,所以Basic Authentication不是一種安全的驗證協議。然而一些附加的保護像使用一種安全傳輸機制(HTTPS)或在網絡層使用安全措施能夠解決一些問題。

  六、HTTP Digest Authentication

  與HTTP Digest Authentication一樣,HTTP Digest Authentication根據用戶名和密碼驗證一個用戶。然而密碼的傳輸是通過一種加密的形式進行的,這就比Basic Authentication所使用的64位編碼形式傳遞要安全的多。這種方法沒有像HTTPS Client Authentication的個人密鑰方案安全。由于Digest Authentication當前不被廣泛使用,servlet containers不要求支持它但是鼓勵去支持它。

  七、HTTPS Client Authentication

  使用HTTPS(HTTP over SSL)的終端用戶驗證是一種嚴格非驗證機制。這種機制要求用戶去處理公共密鑰證明(Public Key Certification PKC)。當前,PKCs在e-commerce應用中是有用的。不適應J2EE的servlet containers不要求支持HTTPS協議。

  八、Server Tracking of Authentication Information

  就像映射在角色中的安全標識一樣,運行環境是環境的說明而不是應用的說明。

  1.在web application的發布環境創建一個登錄機制和策略。
  2.對發布在同一個container的application能夠使用同樣的驗證信息來代表這些application的principal。
  3.僅僅當通過安全策略域時要求用戶重新驗證。

  因此,一個servlet container要求在container層來跟蹤這些驗證信息,而不是在application層。允許一個經驗證的用戶拒絕一個使用其它資源的application,這些是通過受同樣安全性標識限制的container管理的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
26uuu亚洲伊人春色| www亚洲精品| 精品福利在线看| 午夜免费日韩视频| 久久综合伊人77777尤物| 亚洲人成亚洲人成在线观看| 亚洲欧美日韩国产中文| 亚洲人精品午夜在线观看| 国产精品网站入口| 欧美激情一区二区三级高清视频| 国产精品久久av| 91精品国产综合久久香蕉最新版| 97人洗澡人人免费公开视频碰碰碰| 亚洲精品一区二区三区婷婷月| 欧美大尺度在线观看| 亚洲成在人线av| 日韩精品亚洲精品| 伊人成人开心激情综合网| 色狠狠久久aa北条麻妃| 欧美小视频在线| 日韩中文在线中文网在线观看| 97在线视频免费播放| 成人激情春色网| 5252色成人免费视频| 精品国产成人av| 亚洲天堂av高清| 亚洲欧美日韩国产成人| 欧美日韩午夜视频在线观看| 久久久久免费视频| 欧美自拍视频在线观看| zzijzzij亚洲日本成熟少妇| 国产精品久久久av久久久| 亚洲精品动漫久久久久| 亚洲成人网av| 91在线直播亚洲| 日韩成人在线视频网站| 亚洲综合中文字幕在线观看| 中文国产成人精品| 欧美日韩综合视频| 亚洲www在线| 欧美国产精品va在线观看| 精品久久中文字幕久久av| 国产精品免费观看在线| 国产精品视频一区二区高潮| 国产精品永久免费视频| 国产日韩欧美视频在线| 亚洲天堂av综合网| 久久久久久com| 高清亚洲成在人网站天堂| 欧美视频中文字幕在线| 久久久久久久91| 中文字幕亚洲一区在线观看| 亚洲美女免费精品视频在线观看| 成人免费在线视频网址| 久久av在线播放| 全亚洲最色的网站在线观看| 国产成人精品一区二区三区| 黄色成人在线免费| 中文字幕日韩精品在线观看| 国产成人亚洲综合| 在线观看久久久久久| 午夜精品一区二区三区av| 欧美丝袜一区二区三区| 国产日韩欧美在线视频观看| 欧美成人三级视频网站| 欧美一区二区三区免费观看| 在线视频欧美性高潮| 日韩精品视频三区| 福利一区福利二区微拍刺激| 精品中文字幕在线观看| 中文在线资源观看视频网站免费不卡| 久久久久成人精品| 欧美电影免费在线观看| 国产精品成av人在线视午夜片| 精品欧美aⅴ在线网站| 一区二区福利视频| 日韩在线视频播放| 国产亚洲一区二区精品| 欧美孕妇毛茸茸xxxx| 欧美精品第一页在线播放| 一区二区亚洲精品国产| 色偷偷888欧美精品久久久| 一区二区三区四区视频| 国产精品电影久久久久电影网| 亚洲第一色在线| 国产一区二区三区中文| 日韩精品视频在线| 国产精品18久久久久久首页狼| 日本高清不卡在线| 国产精品美乳在线观看| 琪琪亚洲精品午夜在线| 欧美在线视频观看免费网站| 久久免费精品日本久久中文字幕| 国产精品三级久久久久久电影| 国产精品久久综合av爱欲tv| 国产视频久久久久| 欧美成人免费大片| 成人黄色大片在线免费观看| 午夜精品一区二区三区在线| 91精品视频在线| 在线观看亚洲视频| www国产亚洲精品久久网站| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美日韩天堂| 欧美午夜视频在线观看| 在线看日韩av| 中文字幕不卡在线视频极品| 欧美成人精品一区| 国产91精品视频在线观看| 欧美老女人bb| 91免费精品国偷自产在线| 国产精品6699| 日韩中文第一页| 欧美成人免费全部观看天天性色| 亚洲自拍小视频| 最新亚洲国产精品| 欧美性猛交xxxx黑人猛交| 最新中文字幕亚洲| 国产日产欧美a一级在线| 国产色综合天天综合网| 久久成年人免费电影| 国产亚洲欧洲高清一区| 国产日韩欧美在线播放| 日韩欧美成人网| 国产精品久久二区| 国产精品大片wwwwww| 国内精品视频一区| 久久久国产精品x99av| 啊v视频在线一区二区三区| 久久露脸国产精品| 蜜臀久久99精品久久久久久宅男| 久久久久日韩精品久久久男男| 国产成人在线播放| 久久久久久国产精品| 97在线日本国产| 成人黄色网免费| 久久99热这里只有精品国产| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩在线观看你懂的| 日本精品久久久久久久| 亚洲国产精品推荐| 久久手机免费视频| 在线观看欧美视频| 亚洲国产精品成人精品| 中文欧美日本在线资源| 久久天天躁日日躁| 国产精品三级在线| 国产欧美一区二区白浆黑人| 这里只有精品久久| 色爱精品视频一区| 亚洲天堂男人天堂女人天堂| 国产成人福利夜色影视| 成人欧美一区二区三区在线| 日本成人黄色片| 亚洲人精品午夜在线观看| 久久亚洲春色中文字幕| 欧美日本啪啪无遮挡网站| 亚洲3p在线观看| 亚洲天堂av在线免费| 亚洲人免费视频| 亚洲伊人成综合成人网| 亚洲香蕉在线观看| 91亚洲精品一区| 97在线视频国产|