close

[題目]

The purpose of this challenge is to demonstrate the MITRE Top 25 programming flaw: 'Missing Encryption of Sensitive Data'.

This is the same vulnerable application from the previous challenge. Now the administration page actually displays some data only intended for the admin's eyes. Obtain the password for user and login to solve the challenge. See if you can spot the problem in the code below.

 

<!--contents of administration page cwe311admin.jsp-->

...

tmpPwd = Base64.getEncoder().encodeToString(tmpPwd.getBytes("UTF-8"));

...

 

[題目說明]

  這一題是要我們根據以上的JSP Java Code 找出漏洞可以讓我們知道某特定使用者密碼然後直接駭入該使用者帳號。

[弱點提示]

 

    The software does not encrypt sensitive or critical information before storage or transmission.

From MITRE CWE311

 

  如果使用者資料庫之中並未把密碼適當地加密儲存那很容易被Hacker透過某種管道取得使用者密碼,因此無論何時都應該將使用者密碼做加密(不是只有編碼而已),且盡量不要呈現使用者帳密資訊在頁面上。

 

[解答]

  1. 進入網頁: https://abc.xxx.elasticbeanstalk.com/cwe311.jsp
  2. 用demo與demo1234 帳密登入一般使用者頁面,該頁面是無法顯示使用者帳密資訊的。
  3. 只要把 URL 改成如下破解Admin管理密碼管理頁面(這是承襲Dojo 3的破解技巧): https://abc.xxx.elasticbeanstalk.com/cwe311admin.jsp?cwe311loggedin=1234          user 的密碼(Temporary password)。

  1. 但因未取得的密碼是base64編碼過的,所以必須將密碼用線上base64解碼工具解碼:

  1. 按下Logout回到登錄頁面輸入user的帳密,密碼是解碼後的687088,然後就破解了。

[安全原理]

  該弱點被利用的關鍵在於hacker登入頁面後用上一題missing authorization漏洞成功看到cwe311admin.jsp網頁內容,該內容是使用者帳密列表,因此hacker很輕鬆地拿到user 的密碼,雖然該密碼經過base64編碼,但是base64很容易透過一般解碼工具破解,如此等同於hacker已經拿到目標帳號與密碼,達成竊取帳號目的。

 

2019220日星期三

arrow
arrow
    創作者介紹
    創作者 jackterrylau 的頭像
    jackterrylau

    儒道哲學的浪漫人生

    jackterrylau 發表在 痞客邦 留言(0) 人氣()