真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么實現(xiàn)ApacheTomcat樣例目錄session操縱漏洞

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)怎么實現(xiàn)Apache Tomcat樣例目錄session操縱漏洞,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

網(wǎng)站設計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都網(wǎng)站建設、成都網(wǎng)站設計收費合理;免費進行網(wǎng)站備案等企業(yè)網(wǎng)站建設一條龍服務.我們是一家持續(xù)穩(wěn)定運營了十載的成都創(chuàng)新互聯(lián)網(wǎng)站建設公司。

0x00   背景

前段時間掃到的漏洞,研究了下,感覺挺有意思的,發(fā)出來和大家分享下,有啥不對的地方還請各位拍磚指正。

Apache Tomcat默認安裝包含”/examples”目錄,里面存著眾多的樣例,其中session樣例(/examples/servlets/servlet/SessionExample)允許用戶對session進行操縱。因為session是全局通用的,所以用戶可以通過操縱session獲取管理員權(quán)限。

0x01   漏洞分析演示

       首先,我們先來看看SessionExample的部分源碼

       //表單代碼

       out.println("

");

       out.print("

       out.print(response.encodeURL("SessionExample"));

       out.print("\" ");

       out.println("method=POST>");

       out.println(rb.getString("sessions.dataname"));

       out.println("");

       out.println("
");

       out.println(rb.getString("sessions.datavalue"));

       out.println("");

       out.println("
");

       out.println("");

       out.println("

");

       //核心代碼

       HttpSession session = request.getSession(true);

       out.println(rb.getString("sessions.id") + " " +session.getId());

       out.println("
");

       out.println(rb.getString("sessions.created") + " ");

       out.println(new Date(session.getCreationTime()) +"
");

       out.println(rb.getString("sessions.lastaccessed") + "");

       out.println(new Date(session.getLastAccessedTime()));

       String dataName = request.getParameter("dataname");//獲取dataname參數(shù)的值

       String dataValue = request.getParameter("datavalue");//獲取datavalue參數(shù)的值

       if (dataName != null && dataValue != null) {

           session.setAttribute(dataName, dataValue);//將dataname和datavalue寫入session

       }

       用戶通過表單提交dataname和datavalue參數(shù),然后通過request.getParameter()函數(shù)獲取這兩個參數(shù)的值,再通過session.setAttribute()函數(shù)將dataname和datavalue的值寫入session。因為session全局通用的特性,所以可以通過操縱session參數(shù)的值來獲取網(wǎng)站管理員權(quán)限的目的。

       舉個例子:

       我們先來編寫login.jsp,login2.jsp,index.jsp這三個頁面,通過這三個頁面來模擬一般網(wǎng)站身份驗證的過程。

      login.jsp

       

      用戶名:
 

      密碼:
 

     
 

     

      login2.jsp

      <% 

      if(request.getParameter("username") != null && 

      request.getParameter("password")!= null) {  

      String username =request.getParameter("username"); 

      String password =request.getParameter("password"); 

      //驗證身份 

      if (username.equals("admin")&& password.equals("admin")) {  

        session.setAttribute("login","admin"); 

        response.sendRedirect("index.jsp"); 

        }else { 

           response.sendRedirect("login.jsp"); 

        }  

         } 

      %>

     index.jsp

     <% 

     if(session.getAttribute("login")!= null &&

     ((String)session.getAttribute("login")).equals("admin")){ 

        out.println("Login"); 

      } else{

       response.sendRedirect("login.jsp");

       }

      %>

我們直接打開網(wǎng)站后臺,即index.jsp

http://127.0.0.1:8080/examples/index.jsp

怎么實現(xiàn)Apache Tomcat樣例目錄session操縱漏洞

發(fā)現(xiàn)被重定向到login.jsp了,而且在不知道密碼的前提下,我們是無法登陸進去的。接下將演示如何通過操縱session進入網(wǎng)站后臺

打開SessionExample

http://127.0.0.1:8080/examples/servlets/servlet/SessionExample

在Name of Session Attribute: 里輸入login

在Value of Session Attribute:里輸入admin

怎么實現(xiàn)Apache Tomcat樣例目錄session操縱漏洞

提交后顯示login=admin已經(jīng)寫入session

怎么實現(xiàn)Apache Tomcat樣例目錄session操縱漏洞

再次打開index.jsp,顯示成功登錄

怎么實現(xiàn)Apache Tomcat樣例目錄session操縱漏洞

0x02 修復建議

0x03 題外話

       不覺得這個挺適合做后門的嗎?

       <%setAttribute("request.getParameter("u")", " request.getParameter("a")%>

       “u”和”a”的值看后臺源碼

上述就是小編為大家分享的怎么實現(xiàn)Apache Tomcat樣例目錄session操縱漏洞了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文標題:怎么實現(xiàn)ApacheTomcat樣例目錄session操縱漏洞
地址分享:http://weahome.cn/article/gsojjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部