JSP漏洞大觀

js

一、源代碼暴露類

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文件?堶情A但也很難訪問它,這樣就算源代碼被人知道起碼資料庫是安全的。
   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 伺服器上根目錄以外的文件。目標主機上利用該漏洞請求用戶輸入産生的一個文件,將嚴重威脅到目標主機系統的安全。

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

把這個老帖子翻出來的原因,是據說Tomcat 5.0.19 Windows又出現大寫暴露源代碼的問題了,有興趣的朋友可是試看看,如果是真的,那tomcat那幫傢夥又在老地方摔了一交。

时间: 2024-11-30 03:58:58

JSP漏洞大觀的相关文章

session-KindEditor批量图片上传,SESSION丢失!4.1.10.jsp请大神帮忙解决一下

问题描述 KindEditor批量图片上传,SESSION丢失!4.1.10.jsp请大神帮忙解决一下 后台使用的jsp,批量上传图片时session取到的值为null,如何将之前的session传到jsp后台中 String dataSource = (String)request.getSession().getAttribute(SaasConstant.DATA_SOURCE);其中SaasConstant.DATA_SOURCE是存放在session中的

string-java 新人求解 不会写jsp求大神指点

问题描述 java 新人求解 不会写jsp求大神指点 后端是这样 样子的 @RequestMapping(value="toUpdate") public String toUpdate(HttpServletRequest request,Model model){ int id = Integer.parseInt(request.getParameter("id")); List<Emp> e=empMappingDao.findbyid(id);

编程:ASP JSP PHP大比拚

ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的.互动的.高性能的WEB服务应用程序.ASP采用脚本语言VBScript(Java script)作为自己的开发语言. PHP是一种跨平台的服务器端的嵌入式脚本语言.它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面.它支持目前绝大多数数据库.还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: //www

服务器安全技术分析:JSP漏洞大观

js|安全|服务器 综述:服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的.所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击.下面介绍一下一些服务器(包括Web服务器和JSP服务器)的常见漏洞. Apache泄露重写的任意文件漏洞是怎么回事? 在Apache1.2以及以后的版本中存在一个mod_rewrite模块,它用来指定特殊URLS在网络服务器文件系统上所映射的绝对路径.如果传送一个包含正确表达参数的重写规则,攻击者就可以查看目标主机上的任意文

JSP漏洞大观(三)

js Allaire JRUN 2.3远程执行任意命令漏洞 Allaire 的 JRUN 服务器 2.3上存在一个安全漏洞,允许远程用户把在 WEB 服务器上的任意文件作为JSP代码编译/执行. 如果URL请求的目标文件使用了前缀"/servlet/",则JSP解释执行功能被激活.这时在用户请求的目标文件路径中使用"../",就有可能访问到 WEB 服务器上根目录以外的文件.在目标主机上利用该漏洞请求用户输入产生的一个文件,将严重威胁到目标主机系统的安全. 例如:

JSP漏洞大观

js 综述:服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的.所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击.下面介绍一下一些服务器(包括Web服务器和JSP服务器)的常见漏洞. Apache泄露重写的任意文件漏洞是怎么回事? 在Apache1.2以及以后的版本中存在一个mod_rewrite模块,它用来指定特殊URLS在网络服务器文件系统上所映射的绝对路径.如果传送一个包含正确表达参数的重写规则,攻击者就可以查看目标主机上的任意文件. 下面举例

JSP漏洞大观(一)

js 综述:服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的.所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击.下面介绍一下一些服务器(包括Web服务器和JSP服务器)的常见漏洞. Apache泄露重写的任意文件漏洞是怎么回事? 在Apache1.2以及以后的版本中存在一个mod_rewrite模块,它用来指定特殊URLS在网络服务器文件系统上所映射的绝对路径.如果传送一个包含正确表达参数的重写规则,攻击者就可以查看目标主机上的任意文件. 下面举例

JSP漏洞大观(二)

js Tomcat有哪些漏洞? Tomcat 3.1 存在暴露网站路径问题 Tomcat 3.1 是在 Apache 软件环境下开发的一个支持 JSP 1.1 和 Servlets 2.2 的软件.它存在一个安全问题当发送一个不存在的 jsp 请求时会暴露网站上网页的全路径. 举例: http://narco.guerrilla.sucks.co:8080/anything.jsp 结果显示:Error: 404 Location: /anything.jsp JSP file "/appsrv

那些默默坑了大家十年的路由器漏洞大盘点

最近两大话题备受关注,"雾霾.Wi-Fi安全".直至前阵子那部巨火的纪录片曝光,一些存在几十年的污染源才被人们认识到.惊人相似的是,前些天在央视315晚会曝光无线路由器盗取用户账户密码之后,Wi-Fi安全才逐渐成为热点话题. Wi-Fi的普及已近十年,这些Wi-Fi漏洞也已存在十年,下面就来细数一下那些默默坑了大家十年的路由器漏洞. PIN码漏洞:无用的功能,高危的风险 说到WPS,你可能会想到某办公软件,但你应该不知道的是,WPS也是路由器上快速连接功能的缩写.没用过?正常,现在绝大