小議session欺騙的利用以及價值
對于session欺騙 大家都蒙了。
百度上有一篇文章 騙了整個網絡界 雖然有不少人已經發(fā)現是錯誤的理論 誤導的文章 。使不少人覺得 session欺騙很牛x 其實不然
那篇文章叫eWebEditor session欺騙漏洞
沒錯 ew的確存在那漏洞 但是那個作者說錯了 原文:
eWebEditor session欺騙漏洞
文章作者:nowthk
eWebEditor在線編輯器
漏洞文件:Admin_Private.asp
漏洞語句:<%
If Session("eWebEditor_User") = "" Then
Response.Redirect "admin_login.asp"
Response.End
End If
只判斷了session,沒有判斷cookies和路徑的驗證問題。
漏洞利用:
新建一個test.asp內容如下:
<%Session("eWebEditor_User") = "11111111"%>
訪問test.asp,再訪問后臺任何文件,for example:Admin_Default.asp
漏洞影響:虛擬主機的克星. by nowthk
noethk大牛想法不錯 但是很可惜 背離了session的運行機制。要知道 session是存放在服務端的 而放在客戶端的只是一個服務端分發(fā)的sessionID 。原文作者是在本地架設的環(huán)境 所以根本不存在客戶端服務端之說.如果文章沒有加上 虛擬主機的克星這幾個字 估計就不會有什么爭議。 的確 session是可以被欺騙。這個話題我丟到后面再說。先說機制。
雖然sessionID的唯一性大大地提高了session認證的總體安全 但是這世界上還有一樣東西叫盜竊.
我們來說說session的運行機制 . 例如你訪問www.link0day.cn 這個站 那么服務端就會分給你一個sessionID值(前提是他們開啟session) 什么時候你不爽 你關了瀏覽器 那么sessionID就失效了嗎?
個人通過收集資料覺得 session在服務端是有存活期的。 你關了瀏覽器的話 那么就只是注銷了該站的sessionID值 但服務端還殘留著 iis默認是保存20分鐘 這樣就給了我們可乘之機。
繼續(xù)說到session運行機制 有一個很重要的知識點就是 服務端與客戶端交接 是通過cookies存放在某一文件夾里面的 也就是說 xss也可以盜取session。
先別慌,看這一捉包來的數據:ASPSESSIONIDGQGGQAFC=FPGBGNOCAGPLAPOFOPJGODCJ
看到沒 asp sessionid*********** 等號后面就是他的sessionID值。 為了方便大家理解和驗證方法的可行。我與老大 櫻木花盜 做了一實驗(部分修改)。
老大登陸一后臺(當然是session有驗證)。然后捉包 發(fā)他的sessionID給我 然后他關了瀏覽器。也就是結束了客戶端與服務端的連接 但那sessionID沒過期。 我這邊用啊D修改session 然后直接點擊登陸 。 結果可想而知 成功登陸。
這是說明 客戶端與客戶端之間對服務端的欺騙 文縐縐地說 也就是中間人攻擊,
這里 可能你會問 入侵的時候 別人會那么傻給你sessionID么。嘿嘿 問得好 。這里就出現了xss。
要知道 我們可愛的xss可以盜取cookies。。 我們直接把他的cookies相關直接盜過來。
Xss恰恰可以做到這一點。 至于怎么觸發(fā)跨站就不用說了把。。 盜取cookies的文件 網上一堆 自己找一下 改一下就可以??缯镜臅r候拿cookie可以,但是拿session就麻煩。Session很快就要失效,除非沒事一直等著目標中招后立即行動,不然就算拿到了session早就過期N久了
上面說的是中間人攻擊 , 下面就說一下另一種情況。直接”欺騙”服務端。
這里就要糾正不少人的觀點了?;氐轿恼乱婚_始說的那個ew編輯器session欺騙的文章 作者當然是想錯了 看了我前部分所說的運行機制 應該就能弄個半懂把。也就說 客戶端不能提交修改后的sessionID值到服務端 讓服務端信任你。那樣是不成立的。并且實驗證明 不是行的。
另外一個實驗如下:
WIN2003 SP1 +IIS6.0 不是虛擬主機,iis建的兩個網站A、B。
A -->s.asp : <%session("test")="ok"%>
A -->e.asp :<%if session("test")<>"" then response.write("good!")%>
B -->e.asp :<%if session("test")<>"" then response.write("good!")%>
1.訪問http://A/e.asp 顯示為空
2.訪問http://B/e.asp 顯示為空
3.訪問http://A/s.asp
4.訪問http://A/e.asp 顯示"good!"
5.訪問http://B/e.asp 顯示為空
6.訪問http://B/s.asp
7.訪問http://B/e.asp 顯示"good!"
實驗三:
在http://www.xxx.net/1.asp寫下了如下代碼:
<%
session("username")="abddwww"
%>
又在同一主機另一個站點下寫下了如下代碼:(test.asp)
<%
if session("username")<>"" then
response.write "ok"
else
response.write "no session"
end if
%>
先訪問test.asp返回no session,然后訪問1.asp,再次訪問test.asp還是返回no session(同一ie進程下)
說明想跨站欺騙是不成功的
假如要成功運用那個漏洞,除非www.x1.cn和www.x2.cn是綁定在同一主機頭下,同目錄。
為什么? 這又與iis用戶有關.. 假如權限設置得適當 是沒辦法read目錄 +write目錄的話 那樣session欺騙是不成立的
所以 要使成功 就必須以下幾個條件
1:成功獲取了該域名下的一個webshell
2:有讀權限
3:需要入侵的系統(tǒng)采用了session認證
4:管理員使用的密碼無法破解
5:可以獲得session驗證的語句
6. 同iis用戶
7. 同域名(一級or二級).:
例如 www.sb.cn ,那么二級域名就可以是這樣: fuck.sb.cn
8. 同目錄
這樣的洞洞是不是很難利用? 其實一般小站都用不上 大站才用得上
我曾經檢測國內某某大學的時候 就是靠這洞弄下不少shell 然后提權之。
所以 事實證明 session欺騙是存在 但是 利用范圍比較狹窄 一般小站用不上 大站用這方法的話 倒是百試百靈~
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯系alex-e#qq.com處理。
關注官方微信